(
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);

