SuperCollider sounds are built from networks of Unit Generators (UGens) wired by nesting
In SuperCollider, audio synthesis is specified as a graph of Unit Generators (UGens). Each UGen takes inputs and produces an output signal. Rather than drawing a signal-flow diagram, you connect UGens by nesting them in code: the inner UGen’s output becomes the outer UGen’s input argument. For example, SinOsc.ar(440) inside Pan2.ar(SinOsc.ar(440,0,0.1),0.0) feeds a sine oscillator into a panner. This nesting syntax means the code structure mirrors the signal graph structure. UGens run at audio rate (.ar) or control rate (.kr); control rate is more efficient for slowly-changing parameters. The distinction between enclosing bracket types matters: () groups expressions, {} creates a function (the synthesis graph), [] holds arrays.
Examples
{Pan2.ar(SinOsc.ar(440,0,0.1),0.0)}.play
// SinOsc feeds into Pan2; nesting = wiring
{Pan2.ar(SinOsc.ar(MouseX.kr(440,880),0,0.1),0.0)}.play
// MouseX.kr controls frequency at control rate
Assessment
Draw the signal graph implied by: {LPF.ar(WhiteNoise.ar(0.1), Line.kr(10000,1000,10))}.play — identify each UGen’s inputs and outputs and label which run at audio vs. control rate.