From a JUCE Plugin Host perspective, what is the intended way to negotiate the bus and channel layout of a third-party plugin?
The host application has a preferred layout — let’s say stereo in / stereo out.
When loading a plugin, it should negotiate a layout that is supported by the plugin.
Some plugins can only do mono, while others may require a sidechain bus, etc.
What is the intended flow to handle this?
I see AudioPluginInstance::getNextBestLayoutInLayoutList()
.
Should I populate this with a set of layouts I think might work?
I can’t seem to make this function accept multiple input buses.
Also, if I apply a BusesLayout
to an AudioProcessor
, will it automatically add or remove the required buses?
Or do I have to set up the buses in advance?