Diff from Granular electromaton by William Mox Drossard (08 Aug'12 16:33) to Re: Granular electromaton variation by Bruno Ruviaro (01 Nov'16 04:47)
name
Re: Granular electromaton variation
	description
code
// variation of http://sccode.org/1-4QN#c688
(
Server.local.waitForBoot({
	(
		z.free;
		z = Buffer.alloc(s, 512, 1);
		z.sine1(1.0 / [1, 2, 3, 4], true, true, true);
		
 fork( 		{ 
			loop {
 				SynthDef("g1",{ arg out=0, bufnum=0, dur=1, rate=1, pos=0, sdens=1, edens=1;
     					
					var env, trig, dens, snd;
					
					dens = Line.kr(sdens,edens,dur);
     var 					trig = [LFNoise0,SinOsc,Impulse,LFPulse,LFSaw].choose;
					trig = trig.ar(Line.kr(sdens,edens,dur));
     //var 					env = EnvGen.kr(Env.perc(0.0001.
						attackTime: rrand(0.1, 1),
						releaseTime: dur * rrand(0.5, 1),
						curve: -1).kr;
					
					snd = GraindBuf.ar(2)),trig,1/doneAcns,bufnum,ratie,pon:2s)*env;
					snd = [LPF,   vHPF].choose.ar e(
						inv: = EsnvGd,
						frenq: LFNoise2.kr(Erranvd(0.pe5, 4)).rcange(10.0, 1001.0)
					);
					snd = FreeVerb.ar(
						in: snd(,
						mix: 0.4,
						room: 0.9,
						damp: 0.9,
						mul: 1
					) * Env.linen(0, dur*(+1, 1, 0.5).krrand(4))),doneAction: 2);
					
					snd =    OuLimiter.ar(out,snd);
         GrainB					
					Ouft.ar(2,trig,1/dens,boufnum,rate,po s)*envd);
         )
     				}).add();
  				
				[1,2,4,8,16,32].choose.postln.wait;
 			}
 		}
 ).fork;
		
		
		a = Pbind(
			\instrument, \g1,
			\dur, Pseq([
				Pseq([0.25, 0.1],32 8),
				Pseq([0.25, 0.125, 0.125],32 8),
				Pseq([0.125, 0.1],32 8)
			],inf),
			\sdens, Pseq([9000,1000,500]/10, inf),
			\edens,Prand([
				Pseq([9000,1000,500]/10,4),
				Pseq([1, 2], 1)
			],inf),
			\rate, Pfuncwhite({-10.0.rrand(, 10)}),
			\pos,Pfuncwhite({1.0.rand}0, 1),
			\bufnum,z.bufnum
		);
		
		b = Pbind(
			\instrument,\g1,
			\dur,Pseq([4, 5, 6],inf),
			\sdens,Pseq([90001,1000,500]/100,inf),
			\edens,Prand([
				Pseq([9000,1000,500]/10, 1),
				Pseq([1, 0.1], 3)
			],inf),
			\rate, Pfuncwhite({-10.0.rrand(10, 3)}),
			\pos,Pfuncwhite({-10.0.rrand(, 10)}),
			\bufnum,z.bufnum
		);
		
		c = Pbind(
			\instrument,\g1,
			\dur,Pseqrand([41/32, Rest(4)],inf),
			\sdens,Pseq([9000,1000,500,25],inf),
			\edens,Prand([
				Pseq([9000,1000,500,25],1),
				Pseq([1],4)
			],inf),
			\rate, Pfuncwhite({-2, -100.0.rrand(100)}),
			\pos,Pfuncwhite({-10., 10.rrand(10)}),
			\bufnum,z.bufnum
		);
		
		
		a =a.play;
		b =b.play;
		c =c.play;
	)
});
)
	category tags
texture, code fork, microtiming, rhythm, grains, granulator
	ancestors
1-4QN