diff --git a/rsc3/rsc3.scrbl b/rsc3/rsc3.scrbl index dc67e5c..2170b5f 100644 --- a/rsc3/rsc3.scrbl +++ b/rsc3/rsc3.scrbl @@ -27,35 +27,54 @@ Example: } -@section{Sending commands to the server} +@section{Communicating with the SuperCollider server (scsynth)} -Most functions that send messages to the server do so by accepting a file descriptor type as the first argument. +Most functions that send messages to the server do so by accepting a socket type as the first argument. This function is passed to with-udp-sc3 or with-tcp-sc3, which call the function on a socket of a specific type. +Assumes the scsynth is running using udp at port 57110. - -@defproc[(with-udp-sc3 [func procedure?]) b]{ -func should be a function that takes a file descriptor (reset is an example of such a function). +@defproc[(with-udp-sc3 [func procedure?]) any/c]{ +func should be a function that takes a socket (reset is an example of such a function). with-udp-sc3 opens a udp socket, calls func on that socket, closes the socket, and returns the return value of func. - -} - Example: @racketblock[ (with-udp-sc3 reset) ] +} + +@defproc[(with-tcp-sc3 [func procedure?]) any/c]{ +Same as with-udp-sc3 but uses the tcp protocol. +} + +@defproc[(play [fd (or udp:socket? tcp:socket?)] [ugen ugen?]) any/c]{ + +The same as audition but without the socket creation step. (audition uses play) + +Using the given socket, plays sound generated by the ugen. This creates a synthdef, +sends it to the server using the name "anonymous" and group 1, and creates a new synth. + +Example: + @racketblock[ (define (play-ugen ugen) (with-udp-sc3 (lambda (fd) (play fd ugen)))) ] - - } +@defproc[(send [fd (or udp:socket? tcp:socket?)] [message message?]) ()]{ +Sends an OSC message to the server using the socket fd. +} + +@defproc[(async [fd (or udp:socket? tcp:socket?)] [message message?]) ()]{ +Sends an OSC message to the server using the socket fd and waits (blocks) for a /done message fro mteh server. +} + + @section{Reporting Bugs} For Heaven's sake, report lots of bugs! \ No newline at end of file