Midi FX issue - Logic Pro and Mac M1

Thx for the info. I’ve just changed my plugin to only build x64 and no arm - I no longer get the “unstable” dialog but it just sits there with the spinner on it. I’ve tried adding a default BusesProperties to the constructor to see if that makes any difference, and it doesn’t.

I’ve just received info from a client that Captain Plugins MIDI FX plugins work fine in Logic, as does Scaler. Not sure whether these are ARM or X64 though.


Thanks for making me aware of these plugins. I can’t test the Captain plugins (there doesn’t seem to be a free demo) but I tried ScalerControl 2 on our M1 Mac. The plugin itself is a universal binary. If I run it in Logic with “Run with Rosetta” enabled, I can hit the keys on the plugin’s onscreen keyboard and it correctly sends MIDI to the instrument slot on the channel strip. However, if I leave “Run with Rosetta” disabled, the plugin doesn’t seem to produce any MIDI when I click on the onscreen keyboard.

This behaviour is in line with what I saw when testing JUCE plugins: it’s possible to get the plugin to load by returning true from isBusesLayoutSupported and by requesting a non-empty default bus layout. However, MIDI output doesn’t work when running without Rosetta.

We’ve now contacted Apple about this issue. I’ll update this thread once we know more.


If I enable “Run with Rosetta”, my Juce plugins are no longer visible in Logic.

Are you definitely building universal binaries? “Run with Rosetta” requires an Intel build of the plugin to be available.

Anything else needed?

If you’re testing with debug builds, the default is to build for only the active architecture. In the Projucer settings for the Debug configuration of the Xcode exporter, it’s probably a good idea to set “macOS Architecture” to “Standard 64-bit” to force a universal binary build. You can also modify the Build Active Architecture Only field in the build settings of the generated Xcode project.

After building, you can run file /path/to/plugin.component/Contents/MacOS/pluginbinary to check whether the generated plugin is actually a universal binary.

1 Like

ah, ok - thought default was to build all.

so it now appears in Logic, but when I try to run it I get the usual “unstable” dialog, so behaviour between both is the same

Have you tried overriding isBusesLayoutSupported to return true for all layouts?

Other than that I’m not sure what to suggest. Enabling buses allowed me to load all of the JUCE demo projects that I tested.

1 Like

will check, but had done that - just the return from that one function, yes?

I think so, yeah.

no luck unfortunately. also can’t get the audioplugindemo to appear either…

think i’m just gonna leave this until there’s some progress - doing my nut in. have told clients not to expect anything soon.

@reuk Hi - any progress with this. Clients are starting to get a little antsy. thx

I don’t have any news on this, unfortunately. Apple are aware of the issue, but I don’t have any information regarding bugfix plans/timelines.

ok thanks.

it would be useful if could post some sample code up here that works as good as possible as my last attempt I couldn’t get anything to appear. If I could even get the “run with rosetta” option working, that might keep them happy for now…

I just tried generating a fresh project from the AudioPluginDemo PIP, and building it. After running killall -9 AudioComponentRegistrar, auval -al shows an entry for the AudioPluginDemo. I can then open Logic and load the plugin successfully. If the killall ... command doesn’t work for you, I’ve heard that restarting the machine sometimes allows new plugins to be registered, but I’ve never needed to do that myself.

1 Like

ok, thx, will give that a go