{
   "labels" : [
      "texture",
      "code fork",
      "microtiming",
      "rhythm",
      "grains",
      "granulator"
   ],
   "is_private" : null,
   "id" : "1-54I",
   "code" : "// variation of http://sccode.org/1-4QN#c688\r\n\r\n(\r\nServer.local.waitForBoot({\r\n\t(\r\n\t\tz.free;\r\n\t\tz = Buffer.alloc(s, 512, 1);\r\n\t\tz.sine1(1.0 / [1, 2, 3, 4], true, true, true);\r\n\t\t\r\n\t\t{\r\n\t\t\tloop {\r\n\t\t\t\tSynthDef(\"g1\",{ arg out=0, bufnum=0, dur=1, rate=1, pos=0, sdens=1, edens=1;\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar env, trig, dens, snd;\r\n\t\t\t\t\t\r\n\t\t\t\t\tdens = Line.kr(sdens,edens,dur);\r\n\t\t\t\t\ttrig = [LFNoise0,SinOsc,Impulse,LFPulse,LFSaw].choose;\r\n\t\t\t\t\ttrig = trig.ar(Line.kr(sdens,edens,dur));\r\n\t\t\t\t\tenv = Env.perc(\r\n\t\t\t\t\t\tattackTime: rrand(0.1, 1),\r\n\t\t\t\t\t\treleaseTime: dur * rrand(0.5, 1),\r\n\t\t\t\t\t\tcurve: -1).kr;\r\n\t\t\t\t\t\r\n\t\t\t\t\tsnd = GrainBuf.ar(2,trig,1/dens,bufnum,rate,pos)*env;\r\n\t\t\t\t\tsnd = [LPF, HPF].choose.ar(\r\n\t\t\t\t\t\tin: snd,\r\n\t\t\t\t\t\tfreq: LFNoise2.kr(rrand(0.5, 4)).range(100, 1000)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tsnd = FreeVerb.ar(\r\n\t\t\t\t\t\tin: snd,\r\n\t\t\t\t\t\tmix: 0.4,\r\n\t\t\t\t\t\troom: 0.9,\r\n\t\t\t\t\t\tdamp: 0.9,\r\n\t\t\t\t\t\tmul: 1\r\n\t\t\t\t\t) * Env.linen(0, dur+1, 1, 0.5).kr(doneAction: 2);\r\n\t\t\t\t\t\r\n\t\t\t\t\tsnd = Limiter.ar(snd);\r\n\t\t\t\t\t\r\n\t\t\t\t\tOut.ar(out, snd);\r\n\t\t\t\t}).add;\r\n\t\t\t\t\r\n\t\t\t\t[1,2,4,8,16,32].choose.postln.wait;\r\n\t\t\t}\r\n\t\t}.fork;\r\n\t\t\r\n\t\t\r\n\t\ta = Pbind(\r\n\t\t\t\\instrument, \\g1,\r\n\t\t\t\\dur, Pseq([\r\n\t\t\t\tPseq([0.5, 0.1], 8),\r\n\t\t\t\tPseq([0.25, 0.125, 0.125], 8),\r\n\t\t\t\tPseq([0.125, 0.1], 8)\r\n\t\t\t],inf),\r\n\t\t\t\\sdens, Pseq([9000,1000,500], inf),\r\n\t\t\t\\edens,Prand([\r\n\t\t\t\tPseq([900,1000,500]/10,4),\r\n\t\t\t\tPseq([1, 2], 1)\r\n\t\t\t],inf),\r\n\t\t\t\\rate, Pwhite(-10.0, 1),\r\n\t\t\t\\pos,Pwhite(0.0, 1),\r\n\t\t\t\\bufnum,z.bufnum\r\n\t\t);\r\n\t\t\r\n\t\tb = Pbind(\r\n\t\t\t\\instrument,\\g1,\r\n\t\t\t\\dur,Pseq([4, 5, 6],inf),\r\n\t\t\t\\sdens,Pseq([1,10,5],inf),\r\n\t\t\t\\edens,Prand([\r\n\t\t\t\tPseq([9000,10,50], 1),\r\n\t\t\t\tPseq([1, 0.1], 3)\r\n\t\t\t],inf),\r\n\t\t\t\\rate, Pwhite(1, 3),\r\n\t\t\t\\pos,Pwhite(-10.0, 10),\r\n\t\t\t\\bufnum,z.bufnum\r\n\t\t);\r\n\t\t\r\n\t\tc = Pbind(\r\n\t\t\t\\instrument,\\g1,\r\n\t\t\t\\dur,Prand([1/2, Rest(4)],inf),\r\n\t\t\t\\sdens,Pseq([900,1000,500,25],inf),\r\n\t\t\t\\edens,Prand([\r\n\t\t\t\tPseq([9000,1000,500,25],1),\r\n\t\t\t\tPseq([1],4)\r\n\t\t\t],inf),\r\n\t\t\t\\rate, Pwhite(-2, -1),\r\n\t\t\t\\pos,Pwhite(-10, 10.0),\r\n\t\t\t\\bufnum,z.bufnum\r\n\t\t);\r\n\t\t\r\n\t\t\r\n\t\ta.play;\r\n\t\tb.play;\r\n\t\tc.play;\r\n\t)\r\n});\r\n)",
   "author" : "Bruno Ruviaro",
   "name" : "Re: Granular electromaton variation",
   "ancestor_list" : [
      "1-4QN"
   ],
   "description" : "A variation of Granular electromaton by William Mox Drossard"
}
