diff --git a/src/Bandit.cpp b/src/Bandit.cpp index 36b48d3..19ef647 100644 --- a/src/Bandit.cpp +++ b/src/Bandit.cpp @@ -150,11 +150,11 @@ struct Bandit : Module { const float_4 outHigh = 0.7 * 2 * filterHigh[c / 4][1].process(filterHigh[c / 4][0].process((inHigh + inAll) * highGain)); outputs[HIGH_OUTPUT].setVoltageSimd(outHigh, c); - - mixOutput = outputs[LOW_OUTPUT].isConnected() ? inputs[LOW_RETURN_INPUT].getPolyVoltageSimd(c) : outLow; - mixOutput += outputs[LOW_MID_OUTPUT].isConnected() ? inputs[LOW_MID_RETURN_INPUT].getPolyVoltageSimd(c) : outLowMid; - mixOutput += outputs[HIGH_MID_OUTPUT].isConnected() ? inputs[HIGH_MID_RETURN_INPUT].getPolyVoltageSimd(c) : outHighMid; - mixOutput += outputs[HIGH_OUTPUT].isConnected() ? inputs[HIGH_RETURN_INPUT].getPolyVoltageSimd(c) : outHigh; + // the fx return input is normalled to the fx send output + mixOutput = inputs[LOW_RETURN_INPUT].getNormalPolyVoltageSimd(outLow, c); + mixOutput += inputs[LOW_MID_RETURN_INPUT].getNormalPolyVoltageSimd(outLowMid, c); + mixOutput += inputs[HIGH_MID_RETURN_INPUT].getNormalPolyVoltageSimd(outHighMid, c); + mixOutput += inputs[HIGH_RETURN_INPUT].getNormalPolyVoltageSimd(outHigh, c); mixOutput = mixOutput * clamp(inputs[ALL_CV_INPUT].getNormalPolyVoltageSimd(10.f, c) / 10.f, 0.f, 1.f); outputs[MIX_OUTPUT].setVoltageSimd(mixOutput, c);