Retriggering/Resetting a Sustained Envelope

I think you can cook something up with an “upside-down” trigger argument…does this do what you’re envisioning?

s.boot;

(
x = {
	var env, sig;
	sig = PinkNoise.ar(0.2!2);
	env = EnvGen.kr(
		Env.adsr(0.01, 0.5, 0.1, 1, 1, -2),
		(1 - \trig.tr(1)) * \end.kr(1),
		doneAction: 2
	);
	sig = sig * env;
}.play;
)

x.set(\trig, 1); //retrigger
x.set(\end, 0); //fade
1 Like