I’m trying to create a plugin with a side chain input. My main bus should be stereo or mono and my sidechain input should be mono or none.
My code looks like this:
Constructor:
busArrangement.inputBuses.clear();
busArrangement.inputBuses.add ({"Input", AudioChannelSet::stereo()});
busArrangement.inputBuses.add ({"Sidechain", AudioChannelSet::mono()});
busArrangement.outputBuses.clear();
busArrangement.outputBuses.add (AudioProcessorBus ("Output", AudioChannelSet::stereo()));
setPreferredBusArrangement:
const int numChannels = preferredSet.size();
if (busIndex == 0)
{
// Mono or stereo
if (numChannels > 2) return false;
// inputs must equal outputs
if (! AudioProcessor::setPreferredBusArrangement (! isInputBus, busIndex, preferredSet))
return false;
}
else if (busIndex == 1)
{
// Sidechain must be mono
if (numChannels > 1) return false;
}
return AudioProcessor::setPreferredBusArrangement (isInputBus, busIndex, preferredSet);
Is this correct?
In my host I’m getting an assert:
// the processor may not support this arrangement at all
jassert (newNumIns == getTotalNumInputChannels() && newNumOuts == getTotalNumOutputChannels());
juce_AudioProcessor.cpp: 133
getTotalNumInputChannels() is 2, newNumIns is 3
