{
   "labels" : [],
   "id" : "1-55C",
   "is_private" : null,
   "code" : "// =================================\r\n// A4 - musc-115-granular\r\n// GRANULAR SAMPLING\r\n// =================================\r\n\r\n\r\n\r\nKrystof Komers A4\r\n\r\n// load a sound file (or two...)\r\nb = Buffer.read(s, \"/Users/krystof/Downloads/A3/when the levee breaks short.wav\");\r\n\r\n// buffer handy tools:\r\nb.play;\r\nb.numChannels;\r\nb.duration;\r\nb.numFrames;\r\n\r\n\r\nc = Buffer.read(s, \"/Users/krystof/Downloads/A3/Electric Funeral short.wav\");\r\n\r\nc.play;\r\nc.numChannels;\r\nc.duration;\r\nc.numFrames;\r\n\r\n\r\nw = Buffer.read(s, \"/Users/krystof/Downloads/A3/walkshort.wav\"); \r\n\r\nw.play; \r\nw.duration;\r\n\r\n//////////////////////////////////////\r\n\r\n(\r\n\r\nSynthDef(\"bill1\", {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\r\nSynthDef(\"bill2\", {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\r\nSynthDef(\"bill3\", {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\nSynthDef(\"bill5\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0, release = 10, panning = 0;\r\n    var snd, env;\r\n    env = Env.perc(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      \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\n\r\n\r\n)\r\n\r\n\r\n//1ST PBind Bill 1 \r\n\r\n(\r\n~one = Pbind(\r\n    \\instrument, \"bill1\",\r\n\t\\rate, Pseq([1,2,3,1], 6), \r\n    \\amp, 1,\r\n    \\startPos, 0.24,\r\n    \\attack, 0.01,\r\n    \\release, 0.3,\r\n    \\buffer, b, \r\n    \\dur, 0.25,\r\n);\r\n\r\n~one.play;\r\n)\r\n\r\n\r\n// 1.5 Buffer C\r\n(\r\n~onefive = Pbind(\r\n    \\instrument, \"bill1\",\r\n\t\\rate, Pseq([3, 2, 1, 3], 4), \r\n    \\amp, 1,\r\n    \\startPos, 0.24,\r\n    \\attack, 0.01,\r\n    \\release, 0.3,\r\n    \\buffer, c, \r\n    \\dur, 0.25,\r\n);\r\n\r\n~onefive.play;\r\n)\r\n\r\n//2ND Pbind Bill 1 different filter\r\n\r\n(\r\n~two = Pbind(\r\n    \\instrument, \"bill1\",\r\n\t\\rate, Pseq([2, 5, 8, 9, 9.5, 7.5, 6, 4], 8),\r\n\t\\amp, 1,\r\n\t\\startPos, Pseq([0.24, 0.33, 0.66, 0.89], 8), \r\n    \\attack, 0.01,\r\n    \\release, 0.1,\r\n    \\buffer, b, // which buffer to play from\r\n    \\dur, 0.20,\r\n\t\r\n);\r\n\r\n~two.play;\r\n)\r\n\r\n\r\n//2.5 Buffer C different filter\r\n(\r\n~twofive = Pbind(\r\n    \\instrument, \"bill1\",\r\n\t\\rate, Pseq([2, 5, 8, 9, 9.5, 7.5, 6, 4], 8),\r\n\t\\amp, 2,\r\n\t\\startPos, Pseq([0.24, 0.33, 0.66, 0.89], 8), \r\n    \\attack, 0.01,\r\n    \\release, 0.1,\r\n    \\buffer, c, // which buffer to play from\r\n    \\dur, 0.5,\r\n\t\r\n);\r\n\r\n~twofive.play;\r\n)\r\n\r\n\r\n\r\n// 3RD Pbind Bill 2 Harmonic filter \r\n(\r\n~three = Pbind(\r\n    \\instrument, \"bill2\", \r\n\t\\rate, Pseq([4, 3, 2, 0.92, 1.01, 1, 1, 9], inf),\r\n\t\\amp, 6, \r\n\t\\startPos, Pseq([0.24, 0.33, 0.66, 0.89], inf),\r\n    \\attack, 0.04,\r\n    \\release, 0.4,\r\n\t\\ffreq, Pseq([ 1000, 1250, 1500, 2000], inf),\r\n\t\\rq, 0.01,\r\n\t\\buffer, b, \r\n    \\dur, 0.1,\r\n\t\\panning, Pwhite(-0.5, 0.5)\r\n);\r\n\r\n~three.play;\r\n)\r\n\r\n\r\n\r\n// 3.5 Buffer C Bill 2 harmonic filter\r\n\r\n(\r\n~threefive = Pbind(\r\n    \\instrument, \"bill2\", \r\n\t\\rate, Pseq([4, 3, 2, 0.92, 1.01, 1, 1, 9], 15),\r\n\t\\amp, 8, \r\n    \\attack, 0.04,\r\n    \\release, 0.4,\r\n\t\\ffreq, Prand([1000, 2000], inf),\r\n\t\\rq, 0.01,\r\n    \\buffer, c, \r\n    \\dur, 0.1,\r\n\t\\panning, Pwhite(-0.5, 0.5)\r\n);\r\n\r\n~threefive.play;\r\n)\r\n\r\n\r\n\r\n(\r\n~four = Pbind(\r\n    \\instrument, \"bill5\", \r\n\t\\amp, 4, \r\n    \\buffer, w, \r\n\t\\rate, Pseq([1,0],1),\r\n\t\\release, 40,\r\n\t\r\n\r\n\t\r\n   \r\n);\r\n\r\n~four.play;\r\n)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//  4TH Pbind Bill 3 and other stuff who knows) SAVED P BIND FOR LATER \r\n\r\n\r\n\r\n\r\n// =================================\r\n// Putting stuff together with Pspawner\r\n// =================================\r\n\r\n\r\n\r\ns.record;\r\n\r\n\r\n(\r\nPspawner({ arg maestro;\r\n\r\n\tmaestro.seq(~four);\r\n\t\r\n\tmaestro.seq(Ppar([ ~two]));\r\n\t\r\n\tmaestro.seq(Ppar([ ~one, ~two]));\r\n\r\n\tmaestro.seq(Ppar([~four, ~two, ~twofive, ~threefive]));\r\n\r\n\tmaestro.seq(Ppar([~twofive, ~two, ~threefive, ~one]));\r\n\t\r\n\tmaestro.seq(~four);\r\n\t\r\n\tmaestro.seq(Ppar([~onefive, ~twofive]));\r\n\t\r\n\r\n\r\n}).play;\r\n)\r\n\r\n\r\n\r\n\r\n// old line to test the synth\r\nSynth(\"walkbass\", [\\rate, 3, \\amp, 0.5, \\buffer, w]);",
   "name" : "A4 Granular Modulations",
   "author" : "kkomers",
   "ancestor_list" : [],
   "description" : ""
}
