Hello,
I have a bit of a general question about how plugin busses work, after reviewing this article many times.
I have an audio plugin that I have been building for VST3, AAX, and AU formats. Previously, my plugin just had one input and one output bus in my constructor. I have realized that I will require 4 stereo aux outputs in addition to the main output that ideally needs to support stereo, and 5.1 and 7.1 (a user can select a format to output for supporting the output of surround systems). I’ve found that when I set it up this way in the AudioProcessor constructor and I am able to see the different bus names in ProTools.
.withOutput("Main Output", juce::AudioChannelSet::stereo(), true) // ideally, also can output surround formats 5.1 and 7.1
.withOutput("Aux 1 Output", juce::AudioChannelSet::stereo(), true)
.withOutput("Aux 2 Output", juce::AudioChannelSet::stereo(), true)
.withOutput("Aux 3 Output", juce::AudioChannelSet::stereo(), true)
.withOutput("Aux 4 Output", juce::AudioChannelSet::stereo(), true)
However, I’m a bit confused what to do after this. Within the ProcessBlock, would I write the audio that I want to go to the aux buses directly using getBusBuffer() to get the audio buffer for the aux buses, then getWritePointer() to write to the specific left and right channels of reach of the aux buses?
Since we are supposed to be using the buffer parameter passed into our implementation of processBlock() to write out our processed data, which bus would this audio be coming out of? This might be a naive question, but any explanation is helpful on how writing to the buffer relates (if it does at all) to the buses we defined in the audio processor constructor!
Second question- From my reading, it sounds like setCurrentLayout is called when the DAW instances a track with a certain layout (eg- 5.1 aux track in Protools) or resizes the width of the track with the plugin instanced on it (which I believe occurs in a DAW like Reaper, but I’m not 100%). Is this an accurate statement?
