1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
IEnvGen : UGen { // envelope index generator
*ar { arg envelope, index, mul = 1, add = 0;
envelope = this.convertEnv(envelope);
^this.multiNewList(['audio', index, envelope]).madd(mul, add)
}
*kr { arg envelope, index, mul = 1, add = 0;
envelope = this.convertEnv(envelope);
^this.multiNewList(['control', index, envelope]).madd(mul, add)
}
*convertEnv { arg env;
if(env.isSequenceableCollection) { ^env.reference }; // raw envelope data
^env.asArrayForInterpolation.collect(_.reference).unbubble
}
*new1 { arg rate, index, envArray;
^super.new.rate_(rate).addToSynth.init([index] ++ envArray.dereference)
}
init { arg theInputs;
// store the inputs as an array
inputs = theInputs;
}
argNamesInputsOffset { ^2 }
}
|