Cubase seems to always use the default channel count for sidechains no matter what the input/output configuration is.
For example, in a plugin that supports {1->1, 2->2}, we want the sidechain to match the input channel count (i.e. mono for 1->1, stereo for 2->2). However, Cubase never gives us the opportunity to do this and instead checks a very sparse set of options in isBusesLayoutSupported
.
If we specify {1, 1, 1} (in, out, sidechain) as the default during construction, it will try the following when loaded on a stereo track:
channel config: {2, 2, 1} - rejected because we want stereo sidechain
channel config: {1, 1, 1} - not ideal, track is stereo!
If we specify {2, 2, 2} (in, out, sidechain) as the default, it will try the following when loaded on a mono track:
channel config: {1, 1, 2} - rejected because we want mono sidechain
channel config: {2, 2, 2} - not ideal, track is mono!
These are both wrong in different ways. Unlike other hosts (e.g. Pro Tools) Cubase can support both stereo and mono sidechains, so we suspect this is a JUCE wrapper issue. Other plugins (like FabFilter) are able to support {1, 1, 1} and {2, 2, 2} in Cubase.
Using latest JUCE master, Cubase 10.5, VST 3.6.14 SDK