{
   "ancestor_list" : [],
   "description" : "Sound Cloud: https://soundcloud.com/lydia-davidson-919585173/broken-nostalgia-115granular\r\n\r\nSamples: https://drive.google.com/open?id=0B4lYb-DVaMMLekk4Y0JiSlkwbGM",
   "author" : "ldavidson",
   "name" : "Broken Nostalgia - 115granular",
   "is_private" : null,
   "id" : "1-55r",
   "code" : "b = Buffer.read(s, \"/Applications/Audacity/1-06 All My Loving.wav\");\r\n\r\nc = Buffer.read(s, \"/Applications/Audacity/BOW.wav\");\r\n\r\n// SynthDefs\r\n(\r\n// simple synthdef, no filters or effects, just env and panning control\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: 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\tsnd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\n// Same as above, but adding a filter just for fun\r\nSynthDef(\"granny2\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 1000, rq = 0.1, 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: 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    snd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\n// Same as above, but adding an echo effect (CombC)\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\n\r\n\r\n)\r\n\r\n\r\n//Pbinds\r\n(\r\n~oldfashioned = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([1, 0.5], 3.5),\r\n\t\\amp, 0.05,\r\n\t\\startPos, 0,\r\n    \\attack, 1,\r\n    \\release, 1,\r\n\t\\ffreq, 3000,\r\n\t\\rq, 0.1,\r\n    \\buffer, b,\r\n    \\dur, 0.5,\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~oldfashioned2 = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([1, 0.75], 4.5),\r\n\t\\amp, 0.05,\r\n\t\\startPos, 0,\r\n    \\attack, 0.5,\r\n    \\release, 0.5,\r\n\t\\ffreq, 25000,\r\n\t\\rq, 0.08,\r\n    \\buffer, b,\r\n    \\dur, 0.5,\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~oldfashionedstay = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, 1,\r\n\t\\amp, 0.035,\r\n\t\\startPos, 0,\r\n    \\attack, 0.25,\r\n    \\release, 0.05,\r\n\t\\ffreq, 23000,\r\n\t\\rq, 0.08,\r\n    \\buffer, b,\r\n    \\dur, 0.5,\r\n\t\\panning, 0\r\n);\r\n\r\n~oldfashionedstay2 = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, 1,\r\n\t\\amp, 0.025,\r\n\t\\startPos, 0,\r\n    \\attack, 0.05,\r\n    \\release, 0.02,\r\n\t\\ffreq, 23000,\r\n\t\\rq, 0.08,\r\n    \\buffer, b,\r\n    \\dur, 0.5,\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n\r\n~lowbeat = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([0.5, 0.5, 0.25, 1, 1, 0.25, 0.5, 0.5], inf),\r\n\t\\amp, 0.08,\r\n\t\\startPos, 0,\r\n    \\attack, 0.05,\r\n    \\release, 0.05,\r\n\t\\ffreq, 100,\r\n\t\\rq, 0.08,\r\n    \\buffer, b,\r\n    \\dur, 0.25,\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~heartbeat = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([0.5, 1], inf),\r\n\t\\amp, 0.08,\r\n\t\\startPos, 0,\r\n    \\attack, 0.05,\r\n    \\release, 0.05,\r\n\t\\ffreq, 100,\r\n\t\\rq, 0.08,\r\n    \\buffer, b,\r\n\t\\dur, Pseq([0.35, 0.9],inf),\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~chop = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, Pseq([60, 50, 60, 70, 50], 20),\r\n\t\\amp, 0.25,\r\n\t\\startPos, Prand([0.5, 0.36, 0.8, 0.3, 0.4], 20),\r\n    \\attack, 0.05,\r\n    \\release, 0.02,\r\n\t\\ffreq, 500,\r\n\t\\rq, 0.04,\r\n\t\\delay, 0,\r\n\t\\decay, 0.5,\r\n    \\buffer, b,\r\n    \\dur, 0.5,\r\n\t\\panning, Pwhite(-0.5, 0.5)\r\n);\r\n\r\n\r\n~creepygiggle = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([1.25, 1.5, 2, 2.5, 2, 2.35, 2.56, 1.75, 2.45], 1),\r\n\t\\amp, 0.05,\r\n\t\\startPos, 0.5,\r\n    \\attack, 0.5,\r\n    \\release, 0.5,\r\n\t\\ffreq, 8000,\r\n\t\\rq, 0.3,\r\n    \\buffer, c,\r\n\t\\dur, Pwhite(0.25, 0.5),\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~buffc = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([1, 1, 1.2, 1.3, 1, 1.2, 1, 1.2], inf),\r\n\t\\amp, 0.25,\r\n\t\\startPos, 0.67,\r\n    \\attack, 0.5,\r\n    \\release, 1,\r\n\t\\ffreq, 3000,\r\n\t\\rq, 0.05,\r\n    \\buffer, c,\r\n    \\dur, 0.5,\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~oldfashioned3 = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], inf),\r\n\t\\amp, 0.05,\r\n\t\\startPos, Pseq([0, 0.25, 0.14, 0.67, 0.83, 0.9, 0.5, 0.23, 0.08, 0.45, 0.86, 0.13, 0.6, 0.55]),\r\n    \\attack, 0.1,\r\n    \\release, 1,\r\n\t\\ffreq, 500,\r\n\t\\rq, 0.1,\r\n    \\buffer, b,\r\n\t\\dur, Pwhite(0.25, 0.75),\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~oldfashioned4 = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], inf),\r\n\t\\amp, 0.02,\r\n\t\\startPos, Pseq([0.25, 0.83, 0.9, 0.5, 0.86, 0.13]),\r\n    \\attack, 0.1,\r\n    \\release, 0.5,\r\n\t\\ffreq, 900,\r\n\t\\rq, 0.1,\r\n    \\buffer, b,\r\n\t\\dur, Pwhite(0.25, 0.75),\r\n\t\\panning, 0\r\n);\r\n\r\n)\r\n\r\n~buffc.play;\r\n~oldfashioned.play;\r\n~oldfashioned2.play;\r\n~oldfashionedstay.play;\r\n~lowbeat.play;\r\n~chop.play;\r\n~creepygiggle.play;\r\n~heartbeat.play;\r\n~oldfashioned3.play;\r\n~oldfashioned4.play;\r\n~oldfashionedstay2.play;\r\n\r\n\r\n// =================================\r\n// Putting stuff together with Pspawner\r\n// =================================\r\n\r\n\r\n(\r\nPspawner({ arg maestro;\r\n\r\n\r\n\t~player0 = maestro.par(~buffc);\r\n\t5.wait;\r\n\r\n\tmaestro.seq(~oldfashioned);\r\n\r\n\tmaestro.seq(~oldfashioned2);\r\n\r\n\t~player1 = maestro.par(~oldfashionedstay);\r\n\t4.wait;\r\n\r\n\t~player2 = maestro.par(~lowbeat);\r\n\t4.wait;\r\n\r\n\tmaestro.par(~chop);\r\n\t5.wait;\r\n\r\n\tmaestro.seq(~creepygiggle);\r\n\r\n\tmaestro.suspend(~player1);\r\n\t6.wait;\r\n\r\n\tmaestro.suspend(~player2);\r\n\t0.5.wait;\r\n\r\n\t~player3 = maestro.par(~heartbeat);\r\n\t5.wait;\r\n\r\n\tmaestro.seq(~oldfashioned3);\r\n\t4.wait;\r\n\r\n\tmaestro.seq(~oldfashioned4);\r\n\t2.wait;\r\n\r\n\t~player4 = maestro.par(~oldfashionedstay2);\r\n\t3.wait;\r\n\r\n\tmaestro.suspend(~player4);\r\n\t4.wait;\r\n\r\n\tmaestro.suspend(~player3);\r\n\r\n\t4.wait;\r\n\r\n\r\n\tmaestro.suspendAll;\r\n\r\n}).play;\r\n)",
   "labels" : []
}
