it’s not clean, but this fixes it for cubase making my synth work again and keeping all the output channels enabled and functioning (not suffering the mute problem):
bool getSpeakerArrangement (VstSpeakerArrangement** pluginInput, VstSpeakerArrangement** pluginOutput) override
{
*pluginInput = 0;
*pluginOutput = 0;
if (! AudioEffectX::allocateArrangement (pluginInput, busUtils.findTotalNumChannels (true)))
return false;
if (! AudioEffectX::allocateArrangement (pluginOutput, busUtils.findTotalNumChannels (false)))
{
AudioEffectX::deallocateArrangement (pluginInput);
*pluginInput = 0;
return false;
}
if (pluginHasSidechainsOrAuxs())
{
if ((JucePlugin_IsSynth) != 0 && PluginHostType().isCubase7orLater())
return false;
int numIns = busUtils.findTotalNumChannels (true);
int numOuts = busUtils.findTotalNumChannels (false);
AudioChannelSet layout = AudioChannelSet::canonicalChannelSet (numIns);
SpeakerMappings::channelSetToVstArrangement (layout, **pluginInput);
layout = AudioChannelSet::canonicalChannelSet (numOuts);
SpeakerMappings::channelSetToVstArrangement (layout, **pluginOutput);
}
else
{
SpeakerMappings::channelSetToVstArrangement (busUtils.getChannelSet (true, 0), **pluginInput);
SpeakerMappings::channelSetToVstArrangement (busUtils.getChannelSet (false, 0), **pluginOutput);
}
return true;
}
obviously this needs more testing, but it’s a starting point. food for thoughts.