I’ve only tested this in Reaper, since its channel layout is so flexible, but: when I create a VST3 plugin with a sidechain bus and load it on a track with N channels, I only get offered bus layouts where the number of sidechain channels is also N. So I can’t create a 6-channel plugin with a stereo sidechain, for instance. Does anybody know whether this is a VST3 thing or rather a Reaper peculiarity?
Yeah that is strange. It seems to work in most other DAWs I just tested: Cubase, Studio One, Bitwig, … You can force Reaper to accept a sidechain with a different number of channels as the main bus by limiting your main and sidebus to a single layout. For example, in the examples/PluginSamples/NoiseGate
, do the following:
class NoiseGate : public AudioProcessor
{
public:
//==============================================================================
//==============================================================================
NoiseGate()
: AudioProcessor (BusesProperties().withInput ("Input", AudioChannelSet::stereo())
.withOutput ("Output", AudioChannelSet::stereo())
.withInput ("Sidechain", AudioChannelSet::mono()))
{
addParameter (threshold = new AudioParameterFloat ("threshold", "Threshold", 0.0f, 1.0f, 0.5f));
addParameter (alpha = new AudioParameterFloat ("alpha", "Alpha", 0.0f, 1.0f, 0.8f));
}
~NoiseGate() {}
//==============================================================================
bool isBusesLayoutSupported (const BusesLayout& layouts) const override
{
if (layouts.getMainInputChannels() != 2)
return false;
// the sidechain can take any layout, the main bus needs to be the same on the input and output
return (layouts.getMainInputChannelSet() == layouts.getMainOutputChannelSet() &&
(layouts.getNumChannels (true, 1) < 2) &&
(! layouts.getMainInputChannelSet().isDisabled()));
}
2 Likes