{
   "code" : "(\r\n~xox = {|str| str.collectAs({|l| switch(l.toLower,$x, {1}, $o, {Rest(1)})}, Array)};\r\n)\r\n\r\n\r\n(\r\nSynthDef(\\acid, { arg out, freq = 1000, gate = 1, pan = 1, cut = 4000, rez = 0.8, amp = 1, sustain = 1, release = 0.5;\r\n    var sig, env;\r\n\tenv = EnvGen.kr(Env.linen(0.01, sustain, sustain * release), gate, amp, doneAction: Done.freeSelf);\r\n\tsig = Pulse.ar([freq,freq*1.001], 0.5);\r\n\tsig = sig + Pulse.ar(freq*0.501, 0.01, [0,0.5]);\r\n\tsig = sig + Pulse.ar(freq*1.99, 0.11, [0.5,0]);\r\n\tsig = RLPF.ar(sig, cut, rez);\r\n\tsig = Pan2.ar(sig);\r\n\tsig = sig * env;\r\n\r\n\tOut.ar(out, sig);\r\n}).add;\r\n)\r\n\r\n(\r\nPbind(\r\n\t\\instrument, \\acid,\r\n\t\\dur, Pseq(~xox.(\"xxooxoxo\") * 8/120, inf),\r\n\t\\scale, Scale.minor,\r\n\t\\degree, Pseq([0,4,5,3,3], inf),\r\n\t\\cut, Pwhite(100, 1500),\r\n\t\\rez, Pwhite(0.1, 0.8),\r\n\t\\amp, -10.dbamp,\r\n).play;\r\n)",
   "id" : "1-5hZ",
   "is_private" : null,
   "labels" : [
      "pattern",
      "303",
      "808",
      "xox"
   ],
   "ancestor_list" : [],
   "description" : "a simple helper function to write \\dur patterns in a XoX style i.e. Pseq(~xox.(\"xxooxoxo\") * 8/120, inf)",
   "name" : "XoX pattern helper",
   "author" : "gosub"
}
