{
   "labels" : [
      "pattern",
      "modulation",
      "sequencer"
   ],
   "code" : "(\r\nSynthDef(\\rlpf, { arg out=0, amp=0.1, gate=1, pan=0, spread=0.8, freq=200, doneAction=2, ffreq=4000, rq=0.3;\r\n\tvar sig, sig1, sig2, sig3;\r\n\tsig = LFSaw.ar(freq * [1.01,1,0.99]);\r\n\tsig = RLPF.ar(sig, ffreq, rq);\r\n\tsig = sig * EnvGen.ar(\\adsr.kr(Env.adsr(0.01,0.1,0.8,0.1)),gate,doneAction:doneAction);\r\n\tsig = Splay.ar(sig, spread, amp, pan);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n\r\n///////// lfo communicating with main pattern\r\n\r\n(\r\nNdef(\\lfo1, {  EnvGen.kr(Env([1,4,1],[0.1,0.2]), \\trig.tr(0)) * \\lforange.kr(1000);  });\r\n\r\nPdef(\\main, Pbind(\r\n\t\\instrument, \\rlpf,\r\n\t\\midinote, Pseq([60, 62, 64], inf),\r\n\t\\legato, 0.5,\r\n\t\\move, Pseq([0,1,0, 1,0,0],inf),\r\n\t\\lforange, Pseq([1000,2000,3000],inf).stutter(8),\r\n\t\\ffreq, Pfunc({ arg ev;\r\n\t\tNdef(\\lfo1).set(\\trig, ev[\\move], \\lforange, ev[\\lforange]);\r\n\t\tNdef(\\lfo1);\r\n\t}),\r\n\t\\dur, 0.5\r\n)).play \r\n)\r\n\r\n////// sub pattern way\r\n\r\n(\r\n\tPdef(\\micro, { arg midinote, move;\r\n\t\tPbind(\r\n\t\t\t\\instrument, \\rlpf,\r\n\t\t\t\\midinote, midinote + \r\n\t\t\t\tswitch(move,\r\n\t\t\t\t\t\\up, Pseq((0..7)),\r\n\t\t\t\t\t\\down, Pseq((7..0)),\r\n\t\t\t\t\tPseq(0!8),\r\n\t\t\t\t),\r\n\t\t\t\\dur, 1/16,\r\n\t\t)\r\n\t});\r\n\r\n\tPdef(\\main,\r\n\t\tPbind(\r\n\t\t\t\\instrument, \\micro,\r\n\t\t\t\\move, Pseq([\\n, \\n, \\up, \\n, \\n, \\down],inf),\r\n\t\t\t\\type, \\phrase,\r\n\t\t\t\\midinote, Pseq([60, 62, 64], inf),\r\n\t\t\t\\dur, 1/2,\r\n\t\t)\r\n\t).play;\r\n)\r\n\r\n//////// same in mono\r\n\r\n(\r\n\tPdef(\\micro, { arg midinote, move;\r\n\t\tPmono(\r\n\t\t\t\\rlpf,\r\n\t\t\t\\midinote, midinote + \r\n\t\t\t\tswitch(move,\r\n\t\t\t\t\t\\up, Pseq((0..7)),\r\n\t\t\t\t\t\\down, Pseq((7..0)),\r\n\t\t\t\t\tPseq(0!8),\r\n\t\t\t\t),\r\n\t\t\t\\dur, 1/16,\r\n\t\t)\r\n\t});\r\n\r\n\tPdef(\\main,\r\n\t\tPbind(\r\n\t\t\t\\instrument, \\micro,\r\n\t\t\t\\move, Pseq([\\n, \\n, \\up, \\n, \\n, \\down],inf),\r\n\t\t\t\\type, \\phrase,\r\n\t\t\t\\midinote, Pseq([60, 62, 64], inf),\r\n\t\t\t\\dur, 1/2,\r\n\t\t)\r\n\t).play;\r\n)",
   "is_private" : null,
   "id" : "1-509",
   "author" : "grirgz",
   "name" : "Modulation sequencing",
   "description" : "Two simple ways to set a different modulation per step in a pattern",
   "ancestor_list" : []
}
