Issues with sidechain channel configuration in VST3 / Cubase

We’re getting more customer support requests about this now. We’ve tried the suggested const_cast workaround above but it seems to cause some other issues/instability generally.

Can someone at JUCE please look into this?

1 Like

Any news on that?

Is there yet a way to handle this correctly? Every time I see some major fix regarding bus / channel configs I check if this has changed, but it still hasn’t. This:

bool AudioProcessor::isBusesLayoutSupported (const BusesLayout& layouts) const
{
    auto in{ layouts.getChannelSet (true, 0) },
         sc{ layouts.getChannelSet (true, 1) },
         out{ layouts.getChannelSet (false, 0) };

    return (in == juce::AudioChannelSet::mono() || in == juce::AudioChannelSet::stereo())
        && in == out && (sc == in || sc == juce::AudioChannelSet::disabled());
}

still makes Cubase create a stereo plugin on a mono track.

Commit f370edc on the develop branch is an attempt at implementing @ygrabit’s suggestions. The example that @goodhertz mentions now loads correctly in Cubase while still working as expected in other major DAWs (Live, Studio One, etc.).

3 Likes

Works here too. Thanks!

This commit breaks Reaper automatic VTS3 bus channel count.

I’ll have a look…

Ok, in case when there are more stereo outputs, with the default implementation of isBusesLayoutSupported no longer works as it did until now. Now I looked at the MultiOutSynth demo and it works ok with such new implementation.

Hmmm, I’m getting the same behaviour before and after the JUCE change regarding Reaper’s automatic VST3 bus channel count when I don’t override isBusesLayoutSupported.

I think Reaper’s (and JUCE’s) behaviour is correct here. If you don’t restrict which channel layouts each bus can have (by choosing not to override isBusesLayoutSupported) then Reaper is free to choose the same number of bus channels as there are track channels.

What do you think?

1 Like

Hmmm but the MultiOutSynthPlugin now asserts on the latest develop when isBusesLayoutSupported is not removed.

Investigating…

Yes, you are right, the channel layout must be specified for each bus.

It doesn’t assert here, but I’m on commits from Oct 14.

1 Like

The MultiOutSynthPlugin example code no longer asserts with commit e12e0bb on the develop branch.

1 Like