{
   "ancestor_list" : [],
   "description" : "",
   "author" : "Margo Gentile",
   "name" : "Final 115",
   "id" : "1-55W",
   "is_private" : null,
   "code" : "//samples\r\n\r\na= Buffer.read(s,\"/Users/alg31/Desktop/project sounds/SwagX3.wav\" );\r\n\r\n\r\nt= Buffer.read(s, \"/Users/alg31/Desktop/project sounds/Taylor Gang1.wav\");\r\n\r\nt.play;\r\na.play;\r\n//SynthDefs\r\n\r\n(\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        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\nSynthDef(\"granny1\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, panning = 0;\r\n    var snd, env;\r\n    env = Env.perc(attackTime: attack, releaseTime: release, level: amp).kr(doneAction: 2);\r\n    snd = PlayBuf.ar(\r\n        numChannels: 2,\r\n        bufnum: buffer,\r\n        rate: rate,\r\n        startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer))\r\n    );\r\n    snd = snd * env;\r\n\tsnd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\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(\"am3\", {arg freq = 440, modfreq = 2, amp = 0.2, att = 0.01, sus = 0.2, rel = 3, gate = 1, pos = 0;\r\n    var carrier, modulator, env;\r\n    env = Env.asr(\r\n        attackTime: att,\r\n\t\tsustainLevel: sus,\r\n        releaseTime: rel\r\n\t).kr(doneAction: 2, gate: gate, mul: amp);\r\n    modulator = SinOsc.ar(modfreq).range(0, 1);\r\n\tfreq = freq * LFNoise2.kr([2, 1/2, 1/3, 1/4, 1]).range(0.98, 1.02);\r\n    carrier = Pulse.ar(freq: freq, mul: env * modulator);\r\n\tcarrier = Mix.ar(carrier);\r\n\tcarrier = LPF.ar(carrier, Line.kr(10000, 1000, att));\r\n\tOut.ar(0, Pan2.ar(carrier, pos));\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\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\n)\r\n\r\n\r\n\r\n\r\n//Pbinds\r\n\r\n(\r\n~intropluck = Pbind(\r\n    \\instrument, \"plucking\",\r\n\t\\degree, Pseq([15, 8, 8, 15, 8, 8, 16, 12, 16, 12, 12, 16, 12, 12, 15, \\rest], inf),\r\n    \\mtranspose, 0,\r\n    \\amp, Pwhite(0.2, 0.3),\r\n    \\decay,  3,\r\n\t\\dampen, 0.15,\r\n\t\\dur,  Pseq([Pn(0.5, 15), Rest(0.5)], inf),\r\n);\r\n\r\n\r\n~swag = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, Pseq([0.9], 1),\r\n    \\amp, 1,\r\n\t\\startPos, 0.4,\r\n    \\attack, 1,\r\n    \\release, 0.25,\r\n\t\\buffer, a,\r\n\t\\dur, 1,\r\n);\r\n\r\n~swagfast = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, 1.6,\r\n    \\amp, 1,\r\n    \\startPos, 0.4,\r\n    \\attack, 0.2,\r\n    \\release, 1,\r\n\t\\buffer, a,\r\n\t\\dur, Pseq([1/2], 1),\r\n);\r\n\r\n~buffer = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, -0.4,\r\n\t\\amp, Pseq([0.3, 0.3, 0.3, 0.3], 1),\r\n    \\startPos, 0.5,\r\n    \\attack, 0.9,\r\n    \\release, 0.3,\r\n\t\\buffer, t,\r\n\t\\dur, Pseq([2], 1),\r\n);\r\n\r\n~hihat1 = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur,  Pseq([1/8, Rest(1/8)], inf),\r\n\t\\att, 0.05,\r\n\t\\rel, 0.1,\r\n\t\\ffreq, Pseq([9000, \\rest, 9000, \\rest, 9000, \\rest, 9000, \\rest, 1000, \\rest, 9000, \\rest, 9000, \\rest, 9000, \\rest], inf),\r\n\t\\pan, 0,\r\n\t\\amp, 0.2,\r\n);\r\n\r\n~hihat2 = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur, Pseq([1/2, Rest(1/2), Pn(1/4,2),  Rest(1/2), Pn(1/4, 4), Rest(1)], inf),\r\n\t\\att, 0.05,\r\n\t\\rel, 0.1,\r\n\t\\ffreq,  1000,\r\n\t\\pan, 0,\r\n\t\\amp, 0.2,\r\n);\r\n\r\n~hihat3 = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur, Pseq([1/2, Rest(1/2), 1/2,  Rest(1/2)], inf),\r\n\t\\att, 0.05,\r\n\t\\rel, 0.1,\r\n\t\\ffreq,  5000,\r\n\t\\pan, 0,\r\n\t\\amp, 0.2,\r\n);\r\n\r\n\r\n~bass1 = Pbind(\r\n    \\instrument, \"fm2\",\r\n\t\\dur, 1,\r\n\t\\note, Pseq([[0, 0.5, 1], 1, [0, 0.2, 0.4], -2], inf),\r\n\t\\ctranspose, -18,\r\n\t\\modindex,  1,\r\n\t\\amp, Pseq([0.3, 0.35, 0.4, 0.45, 0.5, 0.45, 0.4, 0.3, 0.2], inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.2,\r\n\t\\pos, 0\r\n);\r\n\r\n~bass3 = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, Pseq([1, 1, 1, 1, 1/4, 1/4, 1/4, 1/4, 1/4], inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.22,\r\n\t\\sinfreq, Pseq([50, 50, 50 , 50, 70, 70, 70, 70, 50],64),\r\n\t\\glissf, 0.9,\r\n\t\\amp, 1,\r\n);\r\n\r\n~bass11 = Pbind(\r\n    \\instrument, \"fm2\",\r\n\t\\dur, Pseq([1, 1/4, 1/4, 1/4, 1/4, 1, 1/2, 1/2], inf),\r\n\t\\note, Pseq([[0, 0.5, 1], 1, 1, 1, 1,  [0, 0.2, 0.4], -2, -2], inf),\r\n\t\\ctranspose, -18,\r\n\t\\modindex,  1,\r\n\t\\amp, Pseq([0.3, 0.35, 0.4, 0.45, 0.5, 0.45, 0.4, 0.3, 0.2], inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.2,\r\n\t\\pos, 0\r\n);\r\n\r\n~snare = Pbind(\r\n\t\\instrument, \"snare\",\r\n\t\\dur, Pseq([1/4, Rest(1/4)], 4),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.1,\r\n\t\\sinfreq, 180,\r\n\t\\ffreq, 2000,\r\n\t\\amp, 0.25\r\n\r\n);\r\n\r\n~bass1slow = Pbind(          //dur*1.5\r\n    \\instrument, \"fm2\",\r\n\t\\dur, 1.5,\r\n\t\\note, Pseq([[0, 0.5, 1], 1, [0, 0.2, 0.4], -2], 2),\r\n\t\\ctranspose, -18,\r\n\t\\modindex,  1,\r\n\t\\amp, Pseq([0.3, 0.35, 0.4, 0.45, 0.5, 0.45, 0.4, 0.3, 0.2], inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.2,\r\n\t\\pos, 0\r\n);\r\n\r\n~outropluck = Pbind(          //dur*1.5\r\n    \\instrument, \"plucking\",\r\n\t\\degree, Pseq([15, 8, 8, 15, 8, 8, 16, 12, 16, 12, 12, 16, 12, 12, 15, 15, 15, \\rest], 1),\r\n    \\mtranspose, 0,\r\n    \\amp, Pwhite(0.2, 0.3),\r\n    \\decay,  3,\r\n\t\\dampen, 0.15,\r\n\t\\dur,  Pseq([Pn(0.75, 15), Rest(0.75)], inf),\r\n);\r\n)\r\n)\r\n\r\n\r\n\r\n//Pspawner\r\n\r\n\r\n(\r\nPspawner({ arg maestro;\r\n\r\n\t~player1=maestro.par(~intropluck);               //intro pluck\r\n\t8.wait;\r\n\t~player6=maestro.par(~swagfast);                //swag\r\n\t8.wait;                                                           //intro pluck\r\n\t~player6=maestro.par(~swagfast);                //swag\r\n\tmaestro.suspend(~player1);\r\n\t1.wait;\r\n\t~player9=maestro.par(~buffer);                //tgang buffer\r\n\t0.5.wait;\r\n\t~player6=maestro.par(~swagfast);                 //swag\r\n\t0.5.wait;\r\n\t~player3=maestro.par(~hihat1);                    //hihat & DIRTYBASS start together\r\n\t~player4=maestro.par(~bass1);\r\n\t4.wait;\r\n\t~player9=maestro.par(~swag);                      //slow swag\r\n\t8.wait;                                                          //continue hihat & bass for 8..\r\n  ~player1=maestro.par(~intropluck);                  //resume pluck!!\r\n\t16.wait;\r\n\tmaestro.suspend(~player1);           //suspend pluck\r\n\tmaestro.suspend(~player3);          //suspend OG hihat\r\n\tmaestro.suspend(~player4);                                       //suspend DIRTYBASS\r\n\t1.wait;\r\n\t~player11=maestro.par(~snare);    //add a little count up!\r\n\t1.wait;\r\n\t~player4=maestro.par(~bass1);        //resume DIRTYBASS\r\n\t~player5=maestro.par(~hihat2);               //start new hihat\r\n\t16.wait;\r\n\t~player7=maestro.par(~bass3);               //add new bass to DIRTYBASS\r\n\tmaestro.suspend(~player5);                    //end new hihat, start LESS hihat\r\n\t~player8=maestro.par(~hihat3);\r\n\t16.wait;\r\n\tmaestro.suspend(~player7);                    //stop new bass\r\n\t4.wait;\r\n\tmaestro.suspend(~player8);                    //end LESS hihat\r\n\t~player1=maestro.par(~intropluck);        //intropluck comes back.\r\n\t16.wait;\r\n\tmaestro.suspend(~player4);                   //end dirtybass1\r\n\t~player10=maestro.par(~bass11);           //start dirtybass2\r\n\t~player3=maestro.par(~hihat1);             //resume OG hihat\r\n\t16.wait;\r\n\tmaestro.suspend(~player3);                   //suspend OG hihat\r\n\tmaestro.suspend(~player10);\r\n\tmaestro.suspend(~player1);\r\n\t1.wait;\r\n\t~player9=maestro.par(~buffer);                //tgang buffer\r\n\t1.wait;\r\n\t~player12=maestro.par(~bass1slow);           //end on SLOWER dirtybass & slower pluck\r\n\t~player13=maestro.par(~outropluck);\r\n\t13.wait;\r\n\tmaestro.suspendAll;\r\n\r\n}).play;\r\n)",
   "labels" : []
}
