A SuperCollider synth without doneAction:2 leaks nodes silently until CPU overload crackles
Percussive or gated synths that do not set doneAction: 2 on their amplitude EnvGen never free their server node when the envelope finishes. Each trigger adds another node; the server’s voice count climbs silently with no error until CPU overload causes crackle or dropouts. The fix is to add doneAction: 2 to every amplitude envelope, release held notes with x.release or x.set(\gate, 0), and use s.freeAll to nuke accumulated leaked nodes.
Examples
A kick EnvGen.ar(Env.perc, doneAction: 0) triggered every beat — 64 silent idle nodes after 4 bars. Fix: doneAction: 2.
Assessment
Describe the symptom pattern of a node leak in SuperCollider (what is heard, what is not shown) and write the correct doneAction argument to prevent it.