1 /////////// query whether some UGen can possibly free its synth from within
10 +SequenceableCollection {
12 ^this.any({ arg item; item.canFreeSynth })
19 ^(inputs.at(4).isNumber.not or: {inputs.at(4) > 1}) and: //doneAction
20 { // it can happen that the gate is 1 and the envelope runs out
21 inputs.at(0).isNumber.not or: //variable gate
22 { inputs.at(7) == -99 } //or self releasing envelope
31 ^(inputs.at(4).isNumber.not or: { inputs.at(4) > 1 }) and: { inputs.at(0).isNumber.not }
35 canFreeSynth { ^inputs.at(3).isNumber.not or: { inputs.at(3) > 1 } }
38 canFreeSynth { ^inputs.at(3).isNumber.not or: { inputs.at(3) > 1 } }
42 canFreeSynth { ^true }
46 canFreeSynth { ^true }
50 canFreeSynth { ^inputs.at(3).isNumber.not or: { inputs.at(3) > 1 } }
54 canFreeSynth { ^inputs.at(2).isNumber.not or: { inputs.at(2) > 1 } }
58 canFreeSynth { ^inputs.at(9).isNumber.not or: { inputs.at(9) > 1 } }
62 canFreeSynth { ^children.canFreeSynth }
63 canReleaseSynth { ^this.hasGateControl and: { this.canFreeSynth } }
65 if(allControlNames.isNil) { ^false };
66 ^allControlNames.any { arg cn;
67 cn.notNil and: { cn.name == 'gate' } and: { cn.rate !== 'scalar' }