Efforts making use/compatible of Nuendo ambisonic bus


I am trying to make my plugin compatible with the new ambisonic bus support on Nuendo 8.2.

  1. I have concluded that Nuendo is not calling the isBusesLayoutSupported method, and therefore the plugin can’t report the list of favorite bus layouts to the DAW. I just check this by dumping some values to the Xcode console, and all other DAW’s I do test will call this method and dump corresponding values to the console but Nuendo does not ?. My list looks like this;

bool layme = (layouts.getMainOutputChannelSet() == AudioChannelSet::stereo() || layouts.getMainOutputChannelSet() == AudioChannelSet::quadraphonic() || layouts.getMainOutputChannelSet() == AudioChannelSet::ambisonic(1) || layouts.getMainOutputChannelSet() == AudioChannelSet::ambisonic(3) || layouts.getMainOutputChannelSet() == AudioChannelSet::create6point0Music() || layouts.getMainOutputChannelSet() == AudioChannelSet::discreteChannels(16) );

  1. I can make the ambisonic bus of Nuendo running with the plugin only if I define the Audiochannelset::ambisonic() as the Mainbusoutput at the constructor; likewise for example; .withOutput ("AMBOutput", AudioChannelSet::ambisonic(3), true)

I cannot do that in general, as DAW’s which won’t support 16channels ( for instance Logic X ) reports AU validation error, as it expects for example having a stereo Audiochannelset defined as the MainOutputBus at the constructor.

Any experiences with Nuendo or as such are welcome…

I have contacted Steinberg about this issue, will report if anything arrives…

I have defined this static function to save the day. However still cannot make Nuendo configure itself according to available multiple output busses, I can define only one, which is the Ambisonic 3rd order in this case, since the buseslayoutsupported method is not called.

static BusesProperties getmyLayout()
        PluginHostType htype;
        if (htype.isNuendo()){
            return BusesProperties().withOutput ("Output", AudioChannelSet::ambisonic(3), true);
        } else if (htype.isReaper()){
            return BusesProperties().withOutput ("Output", AudioChannelSet::discreteChannels(16), true);
        } else {
            return BusesProperties().withOutput ("Output", AudioChannelSet::stereo(), true)
            .withOutput ("Quad", AudioChannelSet::quadraphonic(), true).withOutput ("Hexa", AudioChannelSet::create6point0Music(), true);