I thought I had finally managed to make multiple output buses work properly, and it does work in most major DAWs I’ve tested: Reason, Live, Reaper, Pro Tools., Bitwig and Logic Pro. They all behave as I would expect.
But Cubase says that my plugin only supports stereo.
Here’s the code that I added to my AudioProcessor:
MyAudioProcessor::MyAudioProcessor()
: AudioProcessor(BusesProperties()
.withInput("Main Input", AudioChannelSet::stereo(), false)
.withOutput("Main", AudioChannelSet::stereo(), true)
.withOutput("Bus 1", AudioChannelSet::stereo(), true)
.withOutput("Bus 2", AudioChannelSet::stereo(), true)
.withOutput("Bus 3", AudioChannelSet::stereo(), true)
.withOutput("Bus 4", AudioChannelSet::stereo(), true)
.withOutput("Bus 5", AudioChannelSet::stereo(), true)
.withOutput("Bus 6", AudioChannelSet::stereo(), true))
...
bool MyAudioProcessor::isBusesLayoutSupported(const BusesLayout &layout) const
{
if (layout.getMainOutputChannelSet() == AudioChannelSet::disabled()) {
return false;
}
if (layout.getMainOutputChannelSet() != AudioChannelSet::stereo()) {
return false;
}
if (layout.inputBuses.size() > 1) {
return false;
}
int numActiveOutputBuses = 0;
for (auto bus : layout.outputBuses) {
if (bus != AudioChannelSet::stereo() && (! bus.isDisabled())) {
return false;
}
if (! bus.isDisabled()) {
numActiveOutputBuses++;
}
}
return numActiveOutputBuses >= 1 && numActiveOutputBuses <= 7;
}
Any obvious mistakes that would make this not work as expected in Cubase?