home/ atoms/ sc-client-server-architecture

SuperCollider exists as two separate networked programs: sclang and scsynth

SuperCollider is a client-server system. The language (sclang) hosts the object-oriented interpreter and class library; the audio server (scsynth) handles real-time synthesis. They communicate via the Open Sound Control (OSC) protocol over UDP or TCP. The user operates in sclang as a client, sending requests to scsynth. Because the two programs are networked, scsynth can run on a remote machine, and multiple language clients can connect to one server. This architecture matters because actions like booting, configuring hardware, and creating Synths all go through this separation: code you type is language-side; the sounds that come out are server-side.

Examples

Boot the server: s.boot; or Server.local.boot;. Quit: s.quit;. The global variable s is by convention reserved for the local server.

Assessment

Explain why x = {SinOsc.ar}.play; x.free; works but storing the function in x and then calling .free on it does not free the audio. What two entities exist and which one needs to be freed?

“SuperCollider appears as one program, but actually exists as two programs. The language, called sclang, is home to an object-oriented programming language”
corpus · supercollider-tutorials-full-transcripts-and-code-eli-fields · chunk 4