Issues with the multi-bus support


#1

Hello guys, hello @fabian !

I’m working on a plug-in where I want to support sidechain inputs mostly in Logic Pro X, but also in other DAWs. Following the tutorials and the information available on the forums + documentation + examples, I got that I need to do three things to enable multi-bus support :

  • Let the associated output TextEditor in the Projucer be empty
  • Use another constructor for the AudioProcessor in the PluginProcessor.cpp file, to set the default bus configuration I guess
  • Fill the content of the function isBusesLayoutSupported to tell the DAWs what are the configuration I would like to support.

So, in the constructor, I added a stereo main input, a stereo sidechain input, and a stereo output. Then in the isBusesLayoutSupported, I provided variables which return the number of main input channels, sidechain input channels, and main output channels, so I could easily with a serie of if sentences return true in the following cases :

  • Mono main input + mono main output + no sidechain input
  • Mono main input + mono main output + mono sidechain input
  • Stereo main input + stereo main output + no sidechain input
  • Stereo main input + stereo main output + mono sidechain input
  • Stereo main input + stereo main output + stereo sidechain input

In Reaper everything is working as expected, but in Logic Pro X I have an issue. In the processing, I want nothing to happen as much as possible when the signal in the sidechain input is null, or if there is no sidechain input at all.

So, if I choose “none” in the sidechain combobox that appears in Logic Pro X when the plug-in is loaded, I expect either the sidechain input to have 0 channels, or to have only null samples if it exists. However, in that specific case the function getBusBuffer(buffer, true, 1).getNumChannels() returns 2, and its content is the same than the main input buffer, which is absolutely not what I want.

My questions are the following : how do I detect in Logic Pro X that the sidechain combobox value is none ? And did I do something wrong in the code configuration of the multi-bus behaviour ?

Thanks in advance ! :wink:

Note : I discovered that in the last versions of Logic Pro X, you need to enable “pro configuration” or something somewhere in the application settings if you want to see that sidechain combobox on the plug-ins that support it !


#2

Hi @IvanC, you are doing everything exactly right. I like your explanation.

Unfortunately, this is how Logic does sidechain processing and nothing that JUCE can do anything about: if you don’t select a sidechain, then Logic will use the track on which you have loaded the plug-in as its’ sidechain.

See here for more information:


#3

Hello Fabian !

I see, thanks for the feedback, detecting this sidechain input set to none without breaking the case of the sidechain = main input seems to be an impossible task, until Apple provides something for solving the issue…