{
   "ancestor_list" : [],
   "description" : "",
   "name" : "L115bertango (MUSC115)",
   "author" : "unknown",
   "code" : "(\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(\"am2\", {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    carrier = SinOsc.ar(freq: freq, mul: env * modulator);\r\n\tOut.ar(0, Pan2.ar(carrier, pos));\r\n}).add;\r\n\r\n\r\n\r\nSynthDef(\"fm1\", {arg freq = 440, modfreq = 1.6, modindex = 10, amp = 0.1, pos = 0, gate = 1, att = 0.01, rel = 0.7;\r\n\tvar carrier, modulator, freqdev, env;\r\n\t// i = d/m, so d = m*i\r\n\tfreqdev = modfreq * modindex;\r\n\tmodulator = Saw.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(\"fm2\", {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\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 = 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\n)\r\n\r\n\r\n\r\n(\r\n\r\n~bass1= Pbind(\r\n\t\\instrument, \"fm2\",\r\n\t\\scale, Scale.minor,\r\n\t\\degree, Pseq([\r\n\t\tPseq([4,1,1],6),\r\n\t\tPseq([5s,2s,6,7,6],2),\r\n\t\tPseq([4,0,2],2),\r\n\t\tPseq([4,1,1,2,1],2),1]),\r\n\t\\ctranspose, -12,\r\n\t\\dur, Pseq([\r\n\t\tPseq([1.5,1.5,1],6),\r\n\t\tPseq([1.5,1,1/2,1/2,1/2],2),\r\n\t\tPseq([1.5,1.5,1],2),\r\n\t\tPseq([1.5,1,1/2,1/2,1/2],2)],1),\r\n\t\\amp, 0.5,\r\n\t\\legato, 0.1\r\n);\r\n\r\n\r\n\r\n~bass2= Pbind(\r\n\t\\instrument, \"fm2\",\r\n\t\\scale, Scale.minor,\r\n\t\\degree, Pseq([\r\n\t\tPseq([3,6,6],2),\r\n\t\tPseq([2s,5s,5s,6,5s],2),\r\n\t\tPseq([2s,5s,5s],2),\r\n\t\tPseq([1,3s,3s,1],1),1]),\r\n\t\\ctranspose, -24,\r\n\t\\dur, Pseq([\r\n\t\tPseq([1.5,1.5,1],2),\r\n\t\tPseq([1.5,1,1/2,1/2,1/2],2),\r\n\t\tPseq([1.5,1.5,1],2),\r\n\t\tPseq([1.5,1.5,1,1.5],1)],1),\r\n\t\\amp, 0.5,\r\n\t\\legato, 0.1\r\n);\r\n\r\n~vio1= Pbind(\r\n\t\\instrument, \"am2\",\r\n\t\\scale, Scale.minor,\r\n\t\\degree, Pseq([\r\n\t\tPseq([4,8,8],6),\r\n\t\tPseq([5s,8,8],2),\r\n\t\t5,8,8,7,8,8,\r\n\t\tPseq([4,8,8],2)\r\n],inf),\r\n\t\\dur, Pseq([2,1,1], inf),\r\n\t\\amp, 0.6,\r\n\t\\rel, 0.5\r\n\r\n);\r\n\r\n\r\n\r\n~melody1= Pbind(\r\n\t\\instrument, \"am1\",\r\n\t\\scale, Scale.dorian,\r\n\t\\degree,Pseq([1,8,1,7,6,5,4,5,5,6,7,1,6,5,4,3s,4],1),\r\n\t\\dur, Pseq([1,5.5,0.5,0.5,0.5,0.5,0.5,7,0.5,0.5,5.5,0.5,0.5,0.5,0.5,0.5,7],1),\r\n\t\\amp, 0.5\r\n);\r\n\r\n\r\n~melody2= Pbind(\r\n\t\\instrument, \"am1\",\r\n\t\\scale, Scale.dorian,\r\n\t\\degree,Pseq([4,5,6,1,6,5,6,4,5,5,4,5,6,5,6,5,4,3s],inf),\r\n\t\\dur, Pseq([0.5,0.5,5.5,0.5,0.5,0.5,0.5,0.5,8,5.5,0.5,0.5,0.5,0.25,0.25,0.25,0.25,7],1),\r\n\t\\amp, 0.5\r\n\r\n);\r\n\r\n\r\n\r\n\r\n\r\n~viodrop= Pbind(\r\n\t\\instrument, \"fm2\",\r\n\t\\scale, Scale.minor,\r\n\t\\degree, Pseq([\r\n\t\tPn([4,6,8],6),\r\n\t\tPn([5s,6,7s],6),\r\n\t\tPn([0,2,4],12),\r\n\t\tPn([3,6,8],6),\r\n\t\tPn([5s,6,7s],6)\r\n\t],2),\r\n\t\\dur, Pseq([1,2,0.5,1,0.5,3],inf)\r\n);\r\n\r\n\r\n~bdrop=Pbind(\r\n\t\\instrument, \"fm1\" ,\r\n\t\\scale, Scale.minor,\r\n\t\\degree, Pseq([4,4,0,4,-1,2s],1),\r\n\t\\ctranspose, -24,\r\n\t\\dur, 8,\r\n\r\n);\r\n)\r\n\r\n\r\n\r\n\r\n\r\n~melody1.play;\r\n~melody2.play;\r\n~bass1.play;\r\n~bass2.play;\r\n~vio1.play;\r\n~viodrop.play;\r\n~bdrop.play;\r\n\r\n\r\n\r\n\r\n(\r\nt=TempoClock(155/60);\r\n\r\nPspawner({ arg maestro;\r\n\r\n\tmaestro.par(Ppar([~bass1,~vio1]));\r\n\r\n\tmaestro.wait(15);\r\n\tmaestro.seq(~melody1);\r\n\tmaestro.par(~melody2);\r\n\tmaestro.wait(1);\r\n\tmaestro.seq(~bass2);\r\n\tmaestro.suspendAll;\r\n\tmaestro.wait(6);\r\n\tmaestro.par(~melody1);\r\n\tmaestro.wait(1);\r\n\tmaestro.par(Ppar([~viodrop,~bdrop]));\r\n\tmaestro.wait(31);\r\n\tmaestro.seq(~melody2);\r\n\r\n}).play(t)\r\n)\r\n\r\ns.makeWindow",
   "is_private" : null,
   "id" : "1-55g",
   "labels" : []
}
