Changing input/output channel configuration on UI?

I’m trying to add something to a plug-in that can change the numbers of input or output channels. It’s similar to what ReaSurround (a VST which comes with REAPER) can do in its input/output selection part.

Right now I’m trying to do it by calling setPlayConfigDetails in the plugin editor. It looks like it can setPreferredBusArrangement in the setPlayConfigDetails function successfully, but it cannot really run through the next processBlock call. I’m not sure if I miss anything. Is there something that I forget to set or initialize? Or is it the correct way of doing so? Any pointer would be much appreciated. Thanks!

As I understand it you are not supposed to call setPreferredBusArrangement. You implement this callback and the host will call it with his idea of which configuration is suitable. Your callback can then either reject it returning false or agree by calling the super classes setPreferredBusArrangement.

I don’t use much different DAWs, but I think most of them have the input given by either the material on the track or of the processor before in the chain. In ProTools you usually get a list of possible output configurations which you select when instanciating.

For my understanding, the ReaSound can switch it’s output configuration during lifetime? I think it’s more a feature of the host which instanciates a different configuration on the fly. But I might be wrong with that…

1 Like

I think it’s very unusual for a plug-in to be able to change its own configuration. Normally, the host requests a change of the channel configuration. I don’t think there are many plug-ins/hosts that allow the plug-in to change its own configuration.

In any case JUCE only supports the host requesting a change.