I have an AU plugin. It validates successfully both in Logic and using auval. I can clearly see from auval output, that the 1/1 (mono/mono) layout is supported.
The problem is that Logic only allows me to use the plugin on stereo channels, despite my accepting the 1/1 layout!
Now comes the weird part.
If I change the plugin version from ‘4.6.0’ to ‘4.6.1’ (or even ‘4.5.9’) and rebuild the plugin, it suddenly starts working! I can use it on both mono and stereo channels.
If I remove the plugin and build it back to ‘4.6.0’, the problem returns. For testing, I copied the plugin to another machine, and guess what—it doesn’t work even with version ‘4.6.1’, which works on my dev machine.
I can’t imagine what is happening here. I’ve logged out and restarted the machine several times, cleared the AU cache, etc.
Reaper is loading plugin with any version.
Mac Mini M2, Ventura/Sonoma, Logic 10.8.1, JUCE 6.1.6
I’m pretty sure that Logic stores the channel capabilities of each plugin the first time that a particular plugin version is scanned. This cached info will be used from then on, rather than querying the plugin each time. I’m not sure exactly where this info is stored.
Have you tried pressing the “Full Audio Unit Reset” button in Logic’s plugin manager after changing the channel capabilities? Does that have any effect?
This is very strange. Is it possible you already had a “4.6.1” version of the plugin with different channel capabilities on your test machine?
Newer versions of both JUCE and Logic are available. It might be worth installing these newer versions (perhaps side-by-side with the old versions) and seeing whether you still get the same behaviour. That said, I doubt the problem originates in JUCE, given that REAPER works as expected.
I tried all kinds of things—manually deleting the AU cache, doing a full AU reset in Logic’s plugin manager—but nothing had any effect.
What bothers me is that when using the “right” version of the plugin, everything works perfectly. I somehow doubt that JUCE has anything to do with it.
More weirdness: version 4.6.1, which works on Ventura but not on Sonoma, can be fixed simply by modifying the .plist file in the .component package. Setting all version references to 4.6.2 makes the plugin fully operational on Sonoma !?!?
Well, this is really something … how is this even possible.
I’ve narrowed down this weird issue to the following: I’ve created a minimal JUCE7 project with only the AU format, using the default generated code. By default, 1-1 and 2-2 layouts are supported. The plugin is successfully validated and can be loaded in Logic on both mono and stereo channels.
However, there are certain combinations of plugin version and plugin code (in Projucer Project Settings) that cause the plugin to malfunction. In these cases, it can only be loaded on stereo channels in Logic. Despite this, the plugin is still properly validated and reports that 1-1 and 2-2 layouts are supported. This issue is 100% reproducible on my end, and I have identified a few combinations that do not work.
It feels like there might be some hidden AU cache where versions, etc., of AU plugins are stored—though this is just speculation. I suspect this because the non-working combinations of versions and plugin codes were used in the past on this computer while developing a new version of an old product.
This issue is driving me mad. I can’t understand how plugin code and version could affect layouts. For example, Reaper loads the plugin properly without issues.
I’ve tried cache resets and always log out after updating the .component, and most of the time, things work as expected. But with certain combinations, Logic goes haywire and disables the plugin on mono channels.
Example: version 4.6.0, code N416 working. Changing code to N406 triggers issue.
It’s worth mentioning that there is no guarantee that a working combination will work on another computer.
Obviously, for some reason, Logic saved completely wrong information about channel layours into this file. Actually it’s even different than AUVAL output (which looks fine). For example, my plugin should support 1-1 layout, but it’s missing there.
During troubleshooting, I was regularly deleting com.apple.logic10.plist and com.apple.audiounits.cache, but not com.apple.audio.InfoHelper.plist (which I suspect is the culprit) and com.apple.logic.pro.cs (which I believe is related to control surfaces).
The script also terminates the AudioComponentRegistrar process. Note that using this script resets Logic preferences.
Since running the script for the first time, I’ve been able to use any plugin version and code combination without having issues in Logic anymore.