{
   "code" : "////SAMPLES\r\n~ragebass = Buffer.read(s, \"C:/Users/Ian/Desktop/SUPERCOLLIDER/SAMPLES/final.wav\");\r\n~trump = Buffer.read(s, \"C:/Users/Ian/Desktop/SUPERCOLLIDER/SAMPLES/americandream.wav\");\r\n~no = Buffer.read(s, \"C:/Users/Ian/Desktop/SUPERCOLLIDER/SAMPLES/nonoonono.wav\");\r\n~kanye = Buffer.read (s, \"C:/Users/Ian/Desktop/SUPERCOLLIDER/SAMPLES/monokanye.wav\");\r\n~stick = Buffer.read (s, \"C:/Users/Ian/Desktop/SUPERCOLLIDER/SAMPLES/monostick.wav\");\r\n// ===================================\r\n// ASSIGNMENT 3 - IAN MCDOUGALL\r\n// ===================================\r\n\r\n// Your SynthDefs go here\r\n(\r\nSynthDef(\"hihat\", {arg out = 0, amp = 0.5, att = 0.01, rel = 0.2, ffreq = 12000, pan = 0;\r\n\tvar env, snd;\r\n\tenv =  Env.perc(\r\n\t\tattackTime: att,\r\n\t\treleaseTime: rel,\r\n\t\tlevel: amp).kr(doneAction: 2);\r\n\tsnd =  WhiteNoise.ar(\r\n\t\tmul: env,\r\n\t\tadd: 0);\r\n\tsnd = LPF.ar(\r\n\t\tin: snd,\r\n\t\tfreq: ffreq,\r\n\t\tmul: 1,\r\n\t\tadd: 0);\r\n\tOut.ar(out, Pan2.ar(snd, pan));\r\n}).add;\r\n\r\nSynthDef(\"granny3\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 1000, rq = 0.1, panning = 0, delay = 0.3, decay = 1;\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: 1,\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    snd = BPF.ar(snd, ffreq, rq);\r\n\tsnd = CombC.ar(snd, maxdelaytime: 2, delaytime: delay, decaytime: decay);\r\n    snd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"granny3\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 1000, rq = 0.1, panning = 0, delay = 0.3, decay = 1;\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: 1,\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    snd = BPF.ar(snd, ffreq, rq);\r\n\tsnd = CombC.ar(snd, maxdelaytime: 2, delaytime: delay, decaytime: decay);\r\n    snd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"kick\", {arg out = 0, amp = 0.5, sinfreq = 60, glissf = 0.9, att = 0.01, rel = 0.45, pan = 0;\r\n\tvar env, snd, ramp;\r\n\tenv =  Env.perc(\r\n\t\tattackTime: att,\r\n\t\treleaseTime: rel,\r\n\t\tlevel: 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(\r\n\t\tfreq: ramp,\r\n\t\tphase: 0,\r\n\t\tmul: env,\r\n\t\tadd: 0);\r\n\tsnd = Pan2.ar(snd, pan);\r\n\tOut.ar(out, snd);\r\n}).add;\r\n\r\nSynthDef(\"lowbuild\", {arg out = 0, amp = 0.3, sinfreq = 80, glissf = 0.9, att = 0.01, rel = 0.45, pan = 0;\r\n\tvar env, snd, ramp;\r\n\tenv =  Env.pairs([[0,0.05], [8.64, 0.2]], \\lin).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 = Saw.ar(\r\n\t\tfreq: ramp,\r\n\t\tmul: env,\r\n\t\tadd: 0);\r\n\tsnd = Pan2.ar(snd, pan);\r\n\tOut.ar(out, snd);\r\n}).add;\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.5, decay, 0).kr(doneAction: 2);\r\nsnd = Pluck.ar(\r\n\t\tin: WhiteNoise.ar(amp),\r\n\t\ttrig: Impulse.kr(0),\r\n\t\tmaxdelaytime: 0.1,\r\n\t\tdelaytime: (freq*2).reciprocal,\r\n\t\tdecaytime: decay,\r\n\t\tcoef: dampen);\r\n\tsnd = snd * env;\r\n\tOut.ar(0, [snd, snd]);\r\n}).add;\r\n\r\nSynthDef(\"sawSynth\", { arg freq = 440, amp = 0.1, att = 0.1, rel = 2, lofreq = 100, hifreq = 300000;\r\n\tvar env, snd;\r\n\tenv = 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\tsnd = Saw.ar(freq: freq * [0.99, 1, 1.001, 1.008], mul: env);\r\n\r\n\r\n\tsnd = Splay.ar(snd);\r\n\tOut.ar(0, snd);\r\n}).add;\r\n\r\n\r\n\r\n// simple synthdef, no filters or effects, just env and panning control\r\nSynthDef(\"ragebass\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, panning = 0;\r\n    var snd;\r\n    snd = PlayBuf.ar(\r\n        numChannels: 1,\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;\r\n\tsnd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"trump\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, panning = 0;\r\n    var snd, env;\r\n    snd = PlayBuf.ar(\r\n        numChannels: 1,\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;\r\n\tsnd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n)\r\n\r\n\r\n\r\n\r\n) // end of SynthDefs\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// ===================================\r\n// Define a bunch of \"score snippets\"\r\n// ===================================\r\n\r\n(\r\n~kick1 = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\midinote, Pseq([1], inf),\r\n\t\\amp, Pseq([1.5], inf),\r\n\t\\rel, 0.72167044595617,\r\n\t\\dur, Pseq([0.72, Rest(0.72), 0.72], inf),\r\n\t\\glissf, 0.5\r\n);\r\n\r\n~hihats = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur, 0.5,\r\n\t\\amp, Pseq([0.1, Rest(0.3), 0.3, 0.3], inf),\r\n\t\\glissf, 0.2,\r\n\t\\rel, 0.05\r\n);\r\n\r\n~clap = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\midinote, Pseq([1], 3),\r\n\t\\dur, 1,\r\n\t\\amp, Pseq([0, 0, 1, 0], inf),\r\n\t\\ffreq, 2000,\r\n\t\\glissf, 0.2,\r\n\t\\rel, 1.5\r\n);\r\n\r\n\r\n~lowbuild = Pbind(\r\n\t\\instrument, \"lowbuild\",\r\n\t\\sinfreq, Pseq([30], 1),\r\n\t\\dur, 8.64,\r\n\t\\amp, 0.02,\r\n\t\\rel, 8.64,\r\n\t\\glissf, 5\r\n);\r\n\r\n\r\n\r\n\r\n~bass1 = Pbind(\r\n    \\instrument, \"ragebass\",\r\n\t\\rate, Pseq([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1], 1), // notice this one ENDS after 4 cycles\r\n    \\amp, 3,\r\n    \\startPos, 0,\r\n    \\attack, 0.55,\r\n    \\release, 0,\r\n    \\buffer, ~ragebass, // which buffer to play from\r\n    \\dur, 2.1420181405896,\r\n);\r\n\r\n~trumpdream = Pbind(\r\n    \\instrument, \"trump\",\r\n\t\\rate, Pseq([1], 1), // notice this one ENDS after 4 cycles\r\n    \\amp, 3,\r\n    \\startPos, 0,\r\n    \\attack, 0,\r\n    \\buffer, ~trump, // which buffer to play from\r\n    \\dur, 0,\r\n);\r\n\r\n~bass2 = Pbind(\r\n    \\instrument, \"ragebass\",\r\n\t\\rate, Pseq([1], inf), // notice this one ENDS after 4 cycles\r\n    \\amp, 3,\r\n    \\startPos, 0,\r\n    \\attack, 0.55,\r\n    \\release, 0,\r\n    \\buffer, ~ragebass, // which buffer to play from\r\n    \\dur, 2.1420181405896,\r\n);\r\n\r\n\r\n\r\n~melody = Pbind(\r\n\t\\instrument, \"sawSynth\",\r\n\t\\freq, Pseq([880, 880, 830.61, 880, 880, 830.61, 554.37], 2),\r\n\t\\dur, Pseq([1/4, 1/4, 1/2, 1/4, 1/4, 1/2, 1], 2),\r\n\t\\amp, 0.3,\r\n\t\\rel, 1/2\r\n);\r\n\r\n~stick1 = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, Pseq([2, 4, 2], inf), // notice this one ENDS after 4 cycles\r\n    \\amp, 12,\r\n\t\\startPos, Pseq([0], inf),\r\n    \\attack, 0.01,\r\n    \\release, 4,\r\n    \\buffer, ~stick, // which buffer to play from\r\n    \\dur, 4,\r\n);\r\n\r\n\r\n\r\n\r\n~melody2 = Pbind(\r\n\t\\instrument, \"sawSynth\",\r\n\t\\freq, Pseq([440, 440, 415.30,440, 440, 415.30, 246.94], 2),\r\n\t\\dur, Pseq([1/4, 1/4, 1/2, 1/4, 1/4, 1/2, 1], 2),\r\n\t\\amp, 0.3,\r\n\t\\rel, 1/2\r\n);\r\n\r\n~kick2 = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\midinote, Pseq([1], inf),\r\n\t\\amp, 0.6,\r\n\t\\dur, Pseq([1/4, 1/4, Rest(1/2), 1, 1/4, 1/4, Rest(3/2)], inf),\r\n\t\\glissf, 0.5\r\n);\r\n\r\n~nono = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, Pseq([2, 1.9, 1.8 , 2.5, 4, 4], 1), // notice this one ENDS after 4 cycles\r\n    \\amp, 12,\r\n\t\\startPos, Pseq([0.18, 0.55, 0.4], inf),\r\n    \\attack, 0.01,\r\n    \\release, 4,\r\n    \\buffer, ~no, // which buffer to play from\r\n    \\dur, 1,\r\n);\r\n\r\n~kanye1 = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, Pseq([1.5, 1, 2], 2), // notice this one ENDS after 4 cycles\r\n    \\amp, 12,\r\n\t\\startPos, Pseq([0.24, 0.6, 0.4], inf),\r\n    \\attack, 0.01,\r\n    \\release, 4,\r\n    \\buffer, ~kanye, // which buffer to play from\r\n    \\dur, 4,\r\n);\r\n\r\n~kanye2 = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, Pseq([2, 1.5, 1], 2), // notice this one ENDS after 4 cycles\r\n    \\amp, 12,\r\n\t\\startPos, Pseq([0.18, 0.55, 0.4], inf),\r\n    \\attack, 0.01,\r\n    \\release, 4,\r\n    \\buffer, ~kanye, // which buffer to play from\r\n    \\dur, 4,\r\n);\r\n\r\n~hihats = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\dur, Pseq([Rest(1/2), 1/16, 1/16, 1/16, 1/16,1/16, 1/16,1/16, 1/16, Rest (2)], inf),\r\n\t\\amp, 0.3,\r\n\t\\glissf, 0,\r\n\t\\rel, 0.005\r\n);\r\n\r\n~clap2 = Pbind(\r\n\t\\instrument, \"hihat\",\r\n\t\\midinote, Pseq([Rest(1/2), 1/2, Rest(1/2), 1/2], inf ),\r\n\t\\dur, 1,\r\n\t\\amp, 0.8,\r\n\t\\ffreq, 20000,\r\n\t\\glissf, 0.2,\r\n\t\\rel, 1\r\n);\r\n\r\n)\r\n\r\n // end of Pbind definitions\r\n\r\n\r\n\r\n\r\n\r\n// ============\r\n// Quick test\r\n// ============\r\n\r\n\r\n~kick1.play;\r\n~hihats.play;\r\n~clap.play;\r\n~lowbuild.play;\r\n~bass1.play;\r\n~trumpdream.play;\r\n~nono.play;\r\n~bass2.play;\r\n~melody.play;\r\n~melody2.play;\r\n~kanye1.play;\r\n\r\n\r\n\r\n\r\n// =====================\r\n// Sequencing & playing\r\n// using Pspawner\r\n// =====================\r\n\r\n\r\n\r\n(\r\nPspawner({ arg maestro;\r\n\r\n\t~stickplayer = maestro.par(~stick1);\r\n\tmaestro.seq(~bass1);\r\n\t~bassplayer1 = maestro.par(Ppar([~bass2, ~kick1]));\r\n\t\"1\".postln;\r\n\tmaestro.wait(8.64);\r\n\tmaestro.seq(~lowbuild);\r\n\tmaestro.suspend(~bassplayer1);\r\n\tmaestro.suspend(~stickplayer1);\r\n\tmaestro.seq(~trumpdream);\r\n\t\"dowegethere\".postln;\r\n\tmaestro.seq(~clap);\r\n\tmaestro.wait(2);\r\n\t\"howaboutthis\".postln;\r\n\t~beatplayer1 = maestro.par(Ppar([~melody, ~kick2, ~clap2, ~hihats, ~kanye1]));\r\n\tmaestro.wait(6);\r\n\tmaestro.seq(Ppar([~melody2, ~kanye2]));\r\n\tmaestro.seq(Ppar([~melody, ~nono]));\r\n\tmaestro.seq(~trumpdream);\r\n\r\n\r\n    maestro.suspendAll;\r\n\r\n}).play\r\n)",
   "is_private" : null,
   "id" : "1-55s",
   "labels" : [
      "115granular"
   ],
   "description" : "https://soundcloud.com/user-68447368/trumping-115granular\r\n\r\nhttps://drive.google.com/open?id=0B4Ktno3iAlUoQmdqUHJ5cGVlV1k",
   "ancestor_list" : [],
   "name" : "Trumping 115granular",
   "author" : "ianmcdougall60"
}
