( SynthDef(\gatedReverb, { var dry, wet, reverbEnv; // Dry signal dry = SinOsc.ar(440) * EnvGen.ar(Env.perc(0.01, 0.1), doneAction: 0); // Wet signal: full reverb wet = FreeVerb.ar(dry.dup, mix: 1, room: 0.9, damp: 0.4); // Gating envelope for the reverb ONLY reverbEnv = EnvGen.ar(Env.linen(0, 0.2, 0.001), doneAction: 2); // <- Cutoff happens here // Send dry directly, and apply the envelope to the wet Out.ar(0, (dry + (wet * reverbEnv)) * 0.5); }).add; ) Synth(\gatedReverb);