{
   "labels" : [],
   "id" : "1-54V",
   "is_private" : null,
   "code" : "//SynthDefs\r\n\r\n(\r\nSynthDef(\"riser\",  {arg out = 0, amp = 0.5, pan = 0;\r\n\tvar env, snd;\r\n\tenv = Env.linen( 10, 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(\"hihat\", {arg out = 0, amp = 0.5, att = 0.01, rel = 0.2, ffreq = 6000, pan = 0;\r\n\tvar env, snd;\r\n\tenv = Env.perc(att, rel, amp).kr(doneAction: 2);\r\n\tsnd = WhiteNoise.ar;\r\n\tsnd = HPF.ar(in: snd, freq: ffreq, mul: env);\r\n\tOut.ar(out, Pan2.ar(snd, pan));\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(\"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(\"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\nSynthDef(\"sawSynth\", { arg freq = 440, amp = 0.1, att = 0.1, rel = 2, lofreq = 1000, hifreq = 3000;\r\n    var env, snd;\r\n    env = Env.perc(\r\n\t\tattackTime: att,\r\n\t\treleaseTime: rel,\r\n\t\tlevel: amp\r\n\t).kr(doneAction: 2);\r\n    snd = Saw.ar(freq: freq * [0.99, 1, 1.001, 1.008], mul: env);\r\n\tsnd = LPF.ar(\r\n\t\tin: snd,\r\n\t\tfreq: LFNoise2.kr(1).range(lofreq, hifreq)\r\n\t);\r\n    snd = Splay.ar(snd);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"plucking\", {arg amp = 0.1, freq = 440, decay = 5, dampen = 0.1;\r\n\r\nvar env, snd;\r\nenv = Env.linen(0, decay, 0).kr(doneAction: 2);\r\nsnd = Pluck.ar(\r\n        in: WhiteNoise.ar(amp),\r\n        trig: Impulse.kr(0),\r\n        maxdelaytime: 0.1,\r\n        delaytime: freq.reciprocal,\r\n        decaytime: decay,\r\n        coef: dampen);\r\n    Out.ar(0, [snd, snd]);\r\n}).add;\r\n)\r\n\r\n//Pbinds\r\n\r\n\r\n(\r\n\r\na = Pbind(\r\n    \\instrument, \"plucking\",\r\n\t\\midinote, Pseq([ 82, 81, 75, 77, 69, 70, 72, 81, 82, 81, 75, 77, 81, 77, 79, 81, 77], inf),\r\n    \\amp, 0.1,\r\n    \\decay, 4,\r\n    \\dampen, 0.01,\r\n\t\\dur, Pseq([12/4, 12/4, 4/8, 16/4, 4/8, 9/4, 10/8, 4/8, 14/4, 14/4, 4/8, 24/8, 4/8, 4/8, 12/4, 4/8, 4/8], inf),\r\n\t\\ctranspose, [-24, -12, 0]\r\n);\r\n\r\nc =Pbind(\r\n\t\\instrument, \"snare\",\r\n\t\\degree, 0,\r\n\t\\dur, 2,\r\n\t\\amp, 0.25,\r\n\t\\rel, 0.7,\r\n);\r\n\r\n\r\nd = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, Pseq([ 0.5, 1.8, 1.7],inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.01,\r\n\t\\sinfreq, 150,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.5,\r\n);\r\n\r\nf = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur, Pseq([ 0.5, 1.8, 1.7],inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.2,\r\n\t\\sinfreq, 120,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.5,\r\n);\r\n\r\ng = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur, 0.25,\r\n\t\\att, 0.01,\r\n\t\\rel, 0.2,\r\n\t\\sinfreq, 120,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.4,\r\n);\r\n\r\ne = Pbind(\r\n\t\\instrument, \"sub\",\r\n\t\\dur, Pseq([ 24/4, 14/2, 32/2, 28/4, 8, 14/2, 18/2],inf),\r\n\t\\att, 20,\r\n\t\\sus, Pseq([ 8/4, 4/2, 8/2, 6/4, 5/2, 4/2, 6/2 ], inf),\r\n\t\\rel, Pseq([ 2/4, 3/2, 8/2, 7/4, 4/2, 1/2, 2/2], inf),\r\n\t\\sinfreq, Pseq([ 49, 44, 73, 49, 44, 73, 78], inf),\r\n\t\\amp, 0.2,\r\n);\r\n\r\nh = Pbind(\r\n\t\\instrument, \"riser\",\r\n\t\\dur, 4,\r\n\t\\degree, Pseq([1], 1),\r\n\t\\amp, 1\r\n);\r\n\r\ni =Pbind(\r\n\t\\instrument, \"sawSynth\",\r\n\t\\midinote, Pseq([ 82, 81, 75, 77, 69, 70, 72, 81, 82, 81, 75, 77, 81, 77, 79, 81, 77], inf),\r\n\t\\dur, Pseq([12/4, 12/4, 4/8, 16/4, 4/8, 9/4, 10/8, 4/8, 14/4, 14/4, 4/8, 24/8, 4/8, 4/8, 12/4, 4/8, 4/8], inf),\r\n\t\\ctranspose, [0, -12],\r\n\t\\att, 0.01,\r\n\t\\rel, 1,\r\n\t\\amp, 0.3,\r\n\t\\lofreq, 500,\r\n\t\\hifreq, 1500\r\n);\r\n)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//Play\r\n\r\n(\r\n{\r\n\t~pluck = a.play(TempoClock(170/60));\r\n\t43.wait;\r\n\t~riser = h.play(TempoClock(170/60));\r\n\t2.25.wait;\r\n\t~sawsynth = i.play(TempoClock(170/60));\r\n\t~kick = d.play(TempoClock(170/60));\r\n\t~hihat = f.play(TempoClock(170/60));\r\n\t~fasthat = g.play(TempoClock(170/60));\r\n\t~sub = e.play(TempoClock(170/60));\r\n\t0.75.wait;\r\n\t~snare = c.play(TempoClock(170/60));\r\n\t44.5.wait;\r\n\t~fasthat.stop;\r\n\t~hihat.stop;\r\n\t~sub.stop;\r\n\t~sawsynth.stop;\r\n\t20.375.wait;\r\n\t~riser = h.play(TempoClock(170/60));\r\n\t2.25.wait;\r\n\t~sawsynth = i.play(TempoClock(170/60));\r\n\t~hihat = f.play(TempoClock(170/60));\r\n\t~fasthat = g.play(TempoClock(170/60));\r\n\t~sub = e.play(TempoClock(170/60));\r\n\t45.25.wait;\r\n\t~hihat.stop;\r\n\t~fasthat.stop;\r\n\t~kick.stop;\r\n\t~snare.stop;\r\n\t22.625.wait;\r\n\t~sawsynth.stop;\r\n\t~sub.stop;\r\n\t~pluck.stop;\r\n\t\r\n}.fork\r\n)",
   "name" : "Assignment #1",
   "author" : "hwright",
   "ancestor_list" : [],
   "description" : "https://soundcloud.com/user-665612115/db-assignment-1-musc115"
}
