Hitting jassertfalse in juceChannelIndexToAu


#1

Hi,

I have just upgraded to JUCE 4.2 and seem to be hitting a jassertfalse when loading my AU plugin.

The jassertfalse is located in “JuceLibraryCode/modules/juce_audio_plugin_client/AU/juce_AU_Shared.h” on line 311

static int juceChannelIndexToAu (int juceIndex, const AudioChannelSet& channelSet) { AudioChannelLayoutTag currentLayout = ChannelSetToCALayoutTag (channelSet); int layoutIndex; for (layoutIndex = 0; auChannelStreamOrder[layoutIndex].auLayoutTag != currentLayout; ++layoutIndex) { if (auChannelStreamOrder[layoutIndex].auLayoutTag == 0) { jassertfalse; return juceIndex; } } ...

I have had a look at the config in the projucer and my code in pluginProcessor.cpp file and cannot seem to work out the cause if the issue.

Has anyone else experienced this? Does anyone have any advice on resolving it?

Cheers,

Chris


#2

Hmmm this assertion is hit if there is no mapping between a JUCE channel layout and the native CoreAudio layouts. Can you show me your plug-ins setPreferredBusArrangement implementation or your ‘Plugin Channel Configurations’ field if you are using it? Do you modify the busArrangement in the constructor of your plugin?


#3

Hi Fabian,

The ‘Plugin Channel Configurations’ field In the Projucer is currently empty. I do not seem to be calling setPreferredBusArrangement or modifying the bus anywhere in my code.

The plugin is an instrument plugin with no input channels. It also does not write anything to any of the channels in the buffer. The plugin only processes the midi input in order to send DMX (lighting control) data.

I would eventually like to add an audio input to provide sound to light control. However, I am unsure that I will ever need to send any audio out (other than to monitor the input source perhaps).

I have noticed that getTotalNumOutputChannels() is returning 9. Could it be that I need to configure something differently for this implementation?

I hopefully this information is useful. Let me know if you need to know anything else.

Many thanks,

Chris


#4

If it’s AU, you should be able to tick ‘Midi Effect Plugin’ from the Projucer. See the Arpeggiator example here.


#5

Thanks Fabian! Will the VST version still work correctly with ‘Midi Effect Plugin’ ticked? Also, will I still be able to add a side chain audio input for sound to light control later?