// title: Nautilus // author: josecaos // description: // Nautilus, melodias cromaticas en espiral // code: ///////////////// written for hackpact mx. II artgen 1-nov-11 ////audio @ http://soundcloud.com/josecaos/el-espiral /////// melodias cromaticas en espiral // s.boot; s.quit; s.scope; (////timbres ( SynthDef(\master,{|gate=1,nota| var in,env; in=In.ar([20,22]); in=GVerb.ar(in,8,2,0.02); in=Limiter.ar(in,0.35); env=EnvGen.ar(Env.asr(0.01,0.98,0.01),gate,doneAction:2); Out.ar(0,Pan2.ar(in*env,[1,-0.9])) }).add; ); ( SynthDef(\timbreuno,{|gate=1,nota| var tim,env; tim=LFTri.ar(nota.midicps,0,0.15); env=EnvGen.ar(Env.perc(0.01,0.25),gate,doneAction:2); Out.ar(20,Pan2.ar(tim*env,[1,-0.9])) }).add; ); ( SynthDef(\timbredos,{|gate=1,nota| var tom,env; tom=LFTri.ar(nota.midicps,mul:0.1); env=EnvGen.ar(Env.perc(0.01,0.25),gate,doneAction:2); Out.ar(22,Pan2.ar(tom*env,[-0.9,1])) }).add; ); ); (//////contador ( Tdef(\espiral,{ var c=0,espiralillo,n=48; var tiempo=Prand([Pseq([0.125,0.25,0.5,0.75,1].mirror2/2,inf), Pseq([0.125,0.25,0.5,0.75,1].scramble/2,inf), Pseq([0.125,0.25,0.5,0.75,1].pyramid/2,inf), Pseq([0.125,0.25,0.5,0.75,1].stutter/2,inf) ].pyramid).asStream; ~master=Synth(\master); inf.do{ c=c+1; m=12;//modulo//12 para una octava, 24 para 2 octavas espiralillo=c%m+(n); espiralillo.postln;//notas en espiral de graves a agudos if(espiralillo==n,{n=n+1},{n=n}); if(n==96,{n=48},{n=n});//regresa a la primer nota cuando llega a 96.midicps ~sinteuno=Synth(\timbreuno); ~sinteuno.set(\nota,espiralillo); tiempo.next.wait; }; }); ); ( Tdef(\espiral2,{ var c=0,espiralillo,n=48; inf.do{ c=c+1; m=12; espiralillo=c%m+(n); espiralillo.postln; if(espiralillo==n,{n=n+1},{n=n}); if(n==96,{n=48},{n=n}); ~sinteuno=Synth(\timbredos); ~sinteuno.set(\nota,espiralillo); 0.125.wait; }; }); ); ); ///* ( Tdef(\espiral).play; Tdef(\espiral2).play; ); ( Tdef(\espiral).stop; Tdef(\espiral2).stop; ) s.record s.stopRecording