Page 1 of 1

VST3 HOA Support > 3rd order

Posted: Wed Apr 18, 2018 10:06 am
by olilarkin
If I am not mistaken because VST3 speaker arrangements based on a bit set and it seems that in the Speaker Definitions array you do not want to use the same bit index for multiple things (even though I can't imagine a situation where it would be a problem where you are using ambisonics OR speaker layouts), it is not possible for VST3 plug-ins to support > 4th order channel counts, since you haven't got enough bits left.

Since HOA support is a fairly recent addition, why not correct this in the SDK ASAP, so that kSpeakerACN0 = 0 and we can do 7th order HOA (64 channels) in VST3 plug-ins, like we can with VST2 in Reaper.

Code: Select all

const Speaker kSpeakerACN0  = (Speaker)1 << 20;	///< Ambisonic ACN 0
const Speaker kSpeakerACN1  = (Speaker)1 << 21;	///< Ambisonic ACN 1
const Speaker kSpeakerACN2  = (Speaker)1 << 22;	///< Ambisonic ACN 2
const Speaker kSpeakerACN3  = (Speaker)1 << 23;	///< Ambisonic ACN 3
const Speaker kSpeakerACN4  = (Speaker)1 << 38;	///< Ambisonic ACN 4
const Speaker kSpeakerACN5  = (Speaker)1 << 39;	///< Ambisonic ACN 5
const Speaker kSpeakerACN6  = (Speaker)1 << 40;	///< Ambisonic ACN 6
const Speaker kSpeakerACN7  = (Speaker)1 << 41;	///< Ambisonic ACN 7
const Speaker kSpeakerACN8  = (Speaker)1 << 42;	///< Ambisonic ACN 8
const Speaker kSpeakerACN9  = (Speaker)1 << 43;	///< Ambisonic ACN 9
const Speaker kSpeakerACN10 = (Speaker)1 << 44;	///< Ambisonic ACN 10
const Speaker kSpeakerACN11 = (Speaker)1 << 45;	///< Ambisonic ACN 11
const Speaker kSpeakerACN12 = (Speaker)1 << 46;	///< Ambisonic ACN 12
const Speaker kSpeakerACN13 = (Speaker)1 << 47;	///< Ambisonic ACN 13
const Speaker kSpeakerACN14 = (Speaker)1 << 48;	///< Ambisonic ACN 14
const Speaker kSpeakerACN15 = (Speaker)1 << 49;	///< Ambisonic ACN 15

Re: VST3 HOA Support > 3rd order

Posted: Thu Apr 19, 2018 7:54 am
by ygrabit
Hi
I think we need to adapt a different approach for more than 64 channels, i will make a proposal where the bitset arragement will get a new mode which will define a configuration directly with number of used channels. For now we keep the bitset like it is...and support only 3rd order for HOA...
stay tuned...
Best Regards

Re: VST3 HOA Support > 3rd order

Posted: Fri Apr 20, 2018 9:19 am
by olilarkin
sounds good

Re: VST3 HOA Support > 3rd order

Posted: Fri Dec 14, 2018 9:05 am
by DanielRudrich
ygrabit wrote:Hi
I think we need to adapt a different approach for more than 64 channels, i will make a proposal where the bitset arragement will get a new mode which will define a configuration directly with number of used channels. For now we keep the bitset like it is...and support only 3rd order for HOA...
stay tuned...
Best Regards
Are there any updates? The current situation with the VST3 layouts is not really suitable for inputs/outputs being independent of standard loudspeaker layouts. See this thread: viewtopic.php?f=4&t=624
Especially for Higher Order Ambisonic plug-ins, Wave-field synthesis, multi-source encoders/renderers, loudspeaker decoders for arbitrary number of loudspeakers (e.g. for HOA, VBAP, ...).

I am not really familiar with what's going on within the VST3 standard, but I guess a quick solution would be allowing discrete channels as a default layout, so DAW / plug-in host manufacturers can allow non-standardized loudspeaker layouts.

Re: VST3 HOA Support > 3rd order

Posted: Thu Jan 17, 2019 10:34 am
by DanielRudrich
Opened an issue regarding this matter here: https://github.com/steinbergmedia/vst3sdk/issues/28
With spatial audio technologies like Ambisonics or even WFS, the lack of an arbitrary discrete channel layout is a big problem for plug-in developers, making VST3 not suitable for that. Porting from VST2 is simply not possible at the moment.

Re: VST3 HOA Support > 3rd order

Posted: Fri Feb 14, 2020 7:58 am
by leomccormack
ygrabit wrote:
Thu Apr 19, 2018 7:54 am
Hi
I think we need to adapt a different approach for more than 64 channels, i will make a proposal where the bitset arragement will get a new mode which will define a configuration directly with number of used channels. For now we keep the bitset like it is...and support only 3rd order for HOA...
stay tuned...
Best Regards
Approaching nearly 2 years later... Have there been any developments regarding this issue?