Logic X - AU - Channel list incorrect

Sure, you could create a static function which returns a BusesProperties instance, and then adjust the returned value based on the host.

// In your constructor
: AudioProcessor (getBusesProperties()),
  ...

// This is the function which returns the properties
static BusesProperties getBusesProperties()
{
    static const PluginHostType hostType;
    
    if (hostType.isLogic())
        return BusesProperties().withInput (...).withOutput (...);

    return BusesProperties().withOutput (...);
}
1 Like

Thanks.

This worked for me too (eventually). Required a version change, clean build, possibly a reboot, possibly a rescan too.

Screenshot 2021-03-09 at 10.42.31

This won’t work on M1 Macs, as the hosting is done by a new process that seems to be shared between MainStage, Garageband & Logic. The current host detection will NOT detect Logic on an M1.

Just linking the bug report for PluginHostType that was lingering the last two months:

So far no response from juce…

1 Like

It indeed seems to work when setting up all busses with same number of channels on each bus, there however seems to be issues with setting up a mix of stereo and mono output busses. We want logic to report 4xStereo, 10xMono. But, setting it up like below results in logic reporting 14xStereo and also not being able to actually load the plugin. It passes in auval though.

: AudioProcessor (BusesProperties()
                       .withOutput ("Output #1",  AudioChannelSet::stereo(), true)
                       .withOutput ("Output #2",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #3",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #4",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #5",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #6",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #7",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #8",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #9",  AudioChannelSet::mono(), false)
                       .withOutput ("Output #10", AudioChannelSet::mono(), false)
                       .withOutput ("Output #11", AudioChannelSet::mono(), false)
                       .withOutput ("Output #12ā€, AudioChannelSet::stereo(), false)
                       .withOutput ("Output #13ā€, AudioChannelSet::stereo(), false)
                       .withOutput ("Output #14ā€, AudioChannelSet::stereo(), false))

Any hints on how to create this mixed mono and stereo multi out channel setup?
The only thing that seems to fix the issue for us is to comment out the SupportedNumChannels() call in the au wrapper.

Tested on logic version 10.4.7 and 10.5.1.

Anyone got mixed stereo/mono outs in Logic to work?

Rail

We are also trying to do this, with no success. The crazy thing is that the same AU in Ableton Live works exactly as expected.

If anyone figures this out we’d be keen to know, but after wrestling with it for quite some time I’m thinking it must be a limitation imposed by the JUCE API.

Are you aware of non-JUCE AUs that have the desired behaviour in both Logic and Live?

Yes, both Addictive Drums and BFD show mixed mono/stereo with arbitrary bus counts for each.

I’ve been able to acheive 4xStereo, 4xMono if I declare (say) 8 buses with 2xStereo and 6xMono in my constructor. I had to be very permissive to acheive this in isBusesLayoutSupported(), i.e. allow any combination of mono/stereo buses. When I do that it also shows up with 8xStereo and 8xMono options, which I also don’t necessarily really want to expose.

I was hoping to expose just 2xStereo and 6xMono as I declared in the constructor, but if I don’t use that ā€˜permissive’ isBusesLayoutSupported() then the plugin either fails validation or just offers 8xStereo (depending on precisely how I constrain things in isBusesLayoutSupported()).

image (3)

1 Like

I set up my VI projects to only use 16 stereo outputs for Logic. AD is a JUCE plugin, while BFD is not. AD2 shows 4 stereo and 10 mono outputs and does indeed work. Perhaps it’s the order of the BusesProperties??

Rail

Interesting, I didn’t know Addictive Drums is a JUCE plugin. So it seems it is possible, unless they’ve patched the Audio Unit wrapper in their copy of JUCE. Not sure how to acheive it though, I’ve tried a bunch of things with no success.