///Sobre una abtracsción de Pd...

Lo Initutolo... "No me salio el ShepardTony...jijuau"	

	///Counter modulo 10000///	
		
	(~counter= 10000;
	 
	Tdef(\counter1,{
		 inf.do{ ~counter % 10000;
			  ~counter = ~counter -2;
			if (~counter < 0, {~counter = 10000});
			1.do{~counter;
				0.03.wait
			}
			}
		
		})	  
		)
		Tdef(\counter1).play;
	
s.reboot;
(
SynthDef(\shepard1,{|gate 1, out 0 amp 0.5 freq  pan 0|
	var env, senal, senal2;
	
     senal= SinOsc.ar(freq, 0, amp);
	 env= EnvGen.kr(Env.asr(0.1, 1, 1), gate, doneAction:2);
	
		   Out.ar(out, Pan2.ar(senal2 * env, pan))	
	}).send(s);
	)
     x=Synth(\shepard1, addAction:\addToHead);
     
	)
	(
	Tdef(\bajale,{ Tdef(\counter1).play;

            inf.do{
				1.do{x.set(\freq, (((~counter.postln % 10000 * 0.0002 -1) * 120) + 60).midicps.postln);
					//if()
				0.001.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 500 * 0.0002 -1) * 120) + 60).midicps);
				0.002.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 1000 * 0.0002 -1) * 120) + 60).midicps);
				0.003.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 1500 * 0.0002 -1) * 120) + 60).midicps);
				0.004.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 2000 * 0.0002 -1) * 120) + 60).midicps);
				0.005.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 2500 * 0.0002 -1) * 120) + 60).midicps);
				0.006.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 3000 * 0.0002 -1) * 120) + 60).midicps);
				0.007.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 3500 * 0.0002 -1) * 120) + 60).midicps);
				0.008.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 4000 * 0.0002 -1) * 120) + 60).midicps);
				0.009.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 4500 * 0.0002 -1) * 120) + 60).midicps);
				0.001.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 5000 * 0.0002 -1) * 120) + 60).midicps);
				0.0011.wait;};
				
				1.do{x.set(\freq, (((~counter % 10000 + 5500 * 0.0002 -1) * 120) + 60).midicps);
				0.0012.wait;};					
		}	
	})
		)
		Tdef(\bajale).play
		Tdef(\bajale).stop

(((~counter + 1000 * 0.0002) -1 * 120) + 60).midicps

	
		s.prepareForRecord;
		s.record;
		s.stop;