Hmm… I suspect I’m failing to grasp some basics here…
I have an envelope function within a SynthDef, and I seem to be hitting all kinds of errors, when I attempt to pre-scale the args to the function.
// Re-usable envelope function
var env = {
// Input args, 0 - 1 range
arg atk = 0.0, spr = 0.0, dec = 0.75, crv = 0.75;
// Scaled env params
var atkScaled = LinLin.kr(atk, 0, 1, 0, 1000);
var sprScaled = LinLin.kr(spr, 0, 1, 0, 500);
var decScaled = LinLin.kr(dec, 0, 1, 0.01, 3000);
var crvScaled = LinLin.kr(crv, 0, 1, -5, 5);
// Generate envelope
EnvGen.kr(
Env(
levels:[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
times: [atkScaled, sprScaled, 0.0, sprScaled, 0, sprScaled, 0, sprScaled, 0, sprScaled, 0, decScaled],
curve: [-5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, crvScaled]
),
gate: \trigger.tr(0)
);
// End envelope
};
//////////
// BODY //
//////////
// Body pitch envelope
var bPDepthScaled = params[\bPDepth] * 2;
var bPEnv = env.value( \atk, 0, \spr, 0, \dec, params[\bADec], \curve, params[\bPCurve] ) * bPDepthScaled;
I\m sure its something to do with the way I’m using LinLin, but I’m not sure what the problem is.