(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Dust.kr(MouseX.kr(0.1,100)),0,Drand([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   //sig=(SinOsc.ar(sig/[2,2.1,2.2],0,0.52)+sig).wrap2(0.094);
				   sig=(SinOsc.ar(sig/[2,3.1,0.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])

(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Dust.kr(MouseX.kr(0.1,100)),0,Drand([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   sig=(SinOsc.ar(sig/[2,2.1,2.2],0,0.52)+sig).wrap2(0.094);
				   //sig=(SinOsc.ar(sig/[2,2.1,2.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])

(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Dust.kr(MouseX.kr(0.1,100)),0,Drand([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   //sig=(SinOsc.ar(sig/Array.rand(4,0.9,2.1),0,0.52)+sig).wrap2(0.094);
				   sig=(SinOsc.ar(sig/[2,3.1,0.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])

(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Dust.kr(MouseX.kr(0.1,[1000,900])),0,Drand([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   //sig=(SinOsc.ar(sig/Array.rand(4,0.9,2.1),0,0.52)+sig).wrap2(0.094);
				   sig=(SinOsc.ar(sig/[2,3.1,0.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])

(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Impulse.kr(MouseX.kr(0.1,[1000,9000])),0,Drand([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   sig=(SinOsc.ar(sig/Array.rand(4,0.9,2.1),0,0.52)+sig).wrap2(0.094);
				   //sig=(SinOsc.ar(sig/[2,3.1,0.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])

(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Impulse.kr(MouseX.kr(0.1,[1000,9000])),0,Dseq([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   sig=(SinOsc.ar(sig/Array.rand(4,0.9,2.1),0,0.52)+sig).wrap2(0.094);
				   //sig=(SinOsc.ar(sig/[2,3.1,0.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])

(
var panel;

panel=SCWindow("nunca", Rect(200,200,200,200)).front;
panel.view.keyDownAction = { arg view, char, modifiers, unicode, keycode;  [char, keycode].postln; 
						switch(keycode.value,6,{(
SynthDef(\mounstro, {|freq=100, dur, gate|
				   var sig, env, amp;
				   amp=Demand.kr(Impulse.kr(MouseX.kr(0.1,[1000,9000])),0,Dseq([1,0],100000));
				   sig=Demand.ar(Impulse.ar(MouseY.kr(1500,10)),0,Dseq([-1,0,1,0],100000));
				   sig=(SinOsc.ar(sig/Array.rand(4,0.9,2.1),0,0.52)+sig).wrap2(0.094);
				   //sig=(SinOsc.ar(sig/[2,3.1,0.2],0,0.52)+sig); 
				   sig=RLPF.ar(sig,Array.exprand(10,60,17000),0.05);
				   sig=Mix(CombN.ar(sig,0.1,0.1,1)*amp)!2;
				   env=EnvGen.kr(Env.asr(0.01,1,0.01),gate, doneAction:2);
				   Out.ar(0,sig*env);
				   }).send(s)
);
~mounstro.set(\gate, 0);
~mounstro=Synth(\mounstro, [\gate, 1])
},
7,{~mounstro.set(\gate, 0);}

							  );};

x)