3 ^this.multiNew('control', src)
9 this.multiNew('control', in);
16 this.multiNew('control', in);
21 FreeSelfWhenDone : UGen {
23 ^this.multiNew('control', src)
27 PauseSelfWhenDone : UGen {
29 ^this.multiNew('control', src)
35 ^this.multiNew('control', gate, id)
41 ^this.multiNew('control', trig, id)
45 EnvGen : UGen { // envelope generator
46 *ar { arg envelope, gate = 1.0, levelScale = 1.0, levelBias = 0.0, timeScale = 1.0, doneAction = 0;
47 envelope = this.convertEnv(envelope);
48 ^this.multiNewList(['audio', gate, levelScale, levelBias, timeScale, doneAction, envelope])
50 *kr { arg envelope, gate = 1.0, levelScale = 1.0, levelBias = 0.0, timeScale = 1.0, doneAction = 0;
51 envelope = this.convertEnv(envelope);
52 ^this.multiNewList(['control', gate, levelScale, levelBias, timeScale, doneAction, envelope])
54 *convertEnv { arg env;
55 if(env.isSequenceableCollection) { ^env.reference }; // raw envelope data
56 ^env.asMultichannelArray.collect(_.reference).unbubble
58 *new1 { arg rate, gate, levelScale, levelBias, timeScale, doneAction, envArray;
59 ^super.new.rate_(rate).addToSynth.init([gate, levelScale, levelBias, timeScale, doneAction]
60 ++ envArray.dereference);
63 // store the inputs as an array
66 argNamesInputsOffset { ^2 }
70 *kr { arg gate = 1.0, attackTime = 0.01, susLevel = 1.0, releaseTime = 1.0, doneAction = 0;
71 ^this.multiNew('control', gate, attackTime, susLevel, releaseTime, doneAction)