{
   "labels" : [
      "composition",
      "musc115"
   ],
   "id" : "1-5ci",
   "is_private" : null,
   "code" : "// =============================\r\n// \"Judges\" by Michael Noonan\r\n//\r\n// Composition and code by Michael Noonan\r\n// Final Project for MUSC 115 - Experimental Sound Design\r\n// Bruno Ruviaro, instructor\r\n// Santa Clara University\r\n// Fall 2019\r\n//\r\n// Recording available here: https://soundcloud.com/officialnoonan/judges\r\n// =============================\r\n\r\n(\r\ns.waitForBoot({\r\n\tSynthDef(\"pulsey\", { arg freq = 440, amp = 0.5, rel = 0.5, att = 0.5, pan = 0;\r\n\t\tvar snd, env;\r\n\r\n\t\tenv = Env.perc(\r\n\t\t\tattackTime: att,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tlevel: amp\r\n\t\t).kr(doneAction: 2);\r\n\r\n\t\tsnd = Pulse.ar(\r\n\t\t\tfreq: freq * LFNoise2.kr([4, 5, 7]).range(0.988, 1.011),\r\n\t\t\tmul: env\r\n\t\t);\r\n\r\n\t\tsnd = BPF.ar(\r\n\t\t\tin: snd,\r\n\t\t\tfreq: 500,\r\n\t\t\trq: 5\r\n\t\t);\r\n\r\n\t\tsnd = Splay.ar(snd);\r\n\r\n\t\tsnd = snd * In.kr(55);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\r\n\t\tOut.ar(0, snd);\r\n\r\n\t\t//DetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"pulsey2\", { arg freq = 440, amp = 0.5, rel = 0.5, att = 0.5, pan = 0;\r\n\t\tvar snd, env;\r\n\r\n\t\tenv = Env.perc(\r\n\t\t\tattackTime: att,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tlevel: amp\r\n\t\t).kr;\r\n\r\n\t\tsnd = Pulse.ar(\r\n\t\t\tfreq: freq * LFNoise2.kr([4, 5, 7]).range(0.988, 1.011),\r\n\t\t\tmul: env\r\n\t\t);\r\n\r\n\t\tsnd = BPF.ar(\r\n\t\t\tin: snd,\r\n\t\t\tfreq: 600,\r\n\t\t\trq: 4\r\n\t\t);\r\n\r\n\t\tsnd = Splay.ar(snd);\r\n\r\n\t\t//snd = snd * In.kr(55);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\r\n\t\tOut.ar(0, snd);\r\n\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"bass\", { arg freq = 440, amp = 0.6, att = 0.01, rel = 0.4, pan = 0, gate = 1;\r\n\t\tvar snd, snd2, env, env2, harmonics, amplitudes;\r\n\r\n\t\tenv = Env.asr(att, amp, rel).kr(gate: gate, doneAction: 2);\r\n\r\n\t\tharmonics = [1, 2.011, 2.01, 2.98, 2.97, 4.01, 4.98, 6.02];\r\n\t\tamplitudes = [0.9, 0.25, 0.25, 0.2, 0.2, 0.15, 0.1, 0.05];\r\n\r\n\t\tsnd = Saw.ar(freq * harmonics, amplitudes*amp);\r\n\t\tsnd2 = SinOsc.ar(freq); // * LFTri.ar(5).range(0, 1);\r\n\r\n\t\tsnd = (snd * 0.85) + (snd2 * 0.15);\r\n\r\n\t\tsnd = HPF.ar(snd, 50);\r\n\r\n\t\tsnd = snd * env;\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\r\n\t\t// 'doneAction: 2' here\r\n\t\t//DetectSilence.ar(snd, 0.001, 0.2, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"harmony\", { arg freq = 440, amp = 0.6, att = 0.01, rel = 0.4, pan = 0, gate = 1;\r\n\t\tvar snd, env, harmonics, amplitudes;\r\n\r\n\t\tenv = Env.asr(att, amp, rel).kr(gate: gate, doneAction: 2);\r\n\r\n\t\tharmonics = [1, 2.01, /*2.98,*/ 2.97, 4.01, 4.98, 6.02];\r\n\t\tamplitudes = [0.9, 0.25, /*0.2,*/ 0.2, 0.15, 0.1, 0.05];\r\n\r\n\t\tsnd = Saw.ar(freq * harmonics, amplitudes*amp);\r\n\t\t//snd2 = SinOsc.ar(freq); // * LFTri.ar(5).range(0, 1);\r\n\r\n\t\t//snd = (snd * 1) + (snd2 * 0.2);\r\n\r\n\t\tsnd = BPF.ar(snd, freq, 8, 2, 0);\r\n\t\tsnd = LPF.ar(snd, 8000);\r\n\r\n\t\tsnd = snd * env;\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\r\n\t\t// 'doneAction: 2' here\r\n\t\t//DetectSilence.ar(snd, 0.001, 0.2, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"sawverb\", { arg freq = 440, amp = 0.2, pan = 0, att = 0.01, rel = 0.1, gate = 1, spacing, beatFactor = 1;\r\n\t\tvar snd1, snd2, snd, env1, env2, beatings; // variables snd, env\r\n\r\n\t\tenv1 = Env.adsr(\r\n\t\t\tattackTime: att,\r\n\t\t\tdecayTime: 0.2,\r\n\t\t\tsustainLevel: amp,\r\n\t\t\treleaseTime: rel\r\n\t\t).kr(gate: gate);\r\n\r\n\t\tenv2 = Env.adsr(\r\n\t\t\tattackTime: att * 1/2,\r\n\t\t\tdecayTime: 0.2,\r\n\t\t\tsustainLevel: amp*0.6,\r\n\t\t\treleaseTime: rel*1/2\r\n\t\t).kr(gate: gate);\r\n\r\n\r\n\t\tsnd1 = Saw.ar(\r\n\t\t\tfreq: freq,//[freq, freq*2, freq*2.005, freq*3],\r\n\t\t\tmul: amp//[amp, amp*0.1, amp*0.1, amp*0.1]\r\n\t\t);\r\n\r\n\t\tsnd2 = Pulse.ar(\r\n\t\t\tfreq: freq,\r\n\t\t\tmul: amp\r\n\t\t);\r\n\r\n\t\tsnd1 = snd1 * env1;\r\n\t\tsnd2 = snd2 * env2;\r\n\r\n\t\tsnd = snd1 + snd2;\r\n\r\n\t\tsnd = BPF.ar(\r\n\t\t\tin: snd,\r\n\t\t\tfreq: 100,\r\n\t\t\trq: 0.5,\r\n\t\t\tmul: 2\r\n\t\t);\r\n\r\n\t\tsnd = FreeVerb.ar(\r\n\t\t\tin: snd,\r\n\t\t\tmix: 0.4,\r\n\t\t\troom:  0.1,\r\n\t\t\tdamp: 0.9\r\n\t\t);\r\n\r\n\t\t//snd = snd.distort.distort;\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\r\n\t\t// 'doneAction: 2' here\r\n\t\tDetectSilence.ar(snd, 0.001, 0.2, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"plucking\", {arg amp = 0.1, freq = 440, decay = 5, dampen = 0.1, mix = 0.5;\r\n\r\n\t\tvar env, snd;\r\n\t\tenv = Env.linen(0.2, decay, 0).kr(doneAction: 2);\r\n\t\tsnd = Pluck.ar(\r\n\t\t\tin: WhiteNoise.ar(amp),\r\n\t\t\ttrig: Impulse.kr(0),\r\n\t\t\tmaxdelaytime: 0.1,\r\n\t\t\tdelaytime: freq.reciprocal,\r\n\t\t\tdecaytime: decay,\r\n\t\t\tcoef: dampen\r\n\t\t);\r\n\t\tsnd = FreeVerb.ar(snd, mix, 0.4, 0.8).clip;\r\n\t\tOut.ar(0, [snd, snd]);\r\n\t\t//DetectSilence.ar(in: snd, amp: 0.0001, time: 0.01, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"snare\", {arg amp = 0.1, freq = 180, att = 0.01, rel = 0.2, ffreq = 2000, pan = 0;\r\n\t\tvar env, snd1, snd2, sum;\r\n\t\tenv = Env.perc(att, rel, amp).kr;\r\n\t\tsnd1 = HPF.ar(\r\n\t\t\tin: WhiteNoise.ar,\r\n\t\t\tfreq: ffreq\r\n\t\t);\r\n\t\tsnd2 = SinOsc.ar(freq: freq);\r\n\t\tsum = snd1 + snd2;\r\n\t\tsum = sum * env;\r\n\r\n\r\n\t\tOut.ar(0, Pan2.ar(sum, pan));\r\n\t\tDetectSilence.ar(sum, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"sosKick\", {\r\n\t\targ\r\n\t\t//Standard Values\r\n\t\tout = 0, pan = 0, amp = 1, curve = -4, drumAmp = 1, beaterAmp = 0.02,\r\n\t\t//drum Controls\r\n\t\tdrumFreq = 50, drumHarmonic = 2, drumSweep = 0.02, drumAtt = 0.005, drumRel = 0.4,\r\n\t\tdrumFilter = 1000, modIndex = 6.5, modFreq = 5,\r\n\t\t//beater Controls\r\n\t\tbeaterFreq = 500, beaterHarmonic = 12, beaterSweep = 0.03, beaterAtt = 0.01, beaterRel = 0.3;\r\n\r\n\t\tvar drumEnv, drumContour, drum, beaterContour, beaterEnv, beater, snd;\r\n\r\n\t\tdrumEnv = Env.perc(attackTime: drumAtt, releaseTime: drumRel, level: drumAmp, curve: curve).kr;\r\n\r\n\t\tdrumContour = Line.kr(start: drumFreq * drumHarmonic, end: drumFreq, dur: drumSweep);\r\n\r\n\t\tdrum = PMOsc.ar(\r\n\t\t\tcarfreq: drumContour,\r\n\t\t\tmodfreq: modFreq,\r\n\t\t\tpmindex: modIndex);\r\n\r\n\t\tdrum = LPF.ar(in: drum, freq: drumFilter, mul: drumEnv);\r\n\r\n\t\tbeaterEnv = Env.perc(attackTime: beaterAtt, releaseTime: beaterRel, level: beaterAmp, curve: curve).kr;\r\n\r\n\t\tbeaterContour = Line.kr(start: beaterFreq * beaterHarmonic, end: beaterFreq, dur: beaterSweep);\r\n\r\n\t\tbeater = HPF.ar(in: WhiteNoise.ar, freq: beaterFreq);\r\n\r\n\t\tbeater = LPF.ar(in: beater, freq: beaterContour, mul: beaterEnv*2);\r\n\r\n\t\tsnd = Mix.ar(drum + beater) * amp;\r\n\r\n\t\t//snd = snd.distort.distort;\r\n\r\n\t\tDetectSilence.ar(in: snd, doneAction: 2);\r\n\r\n\t\tOut.ar(out, Pan2.ar(snd, pan));\r\n\r\n\t},\r\n\tmetadata: (\r\n\t\tcredit: \"Renick Bell\",\r\n\t\tcategory: \\drums,\r\n\t\ttags: [\\pitched, \\kick, \\sos]\r\n\t)\r\n\t).add;\r\n\r\n\tSynthDef(\"hihat\", {arg amp = 0.5, att = 0.01, rel = 0.2, ffreq = 6000, pan = 0;\r\n\t\tvar env, snd;\r\n\t\tenv = Env.perc(\r\n\t\t\tattackTime: att,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tlevel: amp*1.2\r\n\t\t).kr;\r\n\t\tsnd = WhiteNoise.ar;\r\n\t\tsnd = HPF.ar(in: snd, freq: ffreq);\r\n\t\tsnd = snd * env;\r\n\t\tOut.ar(0, Pan2.ar(snd, pan));\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"myBell\", { arg freq = 440, amp = 0.1, att = 0.01, rel = 0.5, pan = 0;\r\n\t\tvar snd, env, spectrum, partials, amplitudes;\r\n\r\n\t\tspectrum = [\r\n\t\t\t[1, 0.5, Env.perc(att, rel, amp, -4.0).kr],\r\n\r\n\t\t\t[2, 0.2, Env.perc(att, rel*0.7, amp, -4.0).kr],\r\n\r\n\t\t\t[3.011, 0.1, Env.perc(att, rel*0.4, amp, -4.0).kr]\r\n\t\t];\r\n\r\n\t\tpartials = spectrum.flop[0];\r\n\t\tamplitudes = spectrum.flop[1];\r\n\r\n\t\tenv = spectrum.flop[2];\r\n\r\n\t\tsnd = SinOsc.ar(freq: freq * partials, mul: amplitudes);\r\n\t\tsnd = snd * env;\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Limiter.ar(snd);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t\tDetectSilence.ar(in: snd, amp: 0.001, time: 0.1, doneAction: 2);\r\n\r\n\t}).add;\r\n\r\n\tSynthDef(\\cheapPiano1, {\r\n\t\targ\r\n\t\t//Standard values\r\n\t\tout = 0, freq = 440, amp = 0.1, att = 0.001, rel = 1, pan = 0,\r\n\t\t//These range from 0 to 1\r\n\t\ttone = 0.25, hollowness = 0;\r\n\r\n\t\tvar hammer, snd, delay, tonefreq, env;\r\n\r\n\t\tenv = Env.perc(att, rel*0.6, amp * 4, -1).ar(doneAction: 2);\r\n\r\n\t\t// Delay line times: freq, freq - 4 cents, freq + 3 cents. In the original this was done by converting freq to midi.\r\n\t\tdelay = (1 / (freq * [2.pow(-0.04/12), 1, 2.pow(0.03/12)]));\r\n\t\ttonefreq = tone.linlin(0, 1, 1000, 5000);\r\n\r\n\t\thammer = Decay2.ar(\r\n\t\t\tin: Impulse.ar(0.001),\r\n\t\t\tattackTime: 0.008,\r\n\t\t\tdecayTime: 0.04,\r\n\t\t\tmul: LFNoise1.ar(freq: amp.linlin(0, 1, tonefreq, 2 * tonefreq), mul: 0.25)\r\n\t\t); //Try LFNoise1, LFNoise0, or even LFClipNoise above for a slightly grainier sound.\r\n\r\n\t\tsnd = CombL.ar(hammer, delay, delay, 50 * amp);\r\n\t\tsnd = BPF.ar(snd, 400, 2.5);\r\n\t\tsnd = snd * env;\r\n\t\tsnd = Limiter.ar(snd);\r\n\t\tOut.ar(out, Pan2.ar(snd, pan));\r\n\t},\r\n\tmetadata: (\r\n\t\tcredit: \"based on something posted 2008-06-17 by jeff, based on an old example by james mcc\",\r\n\t\tcategory: \\keyboards,\r\n\t\ttags: [\\casio, \\piano, \\pitched]\r\n\t)\r\n\t).add;\r\n\r\n\tSynthDef(\"marimba1\", {arg freq = 440, amp = 0.4, pan = 0;\r\n\t\tvar snd, env;\r\n\t\tenv = Env.linen(\r\n\t\t\tattackTime: 0.015,\r\n\t\t\tsustainTime: 1,\r\n\t\t\treleaseTime: 0.5,\r\n\t\t\tlevel: amp*2\r\n\t\t).kr(doneAction: 2);\r\n\t\tsnd = BPF.ar(\r\n\t\t\tin: Saw.ar(0),\r\n\t\t\tfreq: freq,\r\n\t\t\trq: 0.02\r\n\t\t);\r\n\t\tsnd = BLowShelf.ar(\r\n\t\t\tin: snd,\r\n\t\t\tfreq: 220,\r\n\t\t\trs: 0.81,\r\n\t\t\tdb: 12\r\n\t\t);\r\n\r\n\t\tsnd = HPF.ar(snd, 500);\r\n\r\n\t\tsnd = snd * env;\r\n\t\tOut.ar(0, Pan2.ar(snd, pan));\r\n\t},\r\n\tmetadata: (\r\n\t\tcredit: \"unknown\",\r\n\t\tcategory: \\keyboards,\r\n\t\ttags: [\\percussion, \\marimba, \\pitched, \\keyboard]\r\n\t)\r\n\t).add;\r\n\r\n\tSynthDef(\"FM2\", {arg freq = 440, cmRatio = 3, modIndex = 0, amp = 0.01, att = 0.01, dec = 0.05, sus = 0.9, rel = 0.1, pan = 0, gate = 1;\r\n\t\tvar carrier, modulator, modFreq, freqDev, snd, env;\r\n\t\tenv = Env.adsr(\r\n\t\t\tattackTime: att,\r\n\t\t\tdecayTime: dec,\r\n\t\t\tsustainLevel: sus,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tpeakLevel: amp\r\n\t\t).kr(gate: gate);\r\n\r\n\t\t// C:M = freq:modFreq, thus modFreq = freq * B/A\r\n\t\t// When C:M is a simple integer ratio, FM generates harmonic spectra\r\n\t\t// When C:M is NOT a simple integer ratio, FM generates inharmonic spectra\r\n\t\tmodFreq = freq * cmRatio.reciprocal;\r\n\r\n\t\t// Using Modulation Index to calculate freqDev\r\n\t\t// from formula index = freqDev/modfreq:\r\n\t\tfreqDev = modIndex * modFreq;\r\n\r\n\t\tmodulator = SinOsc.ar(freq: modFreq, mul: freqDev);\r\n\t\tcarrier = SinOsc.ar(freq: freq + modulator);\r\n\t\tsnd = carrier * env;\r\n\r\n\t\tsnd = LPF.ar(snd, 300, 1.8);\r\n\t\t/*snd = FreeVerb.ar(snd, 0.2, 0.5, 1);*/\r\n\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"melodyFM\", {arg freq = 440, cmRatio = 3, modIndex = 0, amp = 0.01, att = 0.01, dec = 0.05, sus = 0.9, rel = 0.1, pan = 0, gate = 1;\r\n\t\tvar carrier, modulator, modFreq, freqDev, snd, env;\r\n\t\tenv = Env.adsr(\r\n\t\t\tattackTime: att,\r\n\t\t\tdecayTime: dec,\r\n\t\t\tsustainLevel: sus,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tpeakLevel: amp\r\n\t\t).kr(gate: gate);\r\n\r\n\t\t// C:M = freq:modFreq, thus modFreq = freq * B/A\r\n\t\t// When C:M is a simple integer ratio, FM generates harmonic spectra\r\n\t\t// When C:M is NOT a simple integer ratio, FM generates inharmonic spectra\r\n\t\tmodFreq = freq * cmRatio.reciprocal;\r\n\r\n\t\t// Using Modulation Index to calculate freqDev\r\n\t\t// from formula index = freqDev/modfreq:\r\n\t\tfreqDev = modIndex * modFreq;\r\n\r\n\t\tmodulator = SinOsc.ar(freq: modFreq, mul: freqDev);\r\n\t\tcarrier = SinOsc.ar(freq: freq + modulator);\r\n\t\tsnd = carrier * env;\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"organTonewheel0\", {\r\n\r\n\t\targ\r\n\t\t// Standard Values\r\n\t\tout = 0, freq = 440, amp = 0.7, att = 0.001, rel = 0.01, pan = 0, curve = -4, gate = 1,\r\n\t\t//organ voices (drawbars) amplitudes\r\n\t\tbass = 1, quint = 1, fundamental = 1, oct = 1, nazard = 1, blockFlute = 1, tierce = 1, larigot = 1, sifflute = 1,\r\n\t\t//vibrato arguments\r\n\t\tvrate = 3, vdepth = 0.008;\r\n\r\n\t\tvar snd, env, vibrato;\r\n\r\n\t\tvibrato = SinOsc.kr(vrate).range((1 / (1 + vdepth)), (1 + vdepth));\r\n\r\n\t\tenv = Env.asr(attackTime: att, sustainLevel: amp, releaseTime: rel, curve: curve).ar(gate: gate);\r\n\r\n\t\tvibrato = DynKlang.ar(\r\n\t\t\tspecificationsArrayRef: Ref.new([\r\n\t\t\t\t[1/12,  1/7, 1, 12, 19, 24, 28, 31, 36].midiratio,\r\n\t\t\t\t[bass, quint, fundamental, oct, nazard, blockFlute, tierce, larigot, sifflute].normalizeSum\r\n\t\t\t]),\r\n\t\t\tfreqscale: vibrato * freq);\r\n\r\n\t\tsnd = vibrato * env;\r\n\r\n\t\tsnd = FreeVerb.ar(snd, 0.5, 0.3, 0.9);\r\n\t\tsnd = BPF.ar(snd, 200, 8);\r\n\r\n\t\tOut.ar(out, Pan2.ar(snd, pan));\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\r\n\t},\r\n\tmetadata: (\r\n\t\tcredit: \"Zé Craum\",\r\n\t\tcategory: \\organ,\r\n\t\ttags: [\\pitched]\r\n\t)\r\n\t).add;\r\n\r\n\tSynthDef(\\strings, {\r\n\t\targ\r\n\t\t//Standard Definitions\r\n\t\tout = 0, freq = 440, amp = 1, gate = 1, pan = 0, freqLag = 0.2, att = 0.001, dec = 0.1, sus = 0.75, rel = 0.3,\r\n\t\t//Other Controls (mix ranges from 0 - 1)\r\n\t\trq = 0.001, combHarmonic = 4, sawHarmonic = 1.5, mix = 0.33;\r\n\r\n\t\tvar env, snd, combFreq;\r\n\r\n\t\tcombFreq = 1 / (Lag.kr(in: freq, lagTime: freqLag / 8) * combHarmonic);\r\n\r\n\t\tenv = Env.adsr(att, dec, sus, rel, amp).kr(gate: gate, doneAction: 2);\r\n\r\n\t\tsnd = SyncSaw.ar(syncFreq: freq * WhiteNoise.kr().range(1/1, 1), sawFreq: freq * sawHarmonic, mul: 8);\r\n\t\tsnd = (snd * (1 - mix)) + PinkNoise.ar(180 * mix);\r\n\t\tsnd = CombL.ar(snd, combFreq, combFreq, -1); //Try positive 1 for decay time as well.\r\n\t\tsnd = Resonz.ar(snd, Lag.kr(in: freq, lagTime: freqLag), rq).abs;\r\n\t\tsnd = snd * env;\r\n\t\tsnd = BPF.ar(snd, SinOsc.ar(8).range(400, 1000), 2);\r\n\t\tsnd = Limiter.ar(snd, amp);\r\n\r\n\t\tOut.ar(out, Pan2.ar(snd, pan));\r\n\t},\r\n\tmetadata: (\r\n\t\tcredit: \"Original from Julian Rohrhuber, 2007\",\r\n\t\tcategory: \\strings,\r\n\t\ttags: [\\pitched]\r\n\t)\r\n\t).add;\r\n\r\n\tSynthDef(\"myBellOriginal\", { arg freq = 440, amp = 0.1, att = 0.01, rel = 1, pan = 0;\r\n\t\tvar snd, env, spectrum, partials, amplitudes;\r\n\r\n\t\tspectrum = [\r\n\t\t\t[0.5, 0.4, Env.perc(att, rel*1.5, amp, -4.0).kr],\r\n\t\t\t[1, 0.5, Env.perc(att, rel, amp, -4.0).kr],\r\n\t\t\t[1.183, 0.3, Env.perc(att, rel*0.9, amp, -4.0).kr],\r\n\t\t\t[1.506, 0.3, Env.perc(att, rel*0.8, amp, -4.0).kr],\r\n\t\t\t[2, 0.2, Env.perc(att, rel*0.7, amp, -4.0).kr],\r\n\t\t\t[2.514, 0.2, Env.perc(att, rel*0.6, amp, -4.0).kr],\r\n\t\t\t[2.662, 0.2, Env.perc(att, rel*0.5, amp, -4.0).kr],\r\n\t\t\t[3.011, 0.1, Env.perc(att, rel*0.4, amp, -4.0).kr],\r\n\t\t\t[4.166, 0.1, Env.perc(att, rel*0.3, amp, -4.0).kr],\r\n\t\t\t[5.433, 0.05, Env.perc(att, rel*0.2, amp, -4.0).kr],\r\n\t\t\t[6.796, 0.01, Env.perc(att, rel*0.1, amp, -4.0).kr],\r\n\t\t\t[8.215, 0.01, Env.perc(att, rel*0.05, amp, -4.0).kr]\r\n\t\t];\r\n\r\n\t\tpartials = spectrum.flop[0];\r\n\t\tamplitudes = spectrum.flop[1];\r\n\r\n\t\tenv = spectrum.flop[2];\r\n\r\n\t\tsnd = SinOsc.ar(freq: freq * partials, mul: amplitudes);\r\n\t\tsnd = snd * env;\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Limiter.ar(snd);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t\tDetectSilence.ar(in: snd, amp: 0.001, time: 0.1, doneAction: 2);\r\n\r\n\t}).add;\r\n\r\n\tSynthDef(\"Wobbly Organ\", { arg freq = 440, amp = 0.1, att = 0.05, rel = 0.01, pan = 0, vibratoSpeed = 4, vibratoAmount = 0.125, filterVel = 8;\r\n\t\tvar snd, env, harmonics, amplitudes, midinote, vibrato;\r\n\t\tenv = Env.perc(\r\n\t\t\tattackTime: att,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tlevel: amp\r\n\t\t).kr(doneAction: 2);\r\n\r\n\t\tharmonics = [1, 2, 4, 6, 8];\r\n\t\tamplitudes = [-9, -11, -11, -25, -14].dbamp;\r\n\r\n\t\tvibrato = SinOsc.kr(vibratoSpeed).range(vibratoAmount.neg, vibratoAmount);\r\n\t\tmidinote = (freq * harmonics).cpsmidi + vibrato;\r\n\r\n\t\tsnd = SinOsc.ar(freq: midinote.midicps, mul: amplitudes);\r\n\r\n\t\tsnd = LPF.ar(\r\n\t\t\tin: snd,\r\n\t\t\tfreq: SinOsc.kr(freq: filterVel*2).range(freq*3/5, freq*5/3)+400\r\n\t\t);\r\n\r\n\t\tsnd = FreeVerb.ar(\r\n\t\t\tin: snd,\r\n\t\t\tmix: 0.3,\r\n\t\t\troom: 0.9,\r\n\t\t\tdamp: 0.6\r\n\t\t);\r\n\r\n\t\tsnd = Mix.ar(snd) * env;\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tsnd = Limiter.ar(snd);\r\n\t\tOut.ar(0, snd);\r\n\t}).add;\r\n\r\n\tSynthDef( \"odd1\", { arg freq = 440, amp = 0.6, att = 0.01, rel = 1, pan = 0, gate = 1, oddFactor;\r\n\t\tvar snd, env;\r\n\r\n\t\tenv = Env.asr(att, amp, rel).kr(gate: gate, doneAction: 2);\r\n\r\n\t\tsnd = Saw.ar([freq, freq+3]);\r\n\r\n\t\tsnd = snd * env;\r\n\r\n\t\tsnd = BPF.ar(snd, freq, 8, 2);\r\n\r\n\t\tsnd = FreeVerb.ar(snd, 0.7, 0.3, 0.9);\r\n\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Limiter.ar(snd, 1);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t}).add;\r\n\r\n\tSynthDef( \"odd2\", { arg freq = 440, amp = 0.6, att = 0.01, rel = 1, pan = 0, gate = 1, oddFactor;\r\n\t\tvar snd, env;\r\n\r\n\t\tenv = Env.asr(att, amp, rel).kr(gate: gate, doneAction: 2);\r\n\r\n\t\tsnd = Pulse.ar([freq, freq+(oddFactor/2), (freq*2)+oddFactor]);\r\n\r\n\t\tsnd = snd * env;\r\n\r\n\t\tsnd = BPF.ar(snd, freq, 8, 1.5);\r\n\r\n\t\tsnd = FreeVerb.ar(snd, 0.7, 0.3, 0.9);\r\n\r\n\t\t//snd = snd * In.kr(56);\r\n\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Limiter.ar(snd, 1);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t}).add;\r\n\r\n\tSynthDef(\\organTonewheel2, {\r\n\t\targ\r\n\t\t//Standard Values\r\n\t\tout = 0, pan = 0, freq = 440, amp = 0.45, att = 0.001, rel = 0.1, gate = 1,\r\n\t\t//Other controls (blend goes from 0 to 1)\r\n\t\tvibRate = 8.0, vibHarmonic = 1.027, filterHarmonic = 8.04, rq = 1, blend = 0.83;\r\n\r\n\t\tvar snd, env, vibrato;\r\n\r\n\t\tenv = Env.asr(attackTime: att, sustainLevel: amp, releaseTime: rel).kr(gate: gate, doneAction: 2);\r\n\r\n\t\tvibrato = SinOsc.ar(freq: vibRate).range(freq, freq * vibHarmonic);\r\n\r\n\t\tsnd = LFPulse.ar(freq: freq, width: 0.5, mul: 1 - blend) + LFPulse.ar(freq: freq + vibrato, width: 0.18, mul: blend);\r\n\r\n\t\tsnd = RLPF.ar(in: snd, freq: filterHarmonic * freq, rq: rq, mul: env);\r\n\r\n\t\tsnd = BPF.ar(snd, 400, 1).clip;\r\n\r\n\t\tsnd = LeakDC.ar(snd);\r\n\r\n\t\tOut.ar(out, Pan2.ar(snd, pan));\r\n\r\n\t},\r\n\tmetadata: (\r\n\t\tcredit: \"Zé Craum\",\r\n\t\tcategory: \\organ,\r\n\t\ttags: [\\pitched]\r\n\t)\r\n\t).add;\r\n\r\n\tSynthDef(\"FM-perc\", {arg freq = 440, cmRatio = 3, modIndex = 0, amp = 0.01, att = 0.01, rel = 0.1, pan = 0, dur;\r\n\t\tvar carrier, modulator, modFreq, freqDev, snd, env;\r\n\t\tenv = Env.perc(\r\n\t\t\tattackTime: att,\r\n\t\t\treleaseTime: rel,\r\n\t\t\tlevel: amp\r\n\t\t).kr;\r\n\r\n\t\t// C:M = freq:modFreq, thus modFreq = freq * B/A\r\n\t\t// When C:M is a simple integer ratio, FM generates harmonic spectra\r\n\t\t// When C:M is NOT a simple integer ratio, FM generates inharmonic spectra\r\n\t\tmodFreq = freq * cmRatio.reciprocal;\r\n\r\n\t\t// Using Modulation Index to calculate freqDev\r\n\t\t// from formula index = freqDev/modfreq:\r\n\t\tfreqDev = modIndex * modFreq;\r\n\r\n\t\tmodulator = SinOsc.ar(freq: modFreq, mul: freqDev);\r\n\t\tcarrier = SinOsc.ar(freq: freq + modulator);\r\n\t\tsnd = carrier * env;\r\n\t\tsnd = LPF.ar(\r\n\t\t\tin: snd,\r\n\t\t\tfreq: SinOsc.ar(2, 1).range(XLine.ar(1600, 1800, dur), XLine.ar(2000, 2200, dur))// * XLine.ar(2, 1, dur)\r\n\t\t);\r\n\t\t/*snd = CombC.ar(\r\n\t\tin: snd,\r\n\t\tmaxdelaytime: 1,\r\n\t\tdelaytime: 0.5,\r\n\t\tdecaytime: 3\r\n\t\t);*/\r\n\t\tsnd = snd.distort.distort;\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\tSynthDef(\"raygun\", {arg amp = 0.5, sinfreq = 400, glissf = 0.0001, att = 0.01, rel = 0.9, pan = 0;\r\n\t\tvar gliss = XLine.kr(sinfreq, sinfreq*glissf, rel);\r\n\t\tvar snd = SinOsc.ar(gliss).clip.clip;\r\n\t\tvar env = EnvGen.kr(Env.perc(att, rel), doneAction: 2);\r\n\t\tsnd = snd * env * amp;\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\t}).add;\r\n\r\n\tSynthDef(\"uglylead\", { arg amp = 0.5, freq = 330, att = 0.1, dec = 0.1, rel = 0.1, pan = 0, gate = 1, detune = 0.05;\r\n\t\tvar snd1, snd2, snd, env;\r\n\r\n\t\tenv = Env.adsr(att, dec, amp*0.8, rel, amp).kr(gate: gate);\r\n\r\n\t\tsnd1 = Saw.ar(freq);\r\n\t\tsnd2 = Pulse.ar(freq*SinOsc.ar(4).range(1-detune, 1+detune), 0.4);\r\n\t\tsnd = snd1 + snd2;\r\n\r\n\t\tsnd = snd*env;\r\n\r\n\t\tsnd = BPF.ar(snd, SinOsc.ar(64).range(400, 650), 4);\r\n\r\n\t\tsnd = LPF.ar(snd, 3000);\r\n\r\n\t\tsnd = Mix.ar(snd);\r\n\t\tsnd = Pan2.ar(snd, pan);\r\n\t\tOut.ar(0, snd);\r\n\r\n\t\tDetectSilence.ar(snd, doneAction: 2);\r\n\t}).add;\r\n\r\n\t//=====================\r\n\t// Pbinds\r\n\t//=====================\r\n\r\n\t~chordsA = Pbind(\r\n\t\t\\instrument, \"pulsey\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t[60, 63, 67, 70, 72], [60, 63, 67, 70, 72], [60, 63, 67, 70, 72], [60, 63, 67, 70, 72], [60, 63, 65, 67, 70], [60, 63, 65, 67, 70], [60, 63, 65, 67, 70], [60, 63, 65, 67, 70]\r\n\t\t], inf),\r\n\t\t\\dur, Pseq([2, 2, 2, 1, 1], inf)*0.5,\r\n\t\t\\amp, 0.225,\r\n\t\t\\att, 0.15,\r\n\t\t\\legato, 0.6,\r\n\t\t\\rel, Pkey(\\dur) - Pkey(\\att),\r\n\t\t\\pan, Pseq([-0.25, 0.25], inf),\r\n\t\t\\strum, 0.4\r\n\t).play.stop;\r\n\r\n\t~bassA = Pbind(\r\n\t\t\\instrument, \"bass\",\r\n\t\t\\scale, Scale.aeolian,\r\n\t\t\\midinote, Pseq([60, 56, 60, 56, 60, 56, 53, 62], inf),\r\n\t\t\\dur, 4,\r\n\t\t\\rel, 1,\r\n\t\t\\ctranspose, [-36, -24, -12],\r\n\t\t\\amp, [0.15, 0.45, 0.25],\r\n\t\t\\pan, -0.2,\r\n\t\t\\legato, 0.8\r\n\t).play.stop;\r\n\r\n\t~bassD = Pbind(\r\n\t\t\\instrument, \"bass\",\r\n\t\t\\scale, Scale.aeolian,\r\n\t\t\\midinote, 60,\r\n\t\t\\dur, 1,\r\n\t\t\\rel, 3,\r\n\t\t\\ctranspose, [-36, -24, -12],\r\n\t\t\\amp, [0.16, 0.46, 0.26],\r\n\t\t\\pan, -0.2,\r\n\t\t\\legato, 0.8\r\n\t).play.stop;\r\n\r\n\t~harmonyA = Pbind(\r\n\t\t\\instrument, \"harmony\",\r\n\t\t\\scale, Scale.aeolian,\r\n\t\t\\midinote, Pseq([63, 75, 60, 72, 63, 75, 60, 72, 63, 75, 60, 72, 56, 68, 65, 77], inf),\r\n\t\t\\dur, 2,\r\n\t\t\\rel, 0.5,\r\n\t\t\\ctranspose, 12,\r\n\t\t\\amp, 0.325,\r\n\t\t\\pan, 0.25\r\n\t).play.stop;\r\n\r\n\t~harmonyD = Pbind(\r\n\t\t\\instrument, \"harmony\",\r\n\t\t\\scale, Scale.aeolian,\r\n\t\t\\midinote, 63,\r\n\t\t\\dur, 2,\r\n\t\t\\rel, 0.5,\r\n\t\t\\ctranspose, 12,\r\n\t\t\\amp, 0.325,\r\n\t\t\\pan, 0.25\r\n\t).play.stop;\r\n\r\n\t~hihatA = Pbind(\r\n\t\t\\instrument, \"hihat\",\r\n\t\t\\dur, Pseq([0.5, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25], inf)*0.4,\r\n\t\t\\rel, Pseq([0.1, 0.4, 0.1, 0.1, 0.1, 0.4, 0.1], inf),\r\n\t\t\\pan, Pseq([-0.5, 0.5, 0, -0.5, 0, 0.5, 0], inf),\r\n\t\t\\amp, 0.2,\r\n\t\t\\ffreq, Pwhite(11000, 15000)\r\n\t).play.stop;\r\n\r\n\t~hihatD = Pbind(\r\n\t\t\\instrument, \"hihat\",\r\n\t\t\\dur, Pseq([0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.125, 0.125, 0.25, 0.25, 0.25], inf)*0.4,\r\n\t\t\\rel, Pseq([0.1, 0.1, 0.4, 0.1, 0.1, 0.1, 0.1, 0.1, 0.4, 0.1, 0.1], inf),\r\n\t\t\\pan, Pseq([-0.5, 0.5], inf),\r\n\t\t\\amp, 0.175,\r\n\t\t\\ffreq, Pwhite(11000, 15000)\r\n\t).play.stop;\r\n\r\n\t~kickA = Pbind(\r\n\t\t\\instrument, \"sosKick\",\r\n\t\t\\modFreq, [5, 6],\r\n\t\t\\modIndex, Pwhite(0.1, 8.5),\r\n\t\t\\beaterHarmonic, Pwhite(1.5, 8),\r\n\t\t\\dur, 0.4,//Pseq([1, 1, 0.25, 0.75, 1], inf),\r\n\t\t\\amp, 0.775,\r\n\t\t\\pan, -0.25\r\n\t).play.stop;\r\n\r\n\t~kickD = Pbind(\r\n\t\t\\instrument, \"sosKick\",\r\n\t\t\\modFreq, [5, 6],\r\n\t\t\\modIndex, Pwhite(0.1, 8.5),\r\n\t\t\\beaterHarmonic, Pwhite(1.5, 8),\r\n\t\t\\dur, 0.4,//Pseq([1, 1, 0.25, 0.75, 1], inf),\r\n\t\t\\amp, 0.775,\r\n\t\t\\pan, -0.25\r\n\t).play.stop;\r\n\r\n\t~snareA = Pbind(\r\n\t\t\\instrument, \"snare\",\r\n\t\t\\dur, Pseq([Rest(1.5), 1.5, 1], inf)*0.4,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, Pseq([\\rest, 0.15, 0.4], inf),\r\n\t\t\\freq, Pseq([\\rest, 300, 100], inf),\r\n\t\t\\ffreq, [1500, 2000],\r\n\t\t\\amp, 0.375,\r\n\t\t\\pan, 0.25,\r\n\t).play.stop;\r\n\r\n\t~snareD = Pbind(\r\n\t\t\\instrument, \"snare\",\r\n\t\t\\dur, Pseq([Rest(0.75), 0.75, 0.5, 1, Rest(1), 1], inf)*0.4,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, Pseq([\\rest, 0.15,0.15, 0.4, \\rest, 0.4], inf),\r\n\t\t\\freq, Pseq([\\rest, 300, 300, 100, \\rest, 100], inf),\r\n\t\t\\ffreq, [1500, 2000],\r\n\t\t\\amp, 0.375,\r\n\t\t\\pan, 0.25,\r\n\t).play.stop;\r\n\r\n\t~snareD2 = Pbind(\r\n\t\t\\instrument, \"snare\",\r\n\t\t\\dur, Pseq([Rest(0.75), 0.75, 0.5, Rest(1.5), 0.25, 0.25, 0.5, 0.5, Rest(0.75), 0.75, 0.5, Rest(1), 1/3, 1/3, 1/3, 1/3, 1/3, 1/3])*0.4,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, Pseq([\\rest, 0.15,0.15, \\rest, 0.15, 0.15, 0.15, 0.15, \\rest, 0.15,0.15, \\rest, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15]),\r\n\t\t\\freq, Pseq([\\rest, 300, 300, \\rest, 300, 300, 300, 300, \\rest, 300, 300, \\rest, 300, 300, 300, 300, 300, 300]),\r\n\t\t\\ffreq, [1500, 2000],\r\n\t\t\\amp, 0.375,\r\n\t\t\\pan, 0.25,\r\n\t).play.stop;\r\n\r\n\t~bassB = Pbind(\r\n\t\t\\instrument, \"sawverb\",\r\n\t\t\\scale, Scale.aeolian,\r\n\t\t\\degree, Pseq([\r\n\t\t\t0, 0, 6, 7, 0, 0, 2, 3, 4, 5\r\n\t\t], inf),\r\n\t\t\\ctranspose, [-12, -24, -36],\r\n\t\t\\dur, Pseq([0.75, 0.25, 0.25, 0.75, 0.75, 0.25, 0.25, 0.25, 0.25, 0.25], inf),\r\n\t\t\\amp, [0.8, 0.3, 0.1]*1.4,\r\n\t\t\\att, Pkey(\\dur)*0.25,\r\n\t\t\\legato, 0.4,\r\n\t\t\\beatFactor, 0.5,\r\n\t).play.stop;\r\n\r\n\t~guitarB = Pbind(\r\n\t\t\\instrument, \"plucking\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t[60, 63, 67], [60, 63, 67], [60, 63, 67], [60, 63, 67], [60, 63, 67], [60, 63, 67], [60, 63, 68], [60, 63, 68],\r\n\t\t], inf),\r\n\t\t\\dur, 0.25,\r\n\t\t\\decay, 5,\r\n\t\t\\mix, 0.6,\r\n\t\t\\ctranspose, 0,\r\n\t\t\\dampen, 0.6,\r\n\t\t\\strum, Pwhite(0.01, 0.02),\r\n\t\t\\amp, Pseq([0.4, 0.4, 0.4, 0.8, 0.4, 0.4, 0.6, 0.8], inf)*1.2,\r\n\t\t\\pan, Pseq([-0.25, 0.25], inf)\r\n\t).play.stop;\r\n\r\n\t~hihatB = Pbind(\r\n\t\t\\instrument, \"hihat\",\r\n\t\t\\dur, Pseq([0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.125, 0.125, 0.25], inf),\r\n\t\t\\rel, Pseq([0.45, 0.12, 0.11, 0.42, 0.13, 0.16, 0.14, 0.15, 0.35], inf),\r\n\t\t\\pan, Pseq([-0.5, 0.5, 0, -0.5, 0, 0.5, 0], inf),\r\n\t\t\\amp, Pwhite(0.225, 0.325),\r\n\t\t\\ffreq, Pwhite(11000, 15000)\r\n\t).play.stop;\r\n\r\n\t~kickB = Pbind(\r\n\t\t\\instrument, \"sosKick\",\r\n\t\t\\modFreq, [5, 6, 7],//Pwhite(5, 8),\r\n\t\t\\modIndex, Pwhite(4, 8.5),\r\n\t\t\\beaterHarmonic, 2,//Pwhite(1.5, 4),\r\n\t\t\\dur, Pseq([0.75, 1.25], inf),//Pseq([1, 1, 0.25, 0.75, 1], inf),\r\n\t\t\\amp, 0.6,\r\n\t\t\\pan, -0.5\r\n\t).play.stop;\r\n\r\n\t~snareB = Pbind(\r\n\t\t\\instrument, \"snare\",\r\n\t\t\\dur, Pseq([Rest(1), 1], inf),\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.2,\r\n\t\t\\freq, 200,\r\n\t\t\\ffreq, [2000, 2200],\r\n\t\t\\amp, 0.5,\r\n\t\t\\pan, 0.5,\r\n\t).play.stop;\r\n\r\n\t~melodyB = Pbind(\r\n\t\t\\instrument, \"pulsey2\",\r\n\t\t\\midinote, Pseq([68, 67, 63, 60, 55, \\rest], 8),\r\n\t\t\\dur, Pseq([0.75, 0.75, 0.5, 1, 1, Rest(4)], 8),\r\n\t\t\\amp, 0.3*1.4,\r\n\t\t\\att, 0.05,\r\n\t\t\\legato, 0.6,\r\n\t\t\\rel, Pkey(\\dur) - Pkey(\\att),\r\n\t\t\\pan, 0.5, //Pseq([1, 0.5, 0, -0.5, -1, \\rest], inf),\r\n\t\t\\ctranspose, 0\r\n\t).play.stop;\r\n\r\n\t~bellB = Pbind(\r\n\t\t\\instrument, \"myBell\",\r\n\t\t\\dur, Pseq([Rest(4), 4], inf),\r\n\t\t\\midinote, Pseq([\\rest,[72, 75]],  inf),\r\n\t\t\\rel, 3,\r\n\t\t\\ctranspose, 12,\r\n\t\t\\amp, 0.2,\r\n\t\t\\pan, -1/3\r\n\t).play.stop;\r\n\r\n\t~pianoB = Pbind(\r\n\t\t\\instrument, \"cheapPiano1\",\r\n\t\t\\ctranspose, -12,\r\n\t\t\\legato, 0.2,\r\n\t\t\\dur, Pseq([0.25, 0.25, 0.25, 0.5, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 1.25], inf),\r\n\t\t\\midinote, Pseq([60, 56, 58, 60, 60, 63, 62, 60, 56, 58, 60], inf),\r\n\t\t\\amp, 0.25,\r\n\t\t\\pan, Pwhite(-0.1, 0.1)\r\n\t).play.stop;\r\n\r\n\t~marimbaB = Pbind(\r\n\t\t\\instrument, \"marimba1\",\r\n\t\t\\midinote, Pseq([\\rest, 63, 62, 63, 62, 60, 63, 61, 63, 61, 60, 63, 62, 63, 62, 60, 63, 61, 63, 61, 60], inf),\r\n\t\t\\dur, Pseq([Rest(4), 0.125, 0.125, 0.125, 0.125, 0.5, 0.125, 0.125, 0.125, 0.125, 0.5, 0.125, 0.125, 0.125, 0.125, 0.5, 0.125, 0.125, 0.125, 0.125, 0.5], inf),\r\n\t\t\\amp, 1.5,\r\n\t\t\\ctranspose, Pseq([\\rest, 24, 24, 24, 24, 24, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, -12, -12, -12, -12, -12], inf),\r\n\t\t\\pan, Pseq([\\rest, 1, 1, 1, 1, 1, 1/3, 1/3, 1/3, 1/3, 1/3, -1/3, -1/3, -1/3, -1/3, -1/3, -1, -1, -1, -1, -1], inf)*0.5\r\n\t).play.stop;\r\n\r\n\t~secondMelodyB1 = Pbind(\r\n\t\t\\instrument, \"odd1\",\r\n\t\t\\midinote, Pseq([60, 61, 60, 58, 60, 58, 56, 53, 55], inf)+12,\r\n\t\t\\dur, Pseq([0.75, 0.25, 0.5, 0.5, 0.75, 0.25, 0.5, 0.5, 4], inf),\r\n\t\t\\amp, 0.23,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.6,\r\n\t\t\\legato, 0.8,\r\n\t\t\\pan, -0.3\r\n\t).play.stop;\r\n\r\n\t~secondMelodyB2 = Pbind(\r\n\t\t\\instrument, \"odd2\",\r\n\t\t\\midinote, Pseq([60, 61, 60, 58, 60, 58, 56, 53, 55])+12,\r\n\t\t\\dur, Pseq([0.75, 0.25, 0.5, 0.5, 0.75, 0.25, 0.5, 0.5, 4]),\r\n\t\t\\amp, 0.23,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.6,\r\n\t\t\\legato, 0.8,\r\n\t\t\\oddFactor, 4,\r\n\t\t\\pan, -0.3\r\n\t).play.stop;\r\n\r\n\t~secondMelodyB3 = Pbind(\r\n\t\t\\instrument, \"odd2\",\r\n\t\t\\midinote, Pseq([60, 61, 60, 58, 60, 58, 56, 54, 55])+12,\r\n\t\t\\dur, Pseq([0.75, 0.25, 0.5, 0.5, 0.75, 0.25, 0.5, 0.5, 4]),\r\n\t\t\\amp, 0.22,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.6,\r\n\t\t\\legato, 0.8,\r\n\t\t\\oddFactor, 10,\r\n\t\t\\pan, -0.3\r\n\t).play.stop;\r\n\r\n\t~secondMelodyB4 = Pbind(\r\n\t\t\\instrument, \"odd2\",\r\n\t\t\\midinote, Pseq([60, 61, 60, 58, 60, 61, 57, 58, 54, 55])+12,\r\n\t\t\\dur, Pseq([1/3, 1/3, 1/3, 0.5, 0.5, 0.75, 0.25, 0.5, 0.5, 4]),\r\n\t\t\\amp, 0.21,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.6,\r\n\t\t\\legato, 0.8,\r\n\t\t\\oddFactor, 14,\r\n\t\t\\pan, -0.3\r\n\t).play.stop;\r\n\r\n\t~secondMelodyB5 = Pbind(\r\n\t\t\\instrument, \"odd2\",\r\n\t\t\\midinote, Pseq([60, 61, 60, 59, 60, 61, 57, 58, 54, 55])+12,\r\n\t\t\\dur, Pseq([1/3, 1/3, 1/3, 0.5, 0.5, 0.75, 0.25, 0.5, 0.5, 4]),\r\n\t\t\\amp, 0.20,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.6,\r\n\t\t\\legato, 0.8,\r\n\t\t\\oddFactor, 20,\r\n\t\t\\pan, -0.3\r\n\t).play.stop;\r\n\r\n\t~hit = Pbind(\r\n\t\t\\instrument, \"organTonewheel2\",\r\n\t\t\\midinote, Pseq([\\rest, [63, 67, 72], [63, 67, 72], [63, 67, 70], \\rest], inf),\r\n\t\t\\amp, 0.75,\r\n\t\t\\dur, Pseq([Rest(3.25), 0.25, 0.25, 0.25, Rest(4)], inf),\r\n\t\t\\ctranspose, 12,\r\n\t\t\\strum, 0.01,\r\n\t\t\\dampen, 0.5,\r\n\t\t\\pan, 0.75\r\n\t).play.stop;\r\n\r\n\t~bTocTransition = Pbind(\r\n\t\t\\instrument, \"melodyFM\",\r\n\t\t\\midinote, Pseries(84, -1, 32),\r\n\t\t\\dur, 0.125,\r\n\t\t\\ctranspose, 12,\r\n\t\t\\cmRatio, 2,\r\n\t\t\\modIndex, 10,\r\n\t\t\\amp, 0.1,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 2,\r\n\t\t\\pan, 0\r\n\t).play.stop;\r\n\r\n\t~bassC = Pbind(\r\n\t\t\\instrument, \"FM2\",\r\n\t\t\\dur, Pseq([0.5, 0.5, 0.5, 0.25, 0.25, 0.5, 0.5, 0.25, 0.25, 0.25, 0.25], inf),\r\n\t\t\\midinote, Pseq([56, 56, 56, 60, 61, 56, 56, 63, 65, 60, 61], inf),\r\n\t\t\\dec, 0.1,\r\n\t\t\\sus, 0.6,\r\n\t\t\\legato, Pseq([0.4, 0.4, 0.4, 0.9, 0.9, 0.4, 0.4, 0.9, 0.9, 0.9, 0.9], inf),\r\n\t\t\\cmRatio, 2, // try integers vs non-integers\r\n\t\t\\modIndex, 6, // increasing modulation\r\n\t\t\\amp, 0.675,\r\n\t\t\\ctranspose, -12,\r\n\t\t\\pan, -0.25\r\n\t).play.stop;\r\n\r\n\t~bassC2 = Pbind(\r\n\t\t\\instrument, \"FM2\",\r\n\t\t\\dur, 0.5,\r\n\t\t\\midinote, Pseq([56, 56, 56, 56, 56, 56, 56, 56, 60, 60, 60, 60, 60, 60, 60, 60], inf),\r\n\t\t\\dec, 0.1,\r\n\t\t\\sus, 0.6,\r\n\t\t\\legato, 0.4,\r\n\t\t\\cmRatio, 2, // try integers vs non-integers\r\n\t\t\\modIndex, 6, // increasing modulation\r\n\t\t\\amp, 0.675,\r\n\t\t\\ctranspose, -12,\r\n\t\t\\pan, -0.25\r\n\t).play.stop;\r\n\r\n\t~bassC3 = Pbind(\r\n\t\t\\instrument, \"FM2\",\r\n\t\t\\dur, 0.5,\r\n\t\t\\midinote, Pseq([\r\n\t\t\t60, 60, 60, 60, 60, 60, 60, 60,\r\n\t\t\t56, 56, 56, 56, 56, 56, 56, 56,\r\n\t\t], inf),\r\n\t\t\\dec, 0.1,\r\n\t\t\\sus, 0.6,\r\n\t\t\\legato, 0.4,\r\n\t\t\\cmRatio, 2, // try integers vs non-integers\r\n\t\t\\modIndex, 6, // increasing modulation\r\n\t\t\\amp, 0.675,\r\n\t\t\\ctranspose, -12,\r\n\t\t\\pan, -0.25\r\n\t).play.stop;\r\n\r\n\t~organC1 = Pbind(\r\n\t\t\\instrument, \"organTonewheel0\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t63, 61, 60,\r\n\t\t\t61, 60, 58,\r\n\t\t\t60, 58, 56,\r\n\t\t\t51], inf),\r\n\t\t\\dur, Pseq([1.75, 0.125, 0.125, 1.75, 0.125, 0.125, 1.5, 0.25, 0.25, 2], inf),\r\n\t\t\\legato, 1,\r\n\t\t\\amp, 0.575,\r\n\t\t\\pan, 0.25\r\n\t).play.stop;\r\n\r\n\t~organC2 = Pbind(\r\n\t\t\\instrument, \"organTonewheel0\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t49, 51, 53, 51, 49, 51, 55, 56, 49, 51, 53, 51, 49, 48, 46\r\n\t\t], inf),\r\n\t\t\\dur, Pseq([1, 0.5, 0.5, 2, 1, 0.5, 0.5, 2, 1, 0.5, 0.5, 1, 0.5, 0.5, 4], inf),\r\n\t\t\\legato, 1,\r\n\t\t\\amp, 0.575,\r\n\t\t\\pan, 0.25\r\n\t).play.stop;\r\n\r\n\t~otherOrganC1 = Pbind(\r\n\t\t\\instrument, \"Wobbly Organ\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t[56, 60, 63],\r\n\t\t\t68,\r\n\t\t\t[56, 61, 65],\r\n\t\t\t68,\r\n\t\t\t[56, 60, 63],\r\n\t\t\t68,\r\n\t\t\t[56, 60, 63],\r\n\t\t\t68\r\n\t\t], inf),\r\n\t\t\\dur, 1,\r\n\t\t\\att, Pkey(\\dur)*0.5,\r\n\t\t\\rel, Pkey(\\dur)*0.5,\r\n\t\t\\amp, Pseq([0.5, 0.4], inf),\r\n\t\t\\ctranspose, 0,\r\n\t\t\\filterVel, 8,\r\n\t\t\\pan, Pseq([-0.5, 0.5], inf)\r\n\t).play.stop;\r\n\r\n\t~otherOrganC2 = Pbind(\r\n\t\t\\instrument, \"Wobbly Organ\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t[56, 61, 65],\r\n\t\t\t68,\r\n\t\t\t[56, 60, 63],\r\n\t\t\t68,\r\n\t\t\t[56, 61, 65],\r\n\t\t\t68,\r\n\t\t\t[56, 60, 63],\r\n\t\t\t68,\r\n\t\t\t[56, 61, 65],\r\n\t\t\t68,\r\n\t\t\t[56, 60, 63],\r\n\t\t\t68,\r\n\t\t\t[55, 58, 63],\r\n\t\t\t70,\r\n\t\t\t[55, 58, 63],\r\n\t\t\t70,\r\n\t\t], inf),\r\n\t\t\\dur, 1,\r\n\t\t\\att, Pkey(\\dur)*0.5,\r\n\t\t\\rel, Pkey(\\dur)*0.5,\r\n\t\t\\amp, Pseq([0.5, 0.4], inf),\r\n\t\t\\ctranspose, 0,\r\n\t\t\\filterVel, 8,\r\n\t\t\\pan, Pseq([-0.5, 0.5], inf)\r\n\t).play.stop;\r\n\r\n\t~snareC = Pbind(\r\n\t\t\\instrument, \"snare\",\r\n\t\t\\dur, Pseq([0.75, 0.125, 0.125, 0.25, 0.25, 0.25, 0.25, 0.75, 0.125, 0.125, 1/6, 1/6, 1/6, 1/6, 1/6, 1/6], inf),\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 0.4,\r\n\t\t\\freq, 200,\r\n\t\t\\ffreq, 3000,\r\n\t\t\\amp, 0.2,\r\n\t\t\\pan, Pwhite(-0.2, 0.2),\r\n\t).play.stop;\r\n\r\n\t~stringsC = Pbind(\r\n\t\t\\instrument, \"strings\",\r\n\t\t\\ctranspose, -12,\r\n\t\t\\legato, 0.9,\r\n\t\t\\dur, 2,\r\n\t\t\\att, 0.1,\r\n\t\t\\rel, 0.6,\r\n\t\t\\midinote, Pseq([[60, 67, 70, 75], [60, 67, 70, 75], [53, 68, 72, 75], [53, 68, 72, 75]], inf),\r\n\t\t\\amp, 0.35,\r\n\t\t\\pan, [-1/4, -1/12, 1/12, 1/4]\r\n\t).play.stop;\r\n\r\n\t~bombsFire = Pbind(\r\n\t\t\\instrument, \"raygun\",\r\n\t\t\\dur, Pseq([0.25, 3.75], inf),\r\n\t\t\\amp, 0.5,\r\n\t\t\\pan, -0.5\r\n\t).play.stop;\r\n\r\n\t~bombsBlast = Pbind(\r\n\t\t\\instrument, \"FM-perc\",\r\n\t\t\\dur, Pseq([Rest(2), 1, 1], inf),\r\n\t\t\\freq, Pseq([\\rest, [1000, 1125, 1250, 1375, 1500, 1625, 1750], [1000, 1125, 1250, 1375, 1500, 1625, 1750]-176], inf),\r\n\t\t\\modIndex, Pseq([13.5, 20], inf),\r\n\t\t\\cmRatio, Pseq([10.37, 15.3], inf),\r\n\t\t\\amp, Pseq([\\rest, 0.4, 0.15], inf)*0.5,\r\n\t\t\\att, 0.01,\r\n\t\t\\rel, 1.5,\r\n\t\t\\pan, 0.5\r\n\t).play.stop;\r\n\r\n\t~bell = Pbind(\r\n\t\t\\instrument, \"myBellOriginal\",\r\n\t\t\\dur, Pseq([2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2]),\r\n\t\t\\midinote, Pseq([60], 15),\r\n\t\t\\rel, 3,\r\n\t\t\\amp, Pseq([0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.7, 0.7, 0.7])\r\n\t).play.stop;\r\n\r\n\t~synthD = Pbind(\r\n\t\t\\instrument, \"uglylead\",\r\n\t\t\\midinote, Pseq([\r\n\t\t\t60, 62, 63, 65, 67, 70, 72,\r\n\t\t\t68, 72, 68, 67, 63, 62, 58,\r\n\t\t\t60, 62, 63, 60, 62, 63, 64,\r\n\t\t\t65, 63, 62, 60, 56, 63, 62,\r\n\t\t\t60, 62, 63, 65, 67, 70, 72,\r\n\t\t\t68, 72, 68, 67, 63, 62, 58,\r\n\t\t\t60, 62, 63, 60, 62, 63, 64,\r\n\t\t\t65, 67, 65, 62, 58, 55, 58\r\n\t\t], inf),\r\n\t\t\\dur, Pseq([1.2, 0.8, 0.4, 0.4, 0.4, 0.4, 0.4], 16),\r\n\t\t\\ctranspose, 24,\r\n\t\t\\amp, 0.4,\r\n\t\t\\detune, 0.015,\r\n\t\t\\att, 0.2,\r\n\t\t\\dec, 0.3,\r\n\t\t\\pan, Pwhite(-1/2, 1/2)\r\n\t).play.stop;\r\n\r\n\t// ~bassA.reset.play(~bpm);\r\n\r\n\t//=====================\r\n\t// Score\r\n\t//=====================\r\n\r\n\t~bpm = TempoClock.new(60/60).permanent_(true);\r\n\r\n\t{\r\n\t\t// first section\r\n\t\tNdef(\\fade, { Out.kr(55, Line.kr(0, 1, 9)) }).play;\r\n\t\t1.wait;\r\n\t\t~chordsA.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~bassA.reset.play(~bpm);\r\n\t\t32.wait;\r\n\t\t~harmonyA.reset.play(~bpm);\r\n\t\t32.wait;\r\n\t\t~hihatA.reset.play(~bpm);\r\n\t\t~kickA.reset.play(~bpm);\r\n\t\t~snareA.reset.play(~bpm);\r\n\t\t32.wait;\r\n\t\t~bpm.tempo=64/60;\r\n\t\t16.wait;\r\n\t\t~bpm.tempo=68/60;\r\n\t\t8.wait;\r\n\t\t~bpm.tempo=70/60;\r\n\t\tNdef(\\fade, { Out.kr(55, Line.kr(1, 0, 7)) }).play;\r\n\t\t4.wait;\r\n\t\t// ~chordsA.stop;\r\n\t\t// Ndef(\\fade, { Out.kr(55, Line.kr(1, 0, 4)) }).play;\r\n\t\t4.wait;\r\n\t\t~bpm.tempo=72/60;\r\n\t\t~bassA.stop;\r\n\t\t~harmonyA.stop;\r\n\t\t~kickA.stop;\r\n\t\t~hihatA.stop;\r\n\t\t~snareA.stop;\r\n\t\t~chordsA.stop;\r\n\t\t//second section\r\n\t\t~bassB.reset.play(~bpm);\r\n\t\t8.wait;\r\n\t\t~guitarB.reset.play(~bpm);\r\n\t\t8.wait;\r\n\t\t~kickB.reset.play(~bpm);\r\n\t\t~hihatB.reset.play(~bpm);\r\n\t\t~snareB.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~melodyB.reset.play(~bpm);\r\n\t\t~bellB.reset.play(~bpm);\r\n\t\t~marimbaB.reset.play(~bpm);\r\n\t\t32.wait;\r\n\t\t~melodyB.stop;\r\n\t\t~bellB.stop;\r\n\t\t~marimbaB.stop;\r\n\t\t~bassB.stop;\r\n\t\t~snareB.stop;\r\n\t\t~kickB.stop;\r\n\t\t~pianoB.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~pianoB.stop;\r\n\t\t~bassB.reset.play(~bpm);\r\n\t\t~snareB.reset.play(~bpm);\r\n\t\t~kickB.reset.play(~bpm);\r\n\t\t~melodyB.reset.play(~bpm);\r\n\t\t~bellB.reset.play(~bpm);\r\n\t\t~marimbaB.reset.play(~bpm);\r\n\t\t~hit.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~secondMelodyB1.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~secondMelodyB1.stop;\r\n\t\t~secondMelodyB2.reset.play(~bpm);\r\n\t\t8.wait;\r\n\t\t~secondMelodyB2.stop;\r\n\t\t~secondMelodyB3.reset.play(~bpm);\r\n\t\t8.wait;\r\n\t\t~secondMelodyB3.stop;\r\n\t\t~secondMelodyB4.reset.play(~bpm);\r\n\t\t8.wait;\r\n\t\t~secondMelodyB4.stop;\r\n\t\t~secondMelodyB5.reset.play(~bpm);\r\n\t\t8.wait;\r\n\t\t~secondMelodyB5.stop;\r\n\t\t~melodyB.stop;\r\n\t\t~bellB.stop;\r\n\t\t~marimbaB.stop;\r\n\t\t~bassB.stop;\r\n\t\t~hihatB.stop;\r\n\t\t~snareB.stop;\r\n\t\t~kickB.stop;\r\n\t\t~hit.stop;\r\n\t\t~bell.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~bpm.tempo = 36/60;\r\n\t\t2.wait;\r\n\t\t~bpm.tempo = 60/60;\r\n\t\t~guitarB.stop;\r\n\t\t//third section\r\n\t\t~bTocTransition.reset.play(~bpm);\r\n\t\t2.wait;\r\n\t\t~bassC.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~organC1.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~organC1.stop;\r\n\t\t~organC2.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~organC2.stop;\r\n\t\t~organC1.reset.play(~bpm);\r\n\t\t~otherOrganC1.reset.play(~bpm);\r\n\t\t~snareC.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~organC1.stop;\r\n\t\t~organC2.reset.play(~bpm);\r\n\t\t~otherOrganC1.stop;\r\n\t\t~otherOrganC2.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~organC2.stop;\r\n\t\t~otherOrganC2.stop;\r\n\t\t~bombsFire.reset.play(~bpm);\r\n\t\t~bombsBlast.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~bassC.stop;\r\n\t\t~bassC2.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~stringsC.reset.play(~bpm);\r\n\t\t~bassC2.stop;\r\n\t\t~bassC3.reset.play(~bpm);\r\n\t\t32.wait;\r\n\t\t~bassC3.stop;\r\n\t\t~snareC.stop;\r\n\t\t~bombsFire.stop;\r\n\t\t~bombsBlast.stop;\r\n\t\t~bassA.reset.play(~bpm);\r\n\t\t16.wait;\r\n\t\t~stringsC.stop;\r\n\t\t16.wait;\r\n\t\t~harmonyA.reset.play(~bpm);\r\n\t\t14.wait;\r\n\t\tNdef(\\fade, { Out.kr(55, Line.kr(0, 1, 0.01)) }).play;\r\n\t\t~bassA.stop;\r\n\t\t~harmonyA.stop;\r\n\t\t2.wait;\r\n\t\t~bassA.reset.play(~bpm);\r\n\t\t~harmonyA.reset.play(~bpm);\r\n\t\t~chordsA.reset.play(~bpm);\r\n\t\t~hihatD.reset.play(~bpm);\r\n\t\t~snareD.reset.play(~bpm);\r\n\t\t~kickD.reset.play(~bpm);\r\n\t\t32.wait;\r\n\t\t~synthD.reset.play(~bpm);\r\n\t\t60.wait;\r\n\t\t~snareD.stop;\r\n\t\t~snareD2.reset.play(~bpm);\r\n\t\t4.wait;\r\n\t\tNdef(\\fade, { Out.kr(55, Line.kr(1, 0, 0.01)) }).play;\r\n\t\t~hihatD.stop;\r\n\t\t~chordsA.stop;\r\n\t\t~kickD.stop;\r\n\t\t~synthD.stop;\r\n\t\t~snareD2.stop;\r\n\t\t~harmonyA.stop;\r\n\t\t~bassA.stop;\r\n\t\t~bassD.reset.play(~bpm);\r\n\t\t1.wait;\r\n\t\t~bassD.stop;\r\n\t}.fork(~bpm);\r\n\r\n}); // end of waitForBoot\r\n\r\n)",
   "name" : "Judges by Michael Noonan",
   "author" : "Bruno Ruviaro",
   "description" : "\"Judges\" by Michael Noonan. Created as a Final Project for the course MUSC 115 - Experimental Sound Design, Santa Clara University, Fall 2019.",
   "ancestor_list" : []
}
