{
   "code" : "(\r\nSynthDef(\"am1\", {arg freq = 440, modfreq = 1, amp = 0.2, att = 0.01, rel = 3, wubb = 1;\r\n    var carrier, modulator, env, wub;\r\n    env = Env.perc(\r\n        attackTime: att,\r\n        releaseTime: rel,\r\n        level: amp\r\n    ).kr(2);\r\n    modulator = SinOsc.ar(modfreq).range(0, 1);\r\n\tcarrier = LPF.ar( Saw.ar(freq: freq, mul: env * modulator));\r\n    Out.ar(0, carrier ! 2);\r\n}).add;\r\n\r\nSynthDef(\"fm2\", {arg freq = 440, modindex = 10, amp = 0.1, pos = 0, gate = 1, att = 0.01, rel = 0.3;\r\n\tvar carrier, modulator, freqdev, env, modfreq;\r\n\t// i = d/m, so d = m*i\r\n\tmodindex = Line.kr(modindex, 1, att);\r\n\tmodfreq = freq / 2;\r\n\tfreqdev = modfreq * modindex;\r\n\tmodulator = SinOsc.ar(freq: modfreq, mul: freqdev);\r\n\tcarrier = SinOsc.ar(freq: freq + modulator);\r\n\tenv = Env.asr(\r\n\t\tattackTime: att,\r\n\t\tsustainLevel: amp,\r\n\t\treleaseTime: rel\r\n\t).kr(doneAction: 2, gate: gate);\r\n\tcarrier = Pan2.ar(in: carrier, pos: pos, level: env);\r\n\tOut.ar(0, carrier * 0.5);\r\n}).add;\r\n\r\nSynthDef(\"kick\", {arg out = 0, amp = 0.3, sinfreq = 60, glissf = 0.9, att = 0.01, rel = 0.45, pan = 0;\r\n\tvar env, snd, ramp;\r\n\tenv = Env.perc(att, rel, amp).kr(doneAction: 2);\r\n\tramp = XLine.kr(\r\n\t\tstart: sinfreq,\r\n\t\tend: sinfreq * glissf,\r\n\t\tdur: rel\r\n\t);\r\n\tsnd = SinOsc.ar(freq: ramp, mul: env);\r\n\tsnd = Pan2.ar(snd, pan);\r\n\tOut.ar(out, snd);\r\n}).add;\r\n\r\nSynthDef(\"snare\", {arg out = 0, amp = 0.1, sinfreq = 180, att = 0.01, rel = 0.2, ffreq = 2000, pan = 0;\r\n\tvar env, snd1, snd2, sum;\r\n\tenv = Env.perc(att, rel, amp).kr(doneAction: 2);\r\n\tsnd1 = HPF.ar(\r\n\t\tin: WhiteNoise.ar,\r\n\t\tfreq: ffreq,\r\n\t\tmul: env\r\n\t);\r\n\tsnd2 = SinOsc.ar(freq: sinfreq, mul: env);\r\n\tsum = snd1 + snd2;\r\n\tOut.ar(out, Pan2.ar(sum, pan));\r\n}).add;\r\n\r\nSynthDef(\\snare2, {\r\n    |out = 0, pan = 0, amp = 0.3|\r\n    var pop, popAmp, popFreq;\r\n    var noise, noiseAmp;\r\n    var snd;\r\n\r\n    popFreq = EnvGen.ar(Env([3261, 410, 160], [0.005, 0.01], curve: \\exp));\r\n    popAmp = EnvGen.ar(Env.perc(0.001, 0.11)) * 0.7;\r\n    pop = SinOsc.ar(popFreq) * popAmp;\r\n    noiseAmp = EnvGen.ar(Env.perc(0.001, 0.15), doneAction: 2);\r\n    noise = BPF.ar(WhiteNoise.ar, 810, 1.6) * noiseAmp;\r\n\r\n    snd = (pop + noise) * 1.3;\r\n\r\n    Out.ar(out, Pan2.ar(snd, pan, amp));\r\n}).add;\r\n\r\nSynthDef(\"riser\",  {arg out = 0, amp = 0.5, pan = 0;\r\n\tvar env, snd;\r\n\tenv = Env.linen( 2, 0.000001, 0.0001, 0.5).kr(doneAction: 2);\r\n\tsnd = LPF.ar(\r\n\t\tin: WhiteNoise.ar(env),\r\n\t\tfreq: 2000,\r\n\t\tmul: amp\r\n\t);\r\n\t\tOut.ar(out, Pan2.ar(snd, pan));\r\n}).add;\r\n\r\nSynthDef(\\wobble, { arg out=0, amp=0.1, gate=2, pan=0, spread=0.8, freq=200, doneAction=2;\r\n\tvar sig, sig1, sig2, sig3;\r\n\tsig1 = LFSaw.ar(freq * 1 + (0.04 * [1,-1]));\r\n\tsig2 = LFSaw.ar(freq * 0.99 );\r\n\tsig3 = LFSaw.ar(freq * 1 );\r\n\tsig = sig1 + sig2 + sig3;\r\n\tsig = (sig*50).tanh;\r\n\tsig = sig * EnvGen.ar(\\adsr.kr(Env.adsr(0.01,0.1,0.8,0.5)),gate,doneAction:doneAction);\r\n\tsig = Splay.ar(sig, spread, amp, pan);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n\r\nSynthDef(\\wobble2, { arg out=0, amp=0.1, gate=2, pan=0, spread=0.8, freq=200, doneAction=2, modfreq=1;\r\n\tvar sig, sig1, sig2, sig3, modulator;\r\n\tmodulator = SinOsc.ar(modfreq).range(0, 1);\r\n\tsig1 = LFSaw.ar(freq * 1 + (0.04 * [1,-1]));\r\n\tsig2 = LFSaw.ar(freq * 0.99 );\r\n\tsig3 = LFSaw.ar(freq * 1 );\r\n\tsig = sig1 + sig2 + sig3;\r\n\tsig = (sig*50).tanh;\r\n\tsig = sig * EnvGen.ar(\\adsr.kr(Env.adsr(0.01,0.1,0.8,0.5)),gate,doneAction:doneAction);\r\n\tsig = Splay.ar(sig, spread, amp*modulator, pan);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n\r\nSynthDef(\\sub, {arg out = 0, amp = 0.3, sinfreq = 60, sus = 0.1, glissf = 0.005, att = 0.01, rel = 0.45, pan = 0;\r\n\tvar env, snd, ramp;\r\n\tenv = Env.linen(attackTime: 0.25, sustainTime: sus, releaseTime: rel, level: amp).kr(doneAction: 2);\r\n\tramp = XLine.kr(\r\n\t\tstart: sinfreq,\r\n\t\tend: sinfreq,\r\n\t\tdur: rel\r\n\t);\r\n\tsnd = SinOsc.ar(freq: ramp, mul: env);\r\n\tsnd = Pan2.ar(snd, pan);\r\n\tOut.ar(out, snd);\r\n}).add;\r\n)\r\n///////////////\r\n(\r\n~snare =Pbind(\r\n\t\\instrument, \"snare\",\r\n\t\\sinfreq, 100,\r\n\t\\dur, Pseq([Rest(2), 4, 4, 2], 1),\r\n\t\\amp, 0.15,\r\n\t\\rel, 0.5,\r\n);\r\n~snare2 =Pbind(\r\n\t\\instrument, \\snare2,\r\n\t\\sinfreq, 120,\r\n\t\\dur, Pseq([Rest(2), 4, 4, 2], 1),\r\n\t\\amp, 0.25,\r\n\t\\rel, 0.5,\r\n);\r\n~kick = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, Pseq([ 4, 1/2, 1/4, 1/4, 3, 1/2, 1/2, 2, 1/2, 1/4, 1/4], 1),\r\n\t\\att, 0.0001,\r\n\t\\rel, 0.75,\r\n\t\\sinfreq, 120,\r\n\t\\glissf, 0.001,\r\n\t\\amp, 0.6,\r\n);\r\n~start = Pbind(\r\n    \\instrument, \"fm2\",\r\n\t\\dur, Pseq([7/2, Rest(1/2), 7/2, Rest(1/2), 7/4, 7/4, 1/2], 1),\r\n\t\\midinote, Pseq([\r\n\t\t[69, 65, 62],\r\n\t\t\\rest,\r\n\t\t[67, 64, 60],\r\n\t\t\\rest,\r\n\t\t[65, 62, 58],\r\n\t\t[67, 64, 60],\r\n\t\t[69, 65, 62],\r\n\t], 1),\r\n\t\\ctranspose, [0, 12],\r\n\t\\modindex, Pseq([1, \\rest, 5, \\rest, 6, 7, 10], inf),\r\n\t\\amp, 0.1,\r\n\t\\att, 0.01,\r\n\t\\rel, Pwhite(1, 1.5),\r\n\t\\pos, 0\r\n);\r\n~amx = Pbind(\r\n    \\instrument, \"am1\",\r\n    \\midinote, Pseq([84, 84, 84, 86, 84, 84, 84, 84, 86, 84, 81, 84, 86, 86, 88], 1),\r\n\t\\dur, Pseq([1, 1, 1, 1, 1/2, 1/2, 1, 1, 1, 3/4, 3/4, 3/4, 3/4, 1/2, 1/2], 1),\r\n    \\amp, 1,\r\n    \\att, 0.01,\r\n    \\rel, 1,\r\n\t\\pos, 0\r\n);\r\n~amx2 = Pbind(\r\n    \\instrument, \"am1\",\r\n    \\midinote, Pseq([84, 84, 84, 86, 84, 84, 84, 84, 86, 84, 81, 84, 86, 86, 88], 1),\r\n\t\\dur, Pseq([1, 1, 1, 1, 1/2, 1/2, 1, 1, 1, 3/4, 3/4, 3/4, 3/4, 1/2, 1/2], 1),\r\n    \\amp, 0.5,\r\n    \\att, 0.01,\r\n    \\rel, 1,\r\n\t\\pos, 0,\r\n\t\\ctranspose, [-12, 0, 12],\r\n\r\n);\r\n~riser = Pbind(\r\n\t\\instrument, \"riser\",\r\n\t\\dur, 6,\r\n\t\\degree, Pseq([1], 1),\r\n\t\\amp, 1\r\n);\r\n\r\n~saw = Pbind(\r\n\t\\instrument, \\wobble,\r\n    \\dur, Pseq([7/2, Rest(1/2), 7/2, Rest(1/2), 7/4, 7/4, 1/2], 1),\r\n\t\\midinote, Pseq([\r\n\t\t[69, 65, 62],\r\n\t\t\\rest,\r\n\t\t[67, 64, 60],\r\n\t\t\\rest,\r\n\t\t[65, 62, 58],\r\n\t\t[67, 64, 60],\r\n\t\t[69, 65, 62],\r\n\t], inf),\r\n\t\\ctranspose, [ -12, 0, 12],\r\n    \\amp, 0.025,\r\n);\r\n\r\n~wubwub = Pbind(\r\n\t\\instrument, \\wobble2,\r\n    \\dur, Pseq([7/2, Rest(1/2), 7/2, Rest(1/2), 7/4, 7/4, 1/2], 1),\r\n\t\\midinote, Pseq([\r\n\t\t[69, 65, 62],\r\n\t\t\\rest,\r\n\t\t[67, 64, 60],\r\n\t\t\\rest,\r\n\t\t[65, 62, 58],\r\n\t\t[67, 64, 60],\r\n\t\t[69, 65, 62],\r\n\t], inf),\r\n\t\\ctranspose, [ -24, -12, 0],\r\n    \\amp, 0.05,\r\n\t\\modfreq, Pseq([ 0, \\rest, 6, \\rest, 0, 10, 0], 1),\r\n);\r\n~sub = Pbind(\r\n\t\\instrument, \\sub,\r\n\t\\dur, Pseq([4, 4, 7/4, 7/4, 1/2], 1),\r\n\t\\att, 5,\r\n\t\\sus, Pseq([1, 1, 1/2, 1/2, 1/8], 1),\r\n\t\\rel, 0.01,\r\n\t\\sinfreq, Pseq([ 73.4, 65.4, 58.3, 65.4, 73.4], 1),\r\n\t\\amp, 0.20,\r\n\t\\glissf, 0.005\r\n);\r\n)\r\n\r\n/////////////\r\n\r\n~start.play(TempoClock(145/60));\r\n~kick.play(TempoClock(145/60));\r\n~snare.play(TempoClock(145/60));\r\n~snare2.play(TempoClock(145/60));\r\n~amx.play(TempoClock(145/60));\r\n~amx2.play(TempoClock(145/60));\r\n~riser.play(TempoClock(145/60));\r\n~saw.play(TempoClock(145/60));\r\n~sub.play(TempoClock(145/60));\r\n~wubwub.play(TempoClock(145/60));\r\n\r\n///////////////////\r\n(\r\nPspawner({arg maestro;\r\n\tmaestro.seq(~start);\r\n\tmaestro.seq(~start);\r\n\tmaestro.seq(Ppar([~start, ~amx], 2));\r\n\tmaestro.seq(Ppar([~start,  ~amx2, ~saw], 2));\r\n\tmaestro.seq(~riser);\r\n\tmaestro.seq(Ppar([ ~kick, ~snare, ~snare2, ~amx2, ~sub, ~wubwub, ~saw], 4));\r\n\tmaestro.seq(Ppar([~start, ~kick, ~snare, ~snare2, ~amx2, ~wubwub], 4));\r\n\tmaestro.seq(Ppar([~start, ~amx, ~kick, ~snare, ~snare2]));\r\n\tmaestro.seq(~start);\r\n\r\n\tmaestro.suspendAll;\r\n\r\n\r\n\r\n}).play(TempoClock(145/60));\r\n)",
   "id" : "1-557",
   "is_private" : null,
   "labels" : [],
   "description" : "",
   "ancestor_list" : [],
   "author" : "hwright",
   "name" : "Sound Design and Chill A2"
}
