I’ve recently encountered what seems to be a bug (?) using VST3 in REAPER, where my surround and rear channels are flipped.
I am interpreting my buffer in processBlock() according to AudioChannelSet::getChannelIndexForType() and can confirm in the debugger that I am writing to what should be the leftSurroundSide according to this API (channel index 4), but in REAPER it ultimately is output to to channel 7 instead of the expected channel 5.
The latest bus layouts reported from processorLayoutsChanged() are:
Bus: Output
Description: 7.1 Surround
SpeakerArrangement: L R C Lfe Lss Rss Lrs Rrs
[0]: Left
[1]: Right
[2]: Centre
[3]: LFE
[4]: Left Surround Side
[5]: Right Surround Side
[6]: Left Surround Rear
[7]: Right Surround Rear
Bus: Input
Description: 7.1 Surround
SpeakerArrangement: L R C Lfe Lss Rss Lrs Rrs
[0]: Left
[1]: Right
[2]: Centre
[3]: LFE
[4]: Left Surround Side
[5]: Right Surround Side
[6]: Left Surround Rear
[7]: Right Surround Rear
Is this a REAPER bug, a JUCE issue, or something I’m misunderstanding?
At least, I noticed that the mapping between VST3’s SpeakerArrangement and JUCE’s AudioChannelSet also flips the sides/rears in juce_VST3Common.h. I don’t know if its something going wrong there or a REAPER specific issue. At the moment, I don’t have access to another VST3 host supporting these formats that I can easily test with.
