Submit
Browse
Anonymous
Login
RSS
SuperCollider Code
Fork Code: techno kick
name
code content
TempoClock.default.tempo_(140/60); ( SynthDef(\technokick, { | freq=51.913087197493, amp=0.5, rel=0.28571428571429, out=0, click=0.008, spread=0.1, damp=0.6 gate=1 | var sig, env1, aEnv, env2, wEnv, vEnv, low, high, dry, verb, verbHi, verbLo; // env.ar is really good for this since thie envelopes are so short env1 = EnvGen.ar(Env.adsr(0,0.1,0,0, curve: -4, bias: 1)); // initial attack env2 = EnvGen.ar(Env.adsr(0,click,0,0,32, bias:1)); // click adder aEnv = EnvGen.kr(Env.perc(0.005, rel/1.75, curve: 2)); // amplitude wEnv = EnvGen.ar(Env.adsr(0,0.01,0,0, curve: -4)); vEnv = EnvGen.kr(Env.adsr(rel, rel/2, 1, 0.01, curve: 3), gate, doneAction: Done.freeSelf); // for reverb // separate signals for extra processing low = SinOsc.ar(freq * env1 * env2); high = WhiteNoise.ar() * wEnv * 0.6; high = BBandPass.ar(high, 1000, 2); dry = Mix.new([low, high]) * aEnv; dry = CrossoverDistortion.ar(dry * 0.3, 0.9, 1); // dry = dry * 0.25; // equalizer dry = BPeakEQ.ar(dry, 5500, db: 10); dry = BPeakEQ.ar(dry, 360, db: -12, rq: 2); dry = BLowShelf.ar(dry, 300, db: 6).distort; // compression dry = Compander.ar(dry, dry, thresh: 0.5, slopeBelow: 1.75, slopeAbove: 0.75, clampTime: 0.002, relaxTime: 0.1, mul: 5); // finalize dry signal dry = Pan2.ar(dry * aEnv); // create reverb signal // verb = FreeVerb2.ar(dry[0],dry[1],mix: 1,room: 1, damp: 1).distort * vEnv; verb = GVerb.ar(dry, roomsize: 10, revtime: 5, damping: damp, drylevel: 0, earlyreflevel: 0.5, taillevel: 1, maxroomsize: 100, mul: 1) ; // Sum the double stereo output into a single stereo one verb = verb.sum; // eq verb = BLowPass.ar(verb, 400+freq,2); // Reduce stereo spread, and balance audio to be level no matter the spread (more or less) verbHi = BHiPass.ar(verb, 200); verbHi = Balance2.ar(verbHi[0] + (verbHi[1] * spread), // left verbHi[1] + (verbHi[0] * spread), level: 0.5 + (1-spread)); // right // Keep low frequencies in mono verbLo = BLowPass.ar(verb, 200); verbLo = Balance2.ar(verbLo[0] + verbLo[1], verbLo[1] + verbLo[0], level: 0.5); verb = verbHi + verbLo; verb = Compander.ar(verb,verb, thresh: 0.5, slopeBelow: 1.75, slopeAbove: 0.75, clampTime: 0.002, relaxTime: 0.1, mul: 0.25) * vEnv; // finalize signals sig = dry + verb; sig = Compander.ar(sig,sig, thresh: 0.5, slopeBelow: 0.59, slopeAbove: 1, clampTime: 0.002, relaxTime: 0.1, mul: 1); Out.ar(out, sig); }).add; ) ( ~kickIntro = Pbind(*[ instrument: \technokick, damp: 0.95, spread: Pseq([0.9,0.8,0.6,0]), click: Pwhite(0.006, 0.008, 4), dur: 1, midinote: Pseq([60,55,52.5,40]); ]); ~kick = Pbind(*[ instrument: \technokick, spread: Pseq([0.9,0.8,0.6,0], inf), click: Pwhite(0.006, 0.008, inf), dur: 2, legato: 1, midinote: Pseq([Pseq([32], 4), Pseq([28], 4)]); ]); ~song = Pseq([~kickIntro, ~kick]); ~song.play(quant: 4); )
code description
My first submission to this site, with hopefully many more to come. Here's one of the first real sounds I've synthesized that I've thought sounded good: a techno kick influenced by the style of artists like Introversion. Feedback appreciated! I'm still awfully new to all of this.
use markdown for formating
category tags
comma separated, i.g. "wild, siren" (do not enter default SC class names, please)
ancestor(s)
comma separated identificators, i.g. "1-C,1-1,1-4M,1-x"
Private?
the code will be accessible by direct url and not visible in public activity
signup to submit public code without captcha
comment of change