4.1. Default Channel Configuration problems


#1

1. When i open my plugin in the Plugin Host example, the plugin opens with the maximum number of I/O channels (Like other some hosts also). Even when the default channel-configuration is stereo/stereo. Is this intended? 

Does the default configuration has any influence when the setPreferredChannel-Configurations allows higher channel numbers in this situation?

(A lot of hosts behave so)

2. If I allow higher channel numbers  than 8/8 channels - for example 20/20  

then AU-Version jumps back to default (2/2) (in Plugin-Host) while VST uses 8/8 (It seems to be the maximum)

 

 


#2

I need higher channel numbers than 8/8 for my special purpose plugins

EDIT: I just spend my evening thinking about the setPreferredBusArrangement()-method. I want to understand it, but it feels kind of strange. There are two complete different ways how hosts sets the channel-configuration,  or getting possible channel-configuration layouts. And it seems setPreferredBusArrangement() is the attempt to satisfy both requirements, which makes it somehow weird. 


#3

I need higher channel numbers than 8/8 for my special purpose plugins

I think you'll have the best results with VST3 here. AU itself supports these configurations (check the output of auval for example or use AULab), however, Logic Pro does not currently support many formats and I think you are out of luck with anything more than 8 channels. You'll have mixed results with VST2.

Unfortunately, VST2 needs to present the maximum number of channels as it's default layout to be compatible with many DAWs (as you mention, many other plug-ins do this as well). I'm trying to add a list of DAWs to the VST2 wrapper which are known to work without choosing the maximum number of channels. Currently, I've only added ableton live to this list.

 

There are two complete different ways how hosts sets the channel-configuration,  or getting possible channel-configuration layouts. And it seems setPreferredBusArrangement() is the attempt to satisfy both requirements, which makes it somehow weird. 

For VST3 and most of AU, I just pass down the setBusArrangement callback from the DAW to setPreferredBusArrangement of the AudioProcessor. AU has additional callbacks which want to know possible layouts beforehand. I think this should work quite well. 


#4

I have realized plugins with higher channel-number with VST2 and there are working fine in PluginHost, and other DAWs like CYCLING ‘74 MAX (if remember correctly) in JUCE 4.0

Costumers using this plugins right now for special purpose high channel-number surround processing, and i need make updates compatible with it.

I think the limitation is due the fact (if i've analyzed it correctly)  that "markDiscreteLayoutsAsSupported" in PluginBusUtilities is false for VST2.

Could this just be true?

Or make it customizable through optional callbacks: void AudioProcessor::supportsHighChannelNumbers() { return true }

Also the number of 9 in findAllCompatibleLayoutsForBus must be increased.

I'm trying to add a list of DAWs to the VST2 wrapper which are known to work without choosing the maximum number of channels

Please Please Please make it configurable, don't make it hard-wired!! The more configuration-callbacks the better ( all optional of course )

Why not add a  to AudioProcessor

virtual AudioProcessor::getDefaultChannelLayout(ChannelLayoutWhatever& l)
{
  //Pseudo Code

  if (Ableton)
  ​{
     l =  stereo, stereo
  }
};

virtual AudioProcessor::supportsHighChannelNumbers() { return false }

So if there is something, i can override these methods, and i don't have to create a topic anytime! ;-)

 

 

 


#5

OK this is definitely a bug. If you are not using aux or sidechains then JUCE should behave just as it behaved in JUCE 4.0. What are the exact channel configurations you want support? Only 20/20? Or everything up to 20/20? Does the input and output need to have the same number of channels?


#6

Thanks, up to 20, 20 would be cool, currently i use 16/16

Does the input and output need to have the same number of channels?

Yes, but this maybe is not always the case


#7

My plugin works fine with

#ifndef  JucePlugin_MaxNumInputChannels
 #define JucePlugin_MaxNumInputChannels    2
#endif
#ifndef  JucePlugin_MaxNumOutputChannels
 #define JucePlugin_MaxNumOutputChannels   32
#endif
#ifndef  JucePlugin_PreferredChannelConfigurations
 #define JucePlugin_PreferredChannelConfigurations  {1, 32}, {2, 32}
#endif
#ifndef  JucePlugin_IsSynth
 #define JucePlugin_IsSynth                1
#endif

in everything except AU with JUCE 4.0 (with my AAX and RTAS mods). I believe Logic has a max of 8 stereo outputs allowed.

I can’t get it to work in JUCE 4.1

Rail


#8

I'll have a look at this tomorrow.


#9

Sorry this is taking a bit longer than expected. I've done all the changes which fixes the above bugs. The changes will also give you a bit more fine-grained control over the behaviour of VST-2 plug-ins. Still needs a bit more testing in a few more DAWs until I'm confident in releasing this.


#10

Hi Fabian,

i already wrote in the thread about the ultimate channel layout guide.

Please raise the limit to at least {32,32}. We have been working with this with anteriour versions of juce without any problem in Reaper.

If possible, {64,64} would be highly appreciated. And everything below it of course...

:-)

Thomas


#11

Hi Thomas,

I have a patch that would allow you to specify the max number of channels in your AudioProcessor. However, before I merge this in, I'd like to do a bit more testing on various platforms/DAWs. Sorry for the delay.

Fabian


#12

Hi Fabian,

 

thanks. When can we expect to see the fix please? :)

 

Thomas


#13

Sorry for the delay. But all I can say is that this is coming very soon. This will be a larger fix addressing multiple issues.


#14

Is this fixed with 4.2?


#15

See the following post:

http://forum.juce.com/t/the-ultimate-juce-4-1-multibus-guide/16755/36?u=fabian