@d-healey Hey David, Im doing something wrong here.
The knobs that control the FX work correctly. The Master has no effect at all on anything EXCEPT the linked Saturator knob. All it does is turn it back to 0 instantly.
Can you spot what Im doing wrong here?
//MAIN EFFECTS
const KnobsMax = [1, 1];
//Knobs Being Controlled
const knobs = [];
for (i = 0; i < 4; i++)
{
knobs.push(Content.getComponent("knb" + i));
knobs[i].setControlCallback(onknobControl);
}
//Link Buttons
const btns = [];
for (i = 0; i < 2; i++)
{
btns.push(Content.getComponent("linkbtn" + i));
}
//Linked FX
const var SatLink = Synth.getEffect("Saturator1");
const var ChorLink = Synth.getEffect("Chorus1");
const var PhaseLink = Synth.getEffect("PhaseFX1");
const var BitLink = Synth.getEffect("BitCrusher");
//Linked Knobs Callbacks
inline function onknobControls(component, value)
{
local index = knobs.indexOf(component);
KnobsMax[index] = value;
setSaturator(index, value);
setChorus(index, value);
setPhaser(index, value);
setBitCrusher(index, value);
}
//Master Knob
const MainFXknb = Content.getComponent("MainFXknb");
MainFXknb.setControlCallback(onMainFXknbControl);
inline function onMainFXknbControl(component, value)
{
for(i = 0; i < knobs.length; i++)
{
if(btns[i].getValue())
{
knobs[i].setValue(knobsMax[i] * value);
setSaturator(i, knobsMax[i] * value);
setChorus(i, knobsMax[i] * value);
setPhaser(i, knobsMax[i] * value);
setBitCrusher(i, knobsMax[i] * value);
}
}
}
inline function setSaturator(index, value)
{
SatLink[index].setAttribute(Saturator1[index].WetAmount, value);
}
inline function setChorus(index, value)
{
ChorLink[index].setAttribute(Chorus1[index].Rate, value);
}
inline function setPhaser(index, value)
{
PhaseLink[index].setAttribute(PhaseFX1[index].Mix, value);
}
inline function setBitCrusher(index, value)
{
BitLink[index].setAttribute(BitCrusher[index].Quant, value);
}