home/ atoms/ sc-out-ugen-bus-routing

SuperCollider's Out UGen writes a signal to a numbered audio bus, not directly to hardware

The audio server has a fixed pool of audio buses (default 128). Buses 0 through numOutputBusChannels-1 are hardware output buses; buses numOutputBusChannels through numOutputBusChannels+numInputBusChannels-1 are hardware inputs; the remainder are private internal buses. Out.ar(busIndex, signal) writes to a bus. Specifying a multichannel signal to a single bus index causes SuperCollider to distribute remaining channels on consecutive ascending buses — so Out.ar(0, stereoSig) writes left to bus 0 and right to bus 1. A common mistake is specifying an array of bus indices for Out.ar, which triggers multichannel expansion on the Output UGen and causes signal overlap.

Examples

Out.ar(0, sig); — correct for stereo signal. Out.ar([0,1], sig); — wrong: invokes multichannel expansion on Out, creating signal overlap on bus 1.

Assessment

A stereo signal is stored in sig. Write the correct Out.ar call. Then explain what goes wrong if you write Out.ar([0,1], sig) instead.

“just specify the lowest numbered bus for output UGens, usually zero, and let SuperCollider handle the consecutive distribution of audio channels.”
corpus · supercollider-tutorials-full-transcripts-and-code-eli-fields · chunk 12