import Control.Monad {- base -}
import qualified Network.WebSockets as W {- websockets -}
import U
go :: WithT -> W.WebSockets W.Hybi00 ()
go withT = W.receiveData >>= proc_t withT
json_ws :: WithT -> W.Request -> W.WebSockets W.Hybi00 ()
json_ws withT rq = do
W.acceptRequest rq
forever (go withT)
main :: IO ()
main = do
Opt t h w <- opt_arg
W.runServer h w (json_ws t)
{-
json-ws.00
import Sound.SC3
let {kin = in' 1 KR
;o = sinOsc AR (kin 0) 0}
in audition (out 0 (pan2 o (kin 2) (kin 1)))
json-ws.02
let {kin = in' 1 KR
;f = kin 0 * 600 + 400
;a = kin 1 * 0.1}
in audition (out 0 (sinOsc AR f 0 * a))
json-ws.03
let {k0 = control KR "k0" 440
;k1 = control KR "k1" 0
;k2 = control KR "k2" 0.1
;k3 = control KR "k3" 0}
in audition (out k3 (sinOsc AR k0 k1 * k2))
withSC3 (send (n_set (-1) [("k0",660)]))
withSC3 (send (n_set (-1) [("k2",0.01)]))
-}