{
   "name" : "FINAL SCRATCH2",
   "author" : "bbates",
   "ancestor_list" : [],
   "description" : "",
   "labels" : [],
   "is_private" : null,
   "id" : "1-55S",
   "code" : "//SYNTH DEFS\r\n\r\n(\r\nSynthDef(\"am1\", {arg freq = 440, modfreq = 2, amp = 0.2, att = 0.01, rel = 3;\r\n    var carrier, modulator, env;\r\n    env = Env.perc(\r\n        attackTime: att,\r\n        releaseTime: rel,\r\n        level: amp\r\n    ).kr(2);\r\n    modulator = SinOsc.ar(modfreq).range(0, 1);\r\n    carrier = SinOsc.ar(freq: freq, mul: env * modulator);\r\n    Out.ar(0, carrier ! 2);\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.01;\r\n\tvar carrier, modulator, freqdev, env, modfreq;\r\n\t// i = d/m, so d = m*i\r\n\tmodindex = Line.kr(modindex, 1, att);\r\n\tmodfreq = freq / 2;\r\n\tfreqdev = modfreq * modindex;\r\n\tmodulator = WhiteNoise.ar(freq: modfreq, mul: freqdev);\r\n\tcarrier = Saw.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(\"fm3\", {arg freq = 440, modindex = 10, amp = 0.1, pos = 0, gate = 1, att = 0.01, rel = 0.01;\r\n\tvar carrier, modulator, freqdev, env, modfreq;\r\n\t// i = d/m, so d = m*i\r\n\tmodindex = Line.kr(modindex, 1, att);\r\n\tmodfreq = freq / 2;\r\n\tfreqdev = modfreq * modindex;\r\n\tmodulator = Pulse.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\n)\r\n\r\n//PBINDS\r\n\r\n(\r\n~amshort = Pbind(\r\n\t\\instrument, \"am1\",\r\n\t\\degree, Pseq([\r\n\t\t[0, 2, 4, 6],\r\n\t\t3,\r\n\t\t[7, 9, 14],\r\n\t\t9\r\n\t], inf),\r\n\t\\modfreq, 1,\r\n\t\\amp, Pwhite(0.05, 0.2),\r\n\t\\dur, 4,\r\n\t\\att, 0.01,\r\n\t\\pos, Pseq([-0.5, 0.5], inf)\r\n);\r\n~amshort.play;\r\n)\r\n\r\n(\r\n~amshort2 = Pbind(\r\n\t\\instrument, \"am1\",\r\n\t\\degree, Pseq([-12, \\rest, -4, \\rest], inf),\r\n\t\\modfreq, Pseq([3, \\rest, 0, \\rest], inf),\r\n\t\\amp, Pwhite(0.1, 0.4),\r\n\t\\dur, Pseq([1, Rest(1/2), 1, Rest(1/2)], inf),\r\n\t\\att, 0.01,\r\n\t\\pos, Pseq([-0.5, 0.5], inf)\r\n);\r\n~amshort2.play;\r\n)\r\n\r\n\r\n~fmnoise = Pbind(\r\n    \\instrument, \"fm2\",\r\n\t\\dur, 128,\r\n\t\\mtranspose,[0, 3, 7],\r\n \t\\modindex, Pwhite(0.00, 1.00),\r\n\t\\amp, 0.1,\r\n\t\\att, 8,\r\n\t\\rel, 24,\r\n);\r\n\r\n\r\n~fmclouds2 = Pbind(\r\n    \\instrument, \"fm3\",\r\n\t\\degree, [0, 7, 12, 14],\r\n\t\\dur, 0.5,\r\n \t\\modindex, Pwhite(0.00, 0.00),\r\n\t\\amp, Pwhite(0.052, 0.240),\r\n\t\\att, 0.01,\r\n\t\\rel, Pwhite(0.01, 0.06),\r\n\t\\pos, Pwhite(-0.30, 0.30)\r\n);\r\n)\r\n\r\n\r\n)\r\n\r\n//QUICK PLAY\r\n\r\n~amshort.play;\r\n\r\n~amshort2.play;\r\n\r\n~fmnoise.play;\r\n\r\n~fmclouds2.play;\r\n\r\n//SAMPLING\r\n\r\n(\r\n\r\n~buf1 = Buffer.readChannel(s, \"/Users/benbates/Desktop/Ahh.wav\", channels: [0]);\r\n\r\nSynthDef(\"1\", {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\tsnd = PlayBuf.ar(\r\n        numChannels: 1,\r\n        bufnum: ~buf1,\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\nSynthDef(\"1b\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, panning = 0, gate = 1;\r\n    var snd, env;\r\n    env = Env.asr(\r\n\t\tattackTime: attack,\r\n\t\tsustainLevel: amp,\r\n\t\treleaseTime: release\r\n\t).kr(doneAction: 2, gate: gate);\r\n\tsnd = PlayBuf.ar(\r\n        numChannels: 1,\r\n        bufnum: ~buf1,\r\n        rate: 1.05946.pow(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(\"1c\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, panning = 0, gate = 1, lagTime = 0.1, mix = 0.5;\r\n    var snd, env;\r\n    env = Env.asr(\r\n\t\tattackTime: attack,\r\n\t\tsustainLevel: amp,\r\n\t\treleaseTime: release\r\n\t).kr(doneAction: 2, gate: gate);\r\n\tsnd = PlayBuf.ar(\r\n        numChannels: 1,\r\n        bufnum: ~buf1,\r\n\t\trate: Lag.kr(in: 1.05946.pow(rate), lagTime: lagTime),\r\n        startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer)),\r\n\t\tloop: 1\r\n    );\r\n    snd = snd * env;\r\n\tsnd = FreeVerb.ar(\r\n\t\tin: snd,\r\n\t\tmix: Lag.kr(mix),\r\n\t\troom: 0.8,\r\n\t\tdamp: 0.8\r\n\t);\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~buf1.play;\r\n~buf1.duration;\r\n\r\n\r\ns.\r\n\r\n(\r\n~ahhMONO = Pmono(\r\n    \"1c\",\r\n\t\\rate, Pseq([\r\n\t\t[0, 3, 7],\r\n\t\t[-3, -9, 5],\r\n\t\t[0, 4, 10],\r\n\t\t[-1, 5, 6, 8],\r\n\t\t[-9, -5, 6, 10]\r\n\t],\r\n\t\tinf),\r\n\t\\dur, 2,\r\n\t\\amp, Pwhite(0.120, 0.190),\r\n\t\\attack, Pwhite(0.1500, 0.1700),\r\n\t\\release, 3,\r\n\t\\startPos, Pwhite(0.1, 0.5),\r\n\t\\lagTime, Pseq([0.1, 1], inf),\r\n\t\\mix, Pwhite(0.3, 0.8)\r\n);\r\n\r\n~ahhMONO.trace.play;\r\n)\r\n\r\n\r\n(\r\n~ahhB = Pbind(\r\n    \\instrument, \"1b\",\r\n\t\\rate, Pseq([\r\n\t\t[0, 3, 7],\r\n\t\t[-3, -9, 5],\r\n\t\t[6, 8, 10],\r\n\t],\r\n\t\tinf),\r\n\t\\dur, 1,\r\n\t\\amp, Pwhite(0.120, 0.190),\r\n\t\\attack, Pwhite(0.1500, 0.1700),\r\n\t\\release, 0.3,\r\n\t\\legato, 1.2,\r\n\t\\startPos, Pwhite(0.1, 0.5)\r\n);\r\n\r\n~ahhB.play;\r\n)\r\n\r\n\r\n(\r\n~ahh = Pbind(\r\n    \\instrument, \"1\",\r\n\t\\degree, [0, 3, 5],\r\n\t\\dur, 8,\r\n\t\\amp, Pwhite(0.120, 0.190),\r\n\t\\attack, Pwhite(0.500, 0.700),\r\n\t\\release, 6, //Pwhite(0.100, 0.200),\r\n);\r\n\r\n~ahh.play;\r\n)\r\n\r\n(\r\n\r\n~buf2 = Buffer.readChannel(s, \"/Users/benbates/Desktop/Ooh.wav\", channels: [0]);\r\n\r\nSynthDef(\"2\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 1, 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\tsnd = PlayBuf.ar(\r\n        numChannels: 1,\r\n        bufnum: ~buf2,\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\n\r\n\r\n~ahh = Pbind(\r\n    \\instrument, \"2\",\r\n\t\\degree, [0, 3, 5],\r\n\t\\dur, 4,\r\n\t\\amp, Pwhite(0.120, 0.190),\r\n\t\\attack, Pwhite(0.500, 0.700),\r\n\t\\release, Pwhite(0.100, 0.200),\r\n);\r\n\r\n~ooh.play;\r\n)"
}
