Hi folks.
I am not sure if this is a bug report, a feature request, or neither, and over in the surge community we can't decide either, so I've decided to put it here and see what you think. It regards the Surge VST3. To test these features you would want to be running the surge nightly from
https://surge-synthesizer.github.io/
Surge has a capability to process audio. In the AU in Logic this shows up as a side chain. I recently (as in last night) corrected the VST3 so the input channel was on bus kAux in the VST3 API, and now Cubase also sees it as a side chain. Great. The VST3 API is pretty clear actually that the kAux is how synth instruments get input; and a mix of kMain and kAux is how effects get input and sidechain. Since Surge is an instrument using kAux seems right.
This works all fine in Reaper also, but with a bit of a 'but'. That's the point of this post!
So first things first. If I run the VST3 validator from vst3sdk I see this
```
Class Info 0:
name = Surge
category = Audio Module Class
...
[Scan Buses]
Info: ===Scan Buses ====================================
Info: => Audio Buses: [1 In(s) => 1 Out(s)]
Info: In [0]: "Stereo In" (Aux-Default Active)
Info: Out[0]: "Stereo Out" (Main-Default Active)
Info: => Event Buses: [1 In(s) => 0 Out(s)]
Info: In [0]: "MIDI In" (Main-Default Active)
[Succeeded]
```
OK fine. Now if I add Surge to a reaper track I get get a track with 2 ins and 2 outs, both named '1/2'. The audio in bound to 1/2. But since it seems reaper routes audio 1/2 to output 1/2 by default absent an effect (and there is no effect here just an instrument) I get a mix of the surge processing and the audio processing.
The fix is to add 2 io ports, route the audio input to channel 3/4 from the side chain bus, bind inputs 3/4 to the surge input,, bind the surge output to 1/2, and then you can side chain the audio in and process it in surge without dropping it. This all makes perfect sense to me.
But the thing which I think is a feature request (but may not be) is for Reaper to automatically set up routing like this when it discovers an aux channel. The VST3 advertises channel 0 as an aux not a main, yet reaper binds it to the main by default.
So I'm imagining a world where I have a reaper channel 2in/2out and I add a surge and it sets up the surge by adding 2 new aux channels. Or put another way, "2 in/2 out" is the topology but those 2 in 2 out aren't coincident as described by the VST3 metadata. So I think the correct default setup for surge on a track is with the 4 reaper tracks as shown.
Of course we can set this up by hand and then everything works fine. But I'm not sure what the right thing is.
Some other members of the surge community think we should engineer surge differently so it is more effect like, but aside from that being not how the VST3 API works, it would also break Cubase.
And if nothing changes in Reaper we can easily document how all this works.
But I thought I would throw this item into the Reaper community since it does seem to me that automatically assuming 2in/2out are the *same* 2 when there's a clear bit of bus metadata saying they *aren't* is at least missing an opportunity to help guide a user to a more natural setup.
Maybe? Like I said, we can't decide.
Thanks for your consideration!