{
   "labels" : [],
   "is_private" : null,
   "id" : "1-560",
   "code" : "//In Love - MUSC 115 Final\r\n//Lydia Davidson\r\n\r\n\r\n//Samples\r\n\r\na = Buffer.read(s, \"/Applications/Audacity/Angels Intro.wav\");\r\n\r\nb = Buffer.read(s, \"/Applications/Audacity/As In Love.wav\");\r\n\r\nc = Buffer.read(s, \"/Applications/Audacity/Beat And Leaving.wav\");\r\n\r\na.play;\r\n\r\nb.play;\r\n\r\nc.play;\r\n\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\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\n\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    var env, snd, ramp;\r\n\tenv = Env.perc(att, rel, amp).kr(doneAction: 2);\r\n    ramp = XLine.kr(\r\n        start: sinfreq,\r\n        end: sinfreq * glissf,\r\n        dur: rel\r\n    );\r\n\tsnd = SinOsc.ar(freq: ramp, mul: env);\r\n    snd = Pan2.ar(snd, pan);\r\n    Out.ar(out, snd);\r\n}).add;\r\n\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\n)\r\n\r\n//Pbinds\r\n(\r\n~shhh = Pbind(\r\n\t\\instrument, \"snare\",\r\n\t\\dur, 1/30,\r\n\t\\att, 0.5,\r\n\t\\rel, 0.01,\r\n\t\\sinfreq, 25000,\r\n\t\\ffreq, 15000,\r\n\t\\amp, Pseg( Pseq([0.005, 0.1],inf), Pseq([7, 15], 1), \\linear)\r\n);\r\n\r\n\r\n\r\n~shhh2 = Pbind(\r\n\t\\instrument, \"snare\",\r\n\t\\dur, 1/30,\r\n\t\\att, 0.5,\r\n\t\\rel, 0.01,\r\n\t\\sinfreq, 25000,\r\n\t\\ffreq, 15000,\r\n\t\\amp, Pseg( Pseq([0.005, 0.01],inf), Pseq([7, 10], 1), \\linear)\r\n);\r\n\r\n\r\n~atmosphereAmp = 1; // 1 does not change anything\r\n~atmosphere = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, 2,\r\n    \\amp, 0.8 * Pfunc({~atmosphereAmp}),\r\n    \\startPos, 0,\r\n    \\attack, 0.5,\r\n    \\release, 10,\r\n\t\\ffreq, 10000,\r\n\t\\rq, 0.05,\r\n    \\buffer, a,\r\n    \\dur, 1,\r\n);\r\n\r\n\r\n~atmosphere2Amp = 1;\r\n~atmosphere2 = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, 4,\r\n\t\\amp, 0.9 * Pfunc({~atmosphere2Amp}),\r\n    \\startPos, 0,\r\n    \\attack, 1,\r\n    \\release, 6,\r\n\t\\ffreq, 15000,\r\n\t\\rq, 0.02,\r\n    \\buffer, a,\r\n    \\dur, 2,\r\n);\r\n\r\n\r\n~intro = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, 2,\r\n\t\\amp, Pseq([Pn(0.04, 5), 0.05, 0.06, 0.06, 0.07, 0.07, 0.08, 0.09, 0.09, 0.09, 0.1]),\r\n    \\startPos, 0.25,\r\n    \\attack, 3.5,\r\n    \\release, 0.5,\r\n    \\buffer, a,\r\n    \\dur, 1,\r\n);\r\n\r\n\r\n~introsh = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, 2,\r\n\t\\amp, Pseq([Pn(0.04, 3), 0.03, 0.02, 0.01, 0.007, 0.002]),\r\n    \\startPos, 0.25,\r\n    \\attack, 6,\r\n    \\release, 1,\r\n    \\buffer, a,\r\n    \\dur, 1,\r\n);\r\n\r\n\r\n~intro2 = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, 2,\r\n    \\amp, 0.1,\r\n    \\startPos, 0.45,\r\n    \\attack, 1,\r\n    \\release, 1,\r\n    \\buffer, a,\r\n    \\dur, 1,\r\n);\r\n\r\n\r\n~inLove = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, Pseq([4, 2, 1]),\r\n\t\\amp, Pseq([0.15, 0.25, 0.5]),\r\n\t\\startPos, 0.10,\r\n    \\attack, 5,\r\n\t\\release, Prand([6, 7, 8, 9, 10], 3),\r\n    \\buffer, b,\r\n\t\\dur, Pseq([0.5, 1, 1.5]),\r\n\t\\panning, Pwhite(-1, 1.0);\r\n);\r\n\r\n\r\n~inLove2 = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, Pseq([2, 2, 1, 1, 1, 1, 1, 1, 1], 3),\r\n\t\\amp, 0.05,\r\n\t\\startPos, 0.10,\r\n    \\attack, 0.7,\r\n\t\\release, 0.7,\r\n    \\buffer, b,\r\n\t\\dur, Pseq([0.5, Rest, 0.5, 0.5, 0.5, 0.5, 0.5, Rest, 0.5]),\r\n\t\\panning, Pwhite(-1, 1.0);\r\n);\r\n\r\n\r\n~love = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, 2,\r\n\t\\amp, 0.025,\r\n\t\\startPos, 0.17,\r\n    \\attack, 0.5,\r\n\t\\release, 1,\r\n    \\buffer, b,\r\n\t\\dur, Pseq([0.5, Rest, 0.5]),\r\n\t\\panning, Pwhite(-1, 1.0);\r\n);\r\n\r\n\r\n~ch = Pbind(\r\n    \\instrument, \"granny2\", // notice I'm using granny2 synthdef here\r\n\t\\rate, 1,\r\n\t\\amp, 1, // boosted to 5 because filtering attenuates a lot of the sound\r\n\t\\startPos, Pseq([0.4, 0.93, 0.7, 0.9], inf),\r\n    \\attack, 0.02,\r\n    \\release, 0.4,\r\n\t\\ffreq, 6500,\r\n\t\\rq, 0.02,\r\n    \\buffer, c, // which buffer to play from\r\n    \\dur, 0.03,\r\n\t\\panning, Pwhite(-0.5, 0.5)\r\n);\r\n\r\n\r\n~bass = Pbind(\r\n    \\instrument, \"granny1\",\r\n\t\\rate, 0.5,\r\n\t\\amp, 0.08,\r\n\t\\startPos, 0.3,\r\n    \\attack, 0.02,\r\n\t\\release, 1,\r\n    \\buffer, c,\r\n\t\\dur, 0.25,\r\n\t\\panning, 0;\r\n);\r\n\r\n\r\n~prevoiceAmp = 1;\r\n~prevoice = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, 2,\r\n\t\\amp, 0.5 * Pfunc({~prevoiceAmp}),\r\n\t\\startPos, Pseq([0.25, 0.15, 0.67, 0.9, 0.87], 2),\r\n    \\attack, 1,\r\n    \\release, 0.6,\r\n\t\\ffreq, 700,\r\n\t\\rq, 0.05,\r\n\t\\delay, 0.2,\r\n\t\\decay, 2,\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~prevoice2Amp = 1;\r\n~prevoice2 = Pbind(\r\n    \\instrument, \"granny3\",\r\n\t\\rate, Pseq([8, 4, 2], 3),\r\n\t\\amp, 0.5 * Pfunc({~prevoice2Amp}),\r\n\t\\startPos, Pseq([0.25, 0.15, 0.67, 0.9, 0.87], 3),\r\n    \\attack, 1,\r\n    \\release, 0.6,\r\n\t\\ffreq, 700,\r\n\t\\rq, 0.05,\r\n\t\\delay, 0.2,\r\n\t\\decay, 2,\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~kick = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, 0.25,\r\n\t\\att, 0.002,\r\n\t\\rel, 0.12,\r\n\t\\sinfreq, 30,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.5,\r\n);\r\n\r\n\r\n\r\n~kick2 = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, Pseq([0.25, Rest(0.75)], inf),\r\n\t\\att, 0.002,\r\n\t\\rel, 0.12,\r\n\t\\sinfreq, 80,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.5,\r\n);\r\n\r\n\r\n~kick3 = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, 0.5,\r\n\t\\att, 0.002,\r\n\t\\rel, 0.12,\r\n\t\\sinfreq, 20,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.5,\r\n);\r\n\r\n\r\n~kick4 = Pbind(\r\n\t\\instrument, \"kick\",\r\n\t\\dur, 2,\r\n\t\\att, 0.02,\r\n\t\\rel, 0.05,\r\n\t\\sinfreq, 90,\r\n\t\\glissf, 0.5,\r\n\t\\amp, 0.5,\r\n);\r\n\r\n)\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\nt = TempoClock(58/60);\r\n\r\n(\r\nt = TempoClock(58/60);\r\nPspawner({ arg maestro;\r\n\r\n\t\r\n\tmaestro.par(~shhh);\r\n    6.wait;\r\n\r\n\t~player = maestro.par(~atmosphere2);\r\n\t6.5.wait;\r\n\r\n\t~player0 = maestro.par(~atmosphere);\r\n\t10.wait;\r\n\r\n\t~player1 = maestro.par(~intro);\r\n\t8.wait;\r\n\r\n\tmaestro.suspend(~player);\r\n\r\n\t~player2 = maestro.par(~bass);\r\n\t1.wait;\r\n\r\n\tmaestro.suspend(~player1);\r\n\r\n\t~player5 = maestro.par(~intro2);\r\n\t3.wait;\r\n\r\n\t~player3 = maestro.par(~ch);\r\n\r\n\t~player4 = maestro.par(~kick);\r\n\t4.wait;\r\n\r\n\t~player7 = maestro.par(~kick2);\r\n\t4.wait;\r\n\r\n\t~player8 = maestro.par(~kick3);\r\n\t2.wait;\r\n\r\n\t~player9 = maestro.par(~kick4);\r\n\tmaestro.seq(~prevoice);\r\n\t1.wait;\r\n\r\n\tmaestro.seq(~prevoice2);\r\n\r\n\tmaestro.suspend(~player8);\r\n\t2.wait;\r\n\r\n\tmaestro.par(~prevoice);\r\n\t2.wait;\r\n\r\n\tmaestro.par(~prevoice2);\r\n\t2.wait;\r\n\r\n\tmaestro.par(~prevoice2);\r\n\t1.wait;\r\n\r\n\tmaestro.par(~prevoice);\r\n\r\n\tmaestro.par(~inLove2);\r\n\t4.wait;\r\n\r\n\t~player6 = maestro.par(~intro);\r\n\r\n\tmaestro.par(~inLove2);\r\n\t3.wait;\r\n\t\r\n\tmaestro.par(~inLove);\r\n\t2.5.wait;\r\n\t\r\n\tmaestro.suspend(~player2);\r\n\tmaestro.suspend(~player7);\r\n\tmaestro.suspend(~player3);\r\n\tmaestro.suspend(~player4);\r\n\tmaestro.suspend(~player9);\r\n\t\r\n\tmaestro.par(~inLove);\r\n\t2.wait;\r\n\r\n\tmaestro.suspend(~player6);\r\n\t3.wait;\r\n\r\n\tmaestro.suspend(~player5);\r\n\r\n\tmaestro.par(~atmosphere2);\r\n\t6.wait;\r\n\r\n\t~player1 = maestro.par(~intro);\r\n\t5.wait;\r\n\t\r\n\t~player8 = maestro.par(~kick3);\r\n\t3.wait;\r\n\t\r\n\tmaestro.par(~shhh2);\r\n\t3.wait;\r\n\r\n\tmaestro.par(~prevoice);\r\n\t2.wait;\r\n\r\n\tmaestro.par(~prevoice2);\r\n\t2.wait;\r\n\t\r\n\tmaestro.suspend(~player8);\r\n\t2.wait;\r\n\t\r\n\tmaestro.seq(~love);\r\n\t\r\n\tmaestro.seq(~introsh);\r\n\t5.wait;\r\n\r\n\r\n\r\n\tmaestro.suspendAll;\r\n\r\n\r\n}).play(t);\r\n)",
   "name" : "In Love - MUSC 115 Final",
   "author" : "ldavidson",
   "description" : "samples:  https://drive.google.com/open?id=0B4lYb-DVaMMLekk4Y0JiSlkwbGM\r\n\r\nhttps://soundcloud.com/lydia-davidson-919585173/in-love-musc-115-final",
   "ancestor_list" : []
}
