Multi Channel AU Instrument Problem


#1

I am building a Juce (“instrument”) plug-in with 32 outputs as a:
[list]PC VST
MAC VST
AU
[/list]
The PC and MAC VST versions of the plug-in load fine in Cubase on both MAC and PC – all 32 outputs can be seen in the host.

The AU on the other hand only comes up as having only 2 output channels in Logic 8.

Attempted the following Characteristics.

JucePluginCharacteristics.h

...
#define JucePlugin_MaxNumInputChannels              0
#define JucePlugin_MaxNumOutputChannels             32
/**
AU and RTAS hosts will use this information,
*/
#define JucePlugin_PreferredChannelConfigurations   {0, 2}, { 0, 32 }
#define JucePlugin_IsSynth                          1
...
#define JucePlugin_MaxNumInputChannels              0
#define JucePlugin_MaxNumOutputChannels             32
/**
AU and RTAS hosts will use this information,
*/
#define JucePlugin_PreferredChannelConfigurations  { 0, 32 }

#define JucePlugin_IsSynth                          1

What am I missing?
Thanks.


#2

Well that’s the number that the plugin reports to the host… You can see it used in the SupportedNumChannels method in the wrapper code. Can’t think why logic would ignore it…


#3

So this is what I got so far. The plug-in passes AuVal with 32 outs.

Now I get this warning in AuVal version 1.5 which ships with XCode 3 / Leopard.

WARNING: Source AU supports multi-channel output but does not provide a channel layout.

By the way, the above message does not exist on the older AuVals.


#4

Ok, well I’ve just got hold of 10.5 myself so will be checking out AUVal’s new “features” shortly…


#5

Also, for a test I just tried making a basic “Xcode” Audio Unit Instrument Component example project to see if its even possible to make a 32 output channel inst.

[code]class AUMonotimbralInstrumentBase : public AUInstrumentBase
{
public:
AUMonotimbralInstrumentBase(
ComponentInstance inInstance,
UInt32 numInputs,
UInt32 numOutputs,
UInt32 numGroups = 32,
UInt32 numParts = 0);

virtual ComponentResult		RealTimeStartNote(			SynthGroupElement 			*inGroup, 
														NoteInstanceID 				inNoteInstanceID, 
														UInt32 						inOffsetSampleFrame, 
														const MusicDeviceNoteParams &inParams);

};[/code]

[code]class ThirtyTwoTest : public AUMonotimbralInstrumentBase
{
public:
ThirtyTwoTest(ComponentInstance inComponentInstance);

virtual ComponentResult		Initialize();
virtual ComponentResult		Version() { return kThirtyTwoTestVersion; }

virtual ComponentResult		GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo &outParameterInfo);
private:

TestNote mTestNotes[kNumNotes];

};[/code]

ThirtyTwoTest::ThirtyTwoTest(ComponentInstance inComponentInstance) : AUMonotimbralInstrumentBase(inComponentInstance, 0, 32) { CreateElements(); Globals()->UseIndexedParameters (kNumberOfParameters); // we're only defining one param Globals()->SetParameter (kGlobalVolumeParam, 1.0); }

This creates an AU that can load in AULabs and Logic showing all 32 Channels.


#6

Any update on this? Still can not make an AU with 32 Output Channels.


#7

I’ve got exactly the same problem.
Can anoyone please provide an advice on the subject?
Thanks!


#8

Just tried this again and it still does not work for me.


#9

Same here. My plugin shows up with multiple outs in Live, but not in Logic or AuLab. Besides, Logic never calls JuceAU::SupportedNumChannels().

Here is my config:
#define JucePlugin_MaxNumInputChannels 2
#define JucePlugin_MaxNumOutputChannels 16
#define JucePlugin_PreferredChannelConfigurations { 2, 2}, { 2, 16 }
#define JucePlugin_IsSynth 1

Any help will be very much appreciated.


#10

Has anyone come across a solution to this problem yet?
The same is currently happening for me when trying to open my 16-output AU in Logic Pro 9; only the mono and stereo output options are available whereas in Ableton Live all the outputs are available.
I have tried Logic Pro in both 32 and 64 bit mode.


#11

Some findings from further testing regarding this issue -
Logic will always state that the plugin is available in mono or stereo no matter what JucePlugin_PreferredChannelConfigurations you provide, nothing more or nothing less.
If you don’t provide either of the {0, 1} or {0, 2} combinations and select mono or stereo Logic will show with the following error:

[quote]Failed to load Audio Unit [plugin name], please contact the manufacturer for an updated version or further assistance.[/quote].
So it seems like Logic uses the JucePlugin_PreferredChannelConfigurations values for the back-end but not for the GUI side of things.


#12

Same problem here, how do we let AU show the multi-channel output option like other instruments?


#13

Hi all,
I have multi output working on my AU for quiet a long time now.
The problem is I don’t remember exactly what to do :(.
This thread was very useful.
I can share my wrapper code if needed, but this use a very old JUCE version (1.51).

Kevin


#14

[quote=“ke20”]Hi all,
I have multi output working on my AU for quiet a long time now.
The problem is I don’t remember exactly what to do :(.
This thread was very useful.
I can share my wrapper code if needed, but this use a very old JUCE version (1.51).

Kevin[/quote]

That will be very helpful. Can you send me a copy?

cxhawk [at] gmail.com