
Written in C/C++ and compiled as plugins for the SC Server, they encapsulate complex calculations into a simple black box that returns to us - the synth builders or musicians - what we are after, namely an output that could be in the form of a wave or a filter. Unit Generators have been the key building blocks of digital synthesis systems, since Max Matthews' Music N systems in the 1960s. And that is what we will focus on for a while.
PYTHON SUPERCOLLIDER CODE
All this is common in SuperCollider practice, but the most common setup is using the SuperCollider IDE to write SC Lang code to control a localhost audio server (localhost meaning "on the same computer"). Or have many servers on diverse computers, instructing each of them to render audio. You could put any server (with a remote IP address and port) into your server variable and communicate to it over a network. P = Server.new("hoho", n) // create a server with the specific net addressįrom the above you might start to think about possibilities of having the server running on a remote computer with various clients communicating to it over network, and yes, that is precisely one of the innovative ideas of SuperCollider 3. We can explore creating our own servers with specific ports and IP addresses: n = NetAddr("127.0.0.1", 57200) // IP (get it from ) and port S.avgCPU // how much CPU is it using right now? S.name // the localhost server is the default server (see Main.sc file) S.addr // the address of the synth (IP address and Port)

S.postln // we see that it contains a localhost synth

let us explore the 's' variable, that stands for the synth: So never assign anything else to this variable. The 's' variable is a unique variable in SuperCollider, as there is a convention that the SC Server has been assigned to this variable. The server can be booted through a menu command (Menu-> XXX), or through a command line. If you observe the list of running processes of your computer, you will see that when you boot the server, a new process will appear (try typing "top" into a Unix Terminal). When you "boot the server", you are basically starting a new process on your computer that does not have a GUI (Graphical User Interface). This section will be fundamental for the succeeding chapters. This chapter will introduce the SuperCollider server for the most basic purposes of getting started with this amazing engine for audio work.

PYTHON SUPERCOLLIDER SOFTWARE
You can use any software to control it, like C/C++, Java, Python, Lua, Pure Data, Max/MSP or any other. The SC Synth is a program that runs independently from the SuperCollider IDE or language. These are definitions of synths, but in a wide sense as they can do practically anything audio related (for example performing audio analysis rather than synthesis). The audio is created through creating graphs called Synth Definitions. The SC Synth renders audio and has an elegant structure of Busses, Groups, Synths and multitude of UGens, and it works a bit like a modular synth, where the output of certain chain of oscillators and filters can be routed into another module. When the server is booted, it connects to the default audio device (such as internal or external audio cards), but you can set it to any audio device available to your computer (for example using virtual audio routing software like Jack). As mentioned earlier, SuperCollider is traditionally separated between a server and a client, that is, an audio server (the SC Synth) and the SuperCollider language client (sc-lang). The SuperCollider Server, or SC Synth as it's also known, is an elegant and great sounding audio engine.
