I think I’ve found a fix for part of the issue I was seeing in the second bullet point above, where auval/logic were crashing (leaving a crash dump in Console.app) when loading a MIDI FX plugin. I was seeing this crash only when both the default bus layout was empty and
isBusesLayoutSupported returned false. I have a fix for the crash, but unfortunately this doesn’t change the “spinner” behaviour in Logic, and MIDI FX plugins still need to use a non-empty default bus layout, or return
isBusesLayoutSupported in order to load successfully. Fewer crashes definitely seems like an improvement though, so I’ll push that change once it’s been reviewed.
I’ve also managed to attach a debugger to the hosting process now, and I can say for certain that the plugin is calling the AU MIDI callback inside process block. This being the case, I’m reasonably sure that the lack of MIDI output is a Logic bug. The existence of an ARM AU with a functioning MIDI output would disprove this theory, but at the moment I’m not aware of any such plugin. (Please let me know if you are aware of any functioning ARM MIDI FX plugins!)