{
   "code" : "TempoClock.default.tempo_(140/60);\r\n\r\n(\r\nSynthDef(\\technokick, {\r\n\t| freq=51.913087197493, amp=0.5, rel=0.28571428571429, out=0, click=0.008, spread=0.1, damp=0.6 gate=1 |\r\n\tvar sig, env1, aEnv, env2, wEnv, vEnv, low, high, dry, verb, verbHi, verbLo;\r\n\t// env.ar is really good for this since thie envelopes are so short\r\n\tenv1 = EnvGen.ar(Env.adsr(0,0.1,0,0, curve: -4, bias: 1)); // initial attack\r\n\tenv2 = EnvGen.ar(Env.adsr(0,click,0,0,32, bias:1)); // click adder\r\n\taEnv = EnvGen.kr(Env.perc(0.005, rel/1.75, curve: 2)); // amplitude\r\n\twEnv = EnvGen.ar(Env.adsr(0,0.01,0,0, curve: -4));\r\n\r\n\tvEnv = EnvGen.kr(Env.adsr(rel, rel/2, 1, 0.01, curve: 3),\r\n\t\tgate, doneAction: Done.freeSelf); // for reverb\r\n\t// separate signals for extra processing\r\n\tlow  = SinOsc.ar(freq * env1 * env2);\r\n\thigh = WhiteNoise.ar() * wEnv * 0.6;\r\n\thigh = BBandPass.ar(high, 1000, 2);\r\n\tdry = Mix.new([low, high]) * aEnv;\r\n\tdry = CrossoverDistortion.ar(dry * 0.3, 0.9, 1);\r\n\t// dry = dry * 0.25;\r\n\t// equalizer\r\n\tdry = BPeakEQ.ar(dry, 5500, db: 10);\r\n\tdry = BPeakEQ.ar(dry, 360, db: -12, rq: 2);\r\n\tdry = BLowShelf.ar(dry, 300, db: 6).distort;\r\n\t// compression\r\n\tdry = Compander.ar(dry, dry, thresh: 0.5,\r\n\t\tslopeBelow: 1.75, slopeAbove: 0.75,\r\n\t\tclampTime: 0.002, relaxTime: 0.1, mul: 5);\r\n\t// finalize dry signal\r\n\tdry = Pan2.ar(dry * aEnv);\r\n\t// create reverb signal\r\n\t// verb = FreeVerb2.ar(dry[0],dry[1],mix: 1,room: 1, damp: 1).distort * vEnv;\r\n\tverb = GVerb.ar(dry, roomsize: 10, revtime: 5,\r\n\t\tdamping: damp, drylevel: 0, earlyreflevel: 0.5, taillevel: 1,\r\n\t\tmaxroomsize: 100, mul: 1) ;\r\n\t// Sum the double stereo output into a single stereo one\r\n\tverb = verb.sum;\r\n\t// eq\r\n\r\n\tverb = BLowPass.ar(verb, 400+freq,2);\r\n\r\n\t// Reduce stereo spread, and balance audio to be level no matter the spread (more or less)\r\n\tverbHi = BHiPass.ar(verb, 200);\r\n\tverbHi = Balance2.ar(verbHi[0] + (verbHi[1] * spread), // left\r\n\t\tverbHi[1] + (verbHi[0] * spread), level: 0.5 + (1-spread)); // right\r\n\t// Keep low frequencies in mono\r\n\tverbLo = BLowPass.ar(verb, 200);\r\n\tverbLo = Balance2.ar(verbLo[0] + verbLo[1], verbLo[1] + verbLo[0], level: 0.5);\r\n\tverb = verbHi + verbLo;\r\n\tverb = Compander.ar(verb,verb, thresh: 0.5,\r\n\t\tslopeBelow: 1.75, slopeAbove: 0.75,\r\n\t\tclampTime: 0.002, relaxTime: 0.1, mul: 0.25) * vEnv;\r\n\t// finalize signals\r\n\tsig = dry + verb;\r\n\tsig = Compander.ar(sig,sig, thresh: 0.5,\r\n\t\tslopeBelow: 0.59, slopeAbove: 1,\r\n\t\tclampTime: 0.002, relaxTime: 0.1, mul: 1);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n)\r\n\r\n(\r\n~kickIntro = Pbind(*[\r\n\tinstrument: \\technokick,\r\n\tdamp: 0.95,\r\n\tspread: Pseq([0.9,0.8,0.6,0]),\r\n\tclick: Pwhite(0.006, 0.008, 4),\r\n\tdur: 1,\r\n\tmidinote: Pseq([60,55,52.5,40]);\r\n]);\r\n~kick = Pbind(*[\r\n\tinstrument: \\technokick,\r\n\tspread: Pseq([0.9,0.8,0.6,0], inf),\r\n\tclick: Pwhite(0.006, 0.008, inf),\r\n\tdur: 2,\r\n\tlegato: 1,\r\n\tmidinote: Pseq([Pseq([32], 4), Pseq([28], 4)]);\r\n]);\r\n\r\n~song = Pseq([~kickIntro, ~kick]);\r\n~song.play(quant: 4);\r\n)",
   "is_private" : null,
   "id" : "1-5bV",
   "labels" : [
      "techno",
      "percussion",
      "drums",
      "kick",
      "drum",
      "techno kick"
   ],
   "ancestor_list" : [],
   "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.\r\n\r\nFeedback appreciated! I'm still awfully new to all of this.",
   "author" : "Thomas Legacy",
   "name" : "techno kick"
}
