sig = RLPF.ar(sig, cut, rez);
sig = sig * EnvGen.ar(Env.asr(releaseTime: release), gate, doneAction: doneAction);
sig = Pan2.ar(sig, pan);
+ sig = [DelayN.ar(sig[0], 0.01, (0.01*pan).clip(0, 1)), DelayN.ar(sig[1], 0.01, (-0.01*pan).clip(0, 1))];
Out.ar(out, sig * amp);
}).add;
}).add;
// additive pulse synth
-SynthDef(\pope, {|out=0, gate=1, freq=440, amp=1|
+SynthDef(\pope, {|out=0, gate=1, freq=440, amp=1, pan=0, doneAction=2|
var sig = 0;
var num = 30;
num.do({
sig = sig + (LFPulse.ar(freq, Rand(0, 0.01), SinOsc.kr(SinOsc.kr(Rand(2, 8), 0, 2, 2), Rand(0, 2pi), 0.5, 0.5)) / num);
});
- sig = sig * EnvGen.kr(Env.asr(0.03, 0.3, 1.8), gate, doneAction: Done.freeSelf);
- sig = Pan2.ar(sig, Rand(-0.2, 0.2), amp);
+ sig = sig * EnvGen.kr(Env.asr(0.03, 0.3, 1.8), gate, doneAction: doneAction);
+ sig = Pan2.ar(sig, pan, amp);
+ sig = [DelayN.ar(sig[0], 0.01, (0.01*pan).clip(0, 1)), DelayN.ar(sig[1], 0.01, (-0.01*pan).clip(0, 1))];
Out.ar(out, sig);
}).add;