////////////////////////////////////

(
SynthDef(\sustractiva_perc,{|out=0,cutoff=8000,w=0.001,gate=1|
   var sen,env;
      sen=Mix(BPF.ar(BrownNoise.ar(1),Array.geom(10,1000,1.12),w));
                  env=EnvGen.kr(Env.perc(0,0.5),Impulse.kr(3.5),doneAction:2);
          Out.ar(out,sen*env)
      }).send(s)
      )
      
      a=Synth(\sustractiva_perc)
      a.set(\gate,0)
      
//////////////////////////////////////

(
SynthDef(\sustractiva_legato,{|out=0,cutoff=8000,w=0.001,gate=1|
   var sen,env;
      sen=Mix(BPF.ar(BrownNoise.ar(1),Array.geom(10,700,1.12),w));
                  env=EnvGen.kr(Env.asr(1,1,1),gate,doneAction:2);
          Out.ar(out,sen*env)
      }).send(s)
      )
      
 b=Synth(\sustractiva_legato)
 b.set(\gate,0)
 
//////////////////////////////////////

(
SynthDef(\sustractiva_legato2,{|out=0,cutoff=8000,w=0.001,gate=1|
   var sen,env;
      sen=Mix(BPF.ar(BrownNoise.ar(1),cutoff,w));
                  env=EnvGen.kr(Env.asr(1,1,1),gate,doneAction:2);
          Out.ar(out,sen*env)
      }).send(s)
      )

 c=Synth(\sustractiva_legato2)
 c.set(\cutoff,5000)
 c.set(\gate,0)