Issues with surround channel layouts in latest Logic (10.5.1)

hello! i’m having trouble getting any surround channel configurations to work in the latest Logic with JUCE 5.4.7

my isBusesLayoutSupported looks like this:

MyAudioProcessor::isBusesLayoutSupported(const AudioProcessor::BusesLayout& layouts) const
{
    const AudioChannelSet& input = layouts.getMainInputChannelSet();
    const AudioChannelSet& output = layouts.getMainOutputChannelSet();
    return isLayoutSupported(input) && input == output;
}

isLayoutSupported(AudioChannelSet) just checks whether all channel types in the AudioChannelSet are present in a pre-defined list:

AudioChannelSet::ChannelType::centre,
AudioChannelSet::ChannelType::LFE,
AudioChannelSet::ChannelType::LFE2,
AudioChannelSet::ChannelType::left,
AudioChannelSet::ChannelType::right,
AudioChannelSet::ChannelType::leftSurround,
AudioChannelSet::ChannelType::rightSurround,
AudioChannelSet::ChannelType::leftCentre,
AudioChannelSet::ChannelType::rightCentre,
AudioChannelSet::ChannelType::leftSurroundSide,
AudioChannelSet::ChannelType::rightSurroundSide,
AudioChannelSet::ChannelType::leftSurroundRear,
AudioChannelSet::ChannelType::rightSurroundRear,
AudioChannelSet::ChannelType::topSideLeft,
AudioChannelSet::ChannelType::topSideRight,
AudioChannelSet::ChannelType::topRearLeft,
AudioChannelSet::ChannelType::topRearRight

with the above, auval tells me the following when rescanning the plug-in:

# # AudioChannelLayouts (45), Input Scope:
ChannelLayout is Writable: T
The Unit publishes the following Channel Layouts:
  0x640001, 0x650002, 0x710003, 0x750005, 0x790006, 0xAA0006, 0xAD0007, 0x8C0007, 0x940007, 0x800008, 0x7E0008, 0x6C0004, 0x6D0005, 0x660002, 0x670002, 0x6A0002, 0x720003, 0x760005, 0x770005, 0x780005, 0x7A0006, 0x7B0006, 0x7C0006, 0x7F0008, 0x810008, 0x840004, 0x850003, 0x870005, 0x880004, 0x8A0005, 0x8F0007, 0xB70008, 0x950002, 0x960003, 0x980004, 0x9C0007, 0xA00008, 0xA10008, 0xA20008, 0xA80004, 0xB00007, 0xB10008, 0xB20008, 0xB40009, 0x930000, 

Is Audio Channel Layout Available:
Mono    Stereo  Binau.  AU_4    Ambi.   AU_5    AU_5_0  AU_6    AU_6_0  AU_7_0  AU_7_0F AU_8    AU_5_1  AU_6_1  AU_7_1  AU_7_1F 
X       X       X       X               X       X                       X       X               X               X       X   

(identical output for the “Output Scope”)

judging from the output it would seem like all 7.x layouts should be supported, right? however, i can only see the multi-mono option when trying to insert the plug-in onto a surround track. same happens regardless of surround format as changed from the project settings.

even if i change the return statement of isBusesLayoutSupported to eg

return input == AudioChannelSet::create7point1SDDS() && output == AudioChannelSet::create7point1SDDS();

and set the surround format of the project accordingly, i can still only select the multi-mono plug-in.

haven’t tried with any other DAW yet, but AudioPluginHost allows me to select between several surround layouts. other plug-ins do offer surround versions for surround tracks. am i missing something here?

i remember getting this to work in Logic ~6 months ago with (if i haven’t made a mistake) identical code. perhaps the 10.5 Logic update has changed something?

was able to revert my codebase to the exact time of my previous attempt (was at the end of May, not quite 6 months ago), which i’m pretty sure worked in pre-10.5 Logic. now with Logic 10.5, only multi-mono can be selected for a surround track.

Have you tested the Juce surround demo plugin to see if it works there?

I can get a full surround format to come through with:
if(layouts.getMainInputChannelSet() == AudioChannelSet::create7point1() && layouts.getMainOutputChannelSet() == AudioChannelSet::create7point1()) return true;

I have had issues with surround channel ordering in Logic since the 10.5 update though, so there are some concerns, my issues here.

We need some assistance from the Juce team on this I think.

1 Like

thanks for the tip! compiled the surround example plug-in and it indeed seems to show up on surround tracks in Logic 10.5. but now it’s getting weird: copy-pasted the isBusesLayoutSupported from the surround example line-by-line to the plug-in i’m working on, and still Logic only offers the multi-mono version for surround tracks. rescanned the plug-in, restarted Logic, nothing helps. i feel like i’m missing something really dumb here…

EDIT: you’re right about the order being incorrect tho. i have Logic’s meter after the surround example plug-in, and when triggering the Lfe channel, it seems to show up in the “Rs” channel.

See if you can force it to look again at your AU.

killall -9 AudioComponentRegistrar

And delete the AU cache.

I’m out of my depth on the channel ordering, and need some help on that. In my plug-ins I am detecting Logic and doing a quick swap of the channels to accommodate. Ugly.

did both, no luck :confused:

so it suddenly started working now with the same isBusesLayoutSupported as in the first message of this thread. toggled some random things back and forth in the code, maybe some of those changes triggered some cache invalidation somewhere? or maybe clearing the AU cache takes a couple Logic restarts?? i don’t know, but i still don’t feel in control :smiley:

1 Like

Wonder if this is related to, if slightly different from, the other multibus issues that seemed to be introduced in Logic 10.5?