bool spect::setSpeakerArrangement (VstSpeakerArrangement* pluginInput, VstSpeakerArrangement* pluginOutput)
{
setSpeaker = true;
if (pluginInput->numChannels == 1 && pluginOutput->numChannels == 1)
channelMode = kMonoMode;
if (pluginInput->numChannels == 2 && pluginOutput->numChannels == 2)
channelMode = kStereoMode;
return true;
}
// and if that isn't called (setSpeaker == false), i do this in my process call
if(setSpeaker == false)
{
if (inputs[1] == inputs[0] || inputs[1] == NULL)
channelMode = kMonoMode;
else
channelMode = kStereoMode;
The only reason I use setSpeakerArrangement is that Cubase on Windows calls it - it really doesn't need to be supported inside of Symbiosis I don't think...
auval reports 1x1, 2x2 and 1x2... is there any way i can disable 1x2?
- - - - -
tom erbe ~ t...@ucsd.edu ~ studio director - computer music ~ ucsd department of music
The advantage to use mono for me is that most of my 17 plugs are pretty CPU hungry. My other consideration (since I have 17 plugins that all run under Mac/Win, VST/AU/RTAS) is to not change my current scheme too much. That much testing for a single developer is daunting.
But I took your advice and modified my channel detection, and this seems to work fine under DP7,Live,Logic,Reaper,PT,Peak (enough testing for this afternoon!)
if(setSpeaker == false)
{
if (outputs[1] == outputs[0] || outputs[1] == NULL)
channelMode = kMonoMode;
else
{
channelMode = kStereoMode;
if(inputs[1] == inputs[0] || inputs[1] == NULL)
in2 = in1;
}
}
This will automatically deal with mono to stereo using stereo processing.
Best, Tom
This is the most pressing issue for Symbiosis. A lot of people think
Symbiosis is buggy when for example a stereo effect is not available
on a mono track in Logic. The reason for this is that Logic itself
will never do mono <-> stereo conversions (unlike some other hosts
like Ableton Live). Instead the plug-in is informed of the situation
and is requested to handle it's own conversion.
Afaik in the VST SDK there are no requests like that. A VST plug-in is
always expected to receive input on all its input buffers and generate
output on all its output buffers. So the Symbiosis design today
explicitly denies any I/O configuration but the one implemented by the
VST plug-in.
To make things more complicated, Logic 8 and onwards groups input and
output into busses (a part of the AU standard that was ignored from
the beginning). Channels within busses are for mono, stereo or
surround formats. Extra outputs, side-chains etc are implemented as
multiple busses.
| /* |
| Instruments may have a variable number of channels on it's output buses if we return an "unsupported" error |
| on kAudioUnitProperty_SupportedNumChannels. Effects need to support this though (or they will be required to |
| take any number of inputs -> any number of outputs), which also means effects need the same number of |
| channels on all output buses. This is simply a limitation in the AU design. Not much we can do about it. |
| According to Apple, this choice of design was made for historical reasons. |
| |
| Furthermore, Logic 7 (or older) doesn't support a mixture of mono and stereo on instruments either. |
| */ |
--
You received this message because you are subscribed to the Google Groups "Symbiosis AU VST" group.
To unsubscribe from this group and stop receiving emails from it, send an email to symbiosis-au-v...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
As far as I recall (but I need to check on this when I have more time), we can't detect which buses Logic requires output on. (Unlike in Logic 7 where, as I said, all outputs where crammed into a single bus.).