FreeSelf when triggered, free enclosing synth


Inherits from: Object : AbstractFunction : UGen


free enclosing synth when input signal crosses from non-positive to positive

FreeSelf.kr(in)  in - input signal


see also: PauseSelf


// example

(

SynthDef(\freeSelf_help, { |out, t_trig|

FreeSelf.kr(t_trig);

Out.ar(out, SinOsc.ar(400,0,0.2));

}).send(s);

)

a = Synth(\freeSelf_help);

a.set(\t_trig, 1);


// a single impulse SynthDef:

(

SynthDef(\dirac, { |out, amp=0.1|

var u = Impulse.ar(0);

FreeSelf.kr(u);

Out.ar(out, u * amp); 

// multiply by amp after using for release, so amp = 0 

// doesn't cause synth buildup.

}).send(s);

)

(

Task {

loop({

fork {

exprand(34, 156).do {|i|

i = i + 1;

Synth.grain(\dirac, [\amp, 1 / i]);

(0.006 * i).wait;

};

};

1.wait;

})

} .play;

)