{
   "ancestor_list" : [],
   "description" : "",
   "author" : "unknown",
   "name" : "Retro Racing - A2",
   "is_private" : null,
   "id" : "1-558",
   "code" : "// =======================\r\n// MUSC 115 Assigment 2\r\n// =======================\r\n// SynthDefs (AM and FM)\r\n// =======================\r\n\r\n// Your name: Alex Heldt\r\n\r\n\r\n(\r\n\r\nSynthDef(\"first\", {arg freq = 440, modfreq = 3, amp = 0.3, att = 0.03, rel = 0.5;\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\n\r\nSynthDef(\"lowguy\", {arg freq = 220, modfreq = 1, amp = 0.5, att = 0.03, rel = 0.2;\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 = Saw.ar(freq: freq, mul: env * modulator);\r\n    Out.ar(0, carrier ! 2);\r\n}).add;\r\n\r\nSynthDef(\"mainbass\", {arg freq = 440, modindex = 10, amp = 0.1, pos = 0, gate = 1, att = 0.01, rel = 0.3;\r\n\tvar carrier, modulator, freqdev, env, modfreq;\r\n\r\n\tmodindex = Line.kr(modindex, 1, att);\r\n\tmodfreq = freq / 2;\r\n\tfreqdev = modfreq * modindex;\r\n\tmodulator = SinOsc.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\nSynthDef(\"snaredeff\", {arg out = 0, amp = 0.1, sinfreq = 200, 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(\"kicka\", {arg out = 0, amp = 0.3, sinfreq = 40, glissf = 0.9, att = 0.01, rel = 0.5, 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\nSynthDef(\"ams1\", {arg freq = 440, modfreq = 2, amp = 0.2, att = 0.01, sus = 0.2, rel = 3, gate = 1, pos = 0;\r\n    var carrier, modulator, env;\r\n    env = Env.asr(\r\n        attackTime: att,\r\n\t\tsustainLevel: sus,\r\n        releaseTime: rel\r\n\t).kr(doneAction: 2, gate: gate, mul: amp);\r\n    modulator = SinOsc.ar(modfreq).range(0, 1);\r\n\tfreq = freq * LFNoise2.kr([2, 1/2, 1/3, 1/4, 1]).range(0.98, 1.01);\r\n    carrier = Pulse.ar(freq: freq, mul: env * modulator);\r\n\tcarrier = Mix.ar(carrier);\r\n\tcarrier = LPF.ar(carrier, Line.kr(10000, 1000, att));\r\n\tOut.ar(0, Pan2.ar(carrier, pos));\r\n}).add;\r\n)\r\n\r\n\r\n(\r\n\r\n~firstsynth = Pbind(\r\n    \\instrument, \"first\",\r\n    \\midinote, Pseq([80], 64),\r\n\t\\dur, Pseq([(1/8)], inf),\r\n    \\amp, Pwhite(0.15, 0.2),\r\n    \\att, 0.1,\r\n    \\rel, 3,\r\n    \\modfreq, Pseq([12, 9, 7, 5, 3], inf),\r\n\t\\pos, 0\r\n);\r\n\r\n\r\n~bassthingy = Pbind(\r\n    \\instrument, \"lowguy\",\r\n    \\midinote, Pseq([40], 64),\r\n\t\\dur, Pseq([(1/8)], inf),\r\n    \\amp, Pwhite(0.05, 0.1),\r\n    \\att, 0.01,\r\n    \\rel, 3,\r\n    \\modfreq, Pseq([12, 9, 7, 5, 3], inf),\r\n\t\\pos, 0\r\n);\r\n\r\n~weirdperc = Pbind(\r\n    \\instrument, \"first\",\r\n    \\midinote, Pseq([72, 73, 74, 75, 86, 85, 84, 83], 32),\r\n\t\\ctranspose, [-3, -0],\r\n\t\\dur, Pseq([(1/8), (1/8)], 32),\r\n    \\amp, Pwhite(0.25, 0.35),\r\n    \\att, 0.01,\r\n    \\rel, 0.2,\r\n\t\\modfreq, Pwhite(10, 30),\r\n\t\\pos, 0\r\n);\r\n\r\n~basstrack = Pbind(\r\n    \\instrument, \"mainbass\",\r\n\t\\dur, (1/2),\r\n\t\\note, Pseq([1], 16),\r\n\t\\ctranspose, -12,\r\n\t\\modindex, Pseq([ 6, 7, 8, 9, 20, 9, 8, 4, 1 ], inf),\r\n\t\\amp, Pseq([0.8, 0.82, 0.84, 0.88], inf),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.3,\r\n\t\\pos, 0\r\n);\r\n\r\n~mainsnare = Pbind(\r\n\t\\instrument, \"snaredeff\",\r\n\t\\dur, Pseq([Rest(1), 1], 4),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.1,\r\n\t\\sinfreq, 180,\r\n\t\\ffreq, 1000,\r\n\t\\amp, 0.7\r\n\r\n);\r\n\r\n~mainkick = Pbind(\r\n\t\\instrument, \"kicka\",\r\n\t\\dur, Pseq([0.5, 0.5, Rest(1.5), 0.5, Rest(1/4), (3/4)], 2),\r\n\t\\att, 0.01,\r\n\t\\rel, 0.3,\r\n\t\\sinfreq, 60,\r\n\t\\glissf, 0.98,\r\n\t\\amp, 0.8,\r\n);\r\n\r\n~amsynthwub = Pbind(\r\n    \\instrument, \"ams1\",\r\n    \\midinote, Pseq([70, 70, 80, 70, 70, 60], 4),\r\n\t\\ctranspose, -12,\r\n\t\\dur, Pseq([0.25, 0.25, 0.5], inf),\r\n    \\amp, Pwhite(0.65, 0.7),\r\n\t\\att, Pwhite(0.2, 0.3),\r\n\t\\rel, 0.8,\r\n    \\modfreq, Pseq([7, 7, 1], inf)\r\n);\r\n\r\n~amsynthwubfast = Pbind(\r\n    \\instrument, \"ams1\",\r\n    \\midinote, Pseq([70, 70, 80, 70, 70, 60, 60], 4),\r\n\t\\ctranspose, -12,\r\n\t\\dur, Pseq([0.25, 0.25, 0.5, 0.25, 0.25, 0.25, 0.25], inf),\r\n    \\amp, Pwhite(0.65, 0.7),\r\n\t\\att, Pwhite(0.05, 0.1),\r\n\t\\rel, 0.7,\r\n    \\modfreq, Pseq([16, 16, 2, 16, 16, 2, 1], inf)\r\n);\r\n\r\n~amsynthwubfastsecond = Pbind(\r\n    \\instrument, \"ams1\",\r\n    \\midinote, Pseq([70, 70, 80, 70, 70, 60, 60], 4),\r\n\t\\ctranspose, 0,\r\n\t\\dur, Pseq([0.25, 0.25, 0.5, 0.25, 0.25, 0.25, 0.25], inf),\r\n    \\amp, Pwhite(0.45, 0.5),\r\n\t\\att, Pwhite(0.05, 0.1),\r\n\t\\rel, 0.7,\r\n    \\modfreq, Pseq([14, 14, 1, 14, 14, 1, 2], inf)\r\n);\r\n\r\n\r\n~amsynthbg = Pbind(\r\n    \\instrument, \"ams1\",\r\n\t\\midinote, Pseq([80, 90, 95], 4),\r\n\t\\ctranspose, 0,\r\n    \\dur, Pseq([1, 0.5, 0.5], 4),\r\n\t\\amp, Pseq([0.4, 0.48, 0.5], 4),\r\n\t\\att, Pseq([0.1, 0.2, 0.1], 4),\r\n\t\\rel, 0.7,\r\n\t\\modfreq, Pseq([16, 8, 16], 4),\r\n\t\\pos, Pseq([-0.5, 0, 0.5, 0.5, 0, -0.5], 2)\r\n);\r\n\r\n~amsynthbg2 = Pbind(\r\n    \\instrument, \"ams1\",\r\n\t\\midinote, Pseq([45, 45, 45], 4),\r\n\t\\ctranspose, 0,\r\n    \\dur, Pseq([1, 0.5, 0.5], 4),\r\n\t\\amp, Pseq([0.7, 0.78, 0.8], 4),\r\n\t\\att, Pseq([0.1, 0.2, 0.1], 4),\r\n\t\\rel, 0.5,\r\n\t\\modfreq, Pseq([1.5, 1.5, 1.5, 4, 0.5, 0.5], 2),\r\n\t\\pos, 0\r\n);\r\n\r\n~amsynthbg3 = Pbind(\r\n    \\instrument, \"ams1\",\r\n\t\\midinote, Pseq([45, 45, 45], 4),\r\n\t\\ctranspose, -6,\r\n    \\dur, Pseq([1, 0.5, 0.5], 4),\r\n\t\\amp, Pseq([0.95, 0.98, 1], 4),\r\n\t\\att, Pseq([0.1, 0.2, 0.1], 4),\r\n\t\\rel, 0.5,\r\n\t\\modfreq, Pseq([1.5, 1.5, 1.5, 4, 0.5, 0.5], 2),\r\n\t\\pos, 0\r\n);\r\n\r\n~amsynthbg4 = Pbind(\r\n    \\instrument, \"ams1\",\r\n\t\\midinote, Pseq([45, 43, 40], 4),\r\n\t\\ctranspose, -12,\r\n    \\dur, Pseq([1, 0.5, 0.5], 4),\r\n\t\\amp, Pseq([0.95, 0.98, 1], 4),\r\n\t\\att, Pseq([0.1, 0.2, 0.1], 4),\r\n\t\\rel, 0.5,\r\n\t\\modfreq, Pseq([1.5, 1.5, 1.5, 8, 1, 1], 2),\r\n\t\\pos, 0\r\n);\r\n\r\n~amsynthbgfinal = Pbind(\r\n    \\instrument, \"ams1\",\r\n\t\\midinote, Pseq([45, 43, 40], 4),\r\n\t\\ctranspose, -12,\r\n    \\dur, Pseq([1, 0.5, 0.5], 4),\r\n\t\\amp, Pseq([0.95, 0.98, 1], 4),\r\n\t\\att, Pseq([0.1, 0.2, 0.1], 4),\r\n\t\\rel, 0.5,\r\n\t\\modfreq, Pseq([8, 8, 8, 16, 8, 16], 2),\r\n\t\\pos, 0\r\n);\r\n\r\n~amsynthbgoutro = Pbind(\r\n    \\instrument, \"ams1\",\r\n\t\\midinote, Pseq([45, 43, 40, 35, 45, 43, 40, 45], 1),\r\n\t\\ctranspose, -12,\r\n    \\dur, Pseq([2, 2, 2, 2, 2, 2, 2, 2], 2),\r\n\t\\amp, Pseq([0.95, 0.98, 1, 0.4, 0.95, 0.98, 1, 0.5], 1),\r\n\t\\att, Pseq([0.1, 0.2, 0.1, 0.5], 2),\r\n\t\\rel, 0.7,\r\n\t\\modfreq, Pseq([32, 16, 8, 4, 32, 16, 8, 16], 1),\r\n\t\\pos, 0\r\n);\r\n)\r\n\r\n~bassthingy.play;\r\n\r\n~firstsynth.play;\r\n\r\n~weirdperc.play;\r\n\r\n~basstrack.play;\r\n\r\n~mainsnare.play;\r\n\r\n~mainkick.play;\r\n\r\n~amsynthwub.play;\r\n\r\n~amsynthwubfast.play;\r\n\r\n~amsynthbg.play;\r\n\r\n~amsynthbg2.play;\r\n\r\n~amsynthbg3.play;\r\n\r\n~amsynthbg4.play;\r\n\r\n~amsynthbgfinal.play;\r\n\r\n~amsynthbgoutro.play;\r\n\r\n\r\n\r\n(\r\nt = TempoClock(140/60);\r\n\r\nPspawner({arg maestro;\r\n\r\n\tmaestro.wait(8);\r\n\tmaestro.seq(~firstsynth);\r\n\r\nmaestro.seq(Ppar([~firstsynth, ~bassthingy]));\r\n\r\n\tmaestro.seq(~weirdperc);\r\n\r\n\tmaestro.seq(~basstrack);\r\n\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick]));\r\n\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwub]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwubfast]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwub]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwubfastsecond]));\r\n\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwub, ~amsynthbg]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwubfast, ~amsynthbg]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwub, ~amsynthbg2]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthwubfastsecond, ~amsynthbg2]));\r\n\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthbg3]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthbg4]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthbg3]));\r\n\tmaestro.seq(Ppar([~basstrack, ~mainsnare, ~mainkick, ~amsynthbgfinal]));\r\n\r\n\tmaestro.seq(~amsynthbgoutro);\r\n\r\n\r\n}).play(t);\r\n)",
   "labels" : [
      "115modulations"
   ]
}
