home/ atoms/ sc-server-node-order-execution

In SuperCollider's audio server, Synths are processed head-to-tail, so effects must appear after sources

The SuperCollider audio server calculates Synth outputs sequentially, from the head to the tail of the node tree. If a reverb Synth reads from a bus that a source Synth writes to, the reverb must appear after the source in the node chain. If they are in the wrong order, the reverb reads a stale bus value from the previous control cycle and outputs silence. The default addAction is addToHead, which means each new Synth goes before existing ones — creating a natural ordering bug for source-then-effect chains. Solutions: use addToTail for effects, use addAfter or addBefore relative to a target Synth, or use Groups (a source group before an effects group).

Examples

~sourceGrp = Group.new; ~fxGrp = Group.after(~sourceGrp); x = Synth.new(\blip, [\out, ~bus], ~sourceGrp); y = Synth.new(\reverb, [\in, ~bus], ~fxGrp);

Assessment

You create a reverb Synth first, then a source Synth. No sound is heard. Diagnose the order-of-execution problem and give two different ways to fix it.

“the effect must appear later in the chain of nodes on the server than the source.”
corpus · supercollider-tutorials-full-transcripts-and-code-eli-fields · chunk 17