SynthDef(\kickgen, { var curve, sig, envAmp, envPitch, noise, decay; decay = \decay.kr(0.3); curve = \curve.kr(-8); envPitch = 1 + (\envmul.kr(4) * Env.perc(0.001, 0.13, curve: curve).ar); envAmp = Env.perc(0.001, decay, curve: curve).ar(Done.freeSelf); noise = BPF.ar(WhiteNoise.ar * Env.perc(0.001, 0.01).ar, \ff.kr(1800), \rq.kr(1)); sig = SinOsc.ar(\freq.kr(50) * envPitch) * envAmp; sig = sig + noise; // what happens here sig = (sig * (1 + (2 * Env.perc(0.001, 0.12).ar))).softclip; // sig = sig.softclip; // sig = sig * -4.dbamp; sig = sig * \amp.kr(0.8); sig = Pan2.ar(sig, \pan.kr(0)); Out.ar(\out.kr(0), sig); } ).add;