Channel configurations for VST3

Hey Everyone,

We are currently having a problem with channel configurations in VST3. In Projucer, we have the following:
JucePlugin_PreferredChannelConfigurations {1, 2}, {2, 2}, {1, 4}, {2, 4}, {1,9}, {2,9}, {1, 16}, {2, 16}

This works for AU and VST, that is in Reaper we get {2,16}, if we open up 16 channels. But VST3 ignores all channel configurations and always goes for the second one {2,2}. Any thoughts, what might be causing this? (The layout/Bus structure in VST3 wrapper is just too confusing for us to understand)


I’m not sure this is really a bug. Stepping through the VST3 code in Reaper and Cubase, I can see that both Reaper and Cubase only step through symmetric layouts (i.e. same number of ins and outs).

Maybe having several output buses is more fitting to what you want to do.

Hey Fabian, thanks for the response. Indeed using multibuses seems to be the way to go, are there any examples or proper documentation on this. I just found a couple of forum entries which made me more confused.

To put it more clearly, I have a drop down, where the user can choose different decodings(from stereo to ambisonics to sorround). If I do the following in the constructor of my AudioProcessor:

AudioProcessor(BusesProperties().withInput("Input", AudioChannelSet::stereo()).
                                 withOutput("OutputStereo", AudioChannelSet::stereo()).
                                 withOutput("OutputAmbi", AudioChannelSet::canonicalSet(16)))

VST3 complains that plugin can only be started with discrete channels on startup. But I dont see any entry point to dynamically add buses or change the layout of one the buses.

I think it’s best if you have a look at the examples in JUCE/examples/PluginSample. The surround example may be the best one to look at.

Also, have a look at this video for an introduction to the multibus system:

Ok I just looked at the surround example, but how is this any different from the old channel configs? As far as I see inputs and outputs are still symmetrical, What I really want is a true 2->16 channel config for VST3. The surround example is giving me 16->16

As I said, I think REAPER does not support VST3 asymmetrical layouts. If I debug REAPER and look at what it’s doing it never tries to use an asymmetrical layout. Can you find any other (non JUCE) VST3 plug-in which will load with an asymmetrical layout in Reaper?

Now that I know the nature of your plug-in a bit more, I also don’t think that multiple output buses will make sense for you. I only suggested it as many plug-in developers use 4,6,8,… output channels when they actually want to have multiple stereo output buses. I know that REAPER supports the total number of input channels and output channels over all buses being different, but I don’t think it supports different channels on the main input and output bus.

Ok that makes sense, as far as I know there are no ambisonic plugins who support VST3. So if I understand correctly the way to go is to do the overkill version, where I open up 16 inputs and then ignore all but two channels, but then the question is how would I know if there is a mono file on the track. Since my plugin does two different kinds of processing for mono and stereo files.

Yes I think that might be the only way to do this.

That’s a really good question. Some plug-ins come in different flavours, i.e. there is a mono -> 16 output version and a stereo -> 16 output version.

1 Like

ok managed to get this working with the overkill version for up to 9->9 channels, but for some reason I dont get 16->16 in reaper with vst3, it always goes to a maximum of 9, any ideas?

Sorry to wake up this old thread. Not sure if it’s related, if not i’ll post a new thread.
I’m currently writing a VST plugin (simple one, stereo input, stereo output) which works perfectly on Linux with VST2 (tested on Reaper).
To sum up, it’s a simple implementation of csound API with JUCE texteditor, allowing the user to write some csound code directly in the DAW (so it can be used as an effect, a synthesizer, a midi effect, or even all of it).
I could compile it sucessfully on Windows 10 (VST3 this time), but, testing on Reaper, there is a strange behavior : while input and output seems to be processing successfully, the dry input is still going to the output. The output result seems to be the VST output + dry output… I also tested on Windows with max msp (vst~ object), and it works fine.
I thought it could be related to this because of a particular Reaper support of VST3 ?
For something as simple as a 2ch in, and 2 ch out, what is recommanded in this case ?