Findings so far:
- Some MIDI messages were being sent without the proper alignment on ARM, which may have been causing issues for Logic when attempting to read them.
- Adding a default audio bus (by supplying a
BusesProperties
instance to the baseAudioProcessor
's constructor) allows a MIDI FX plugin to load successfully in Logic. Without the audio bus, the plugin crashes when it is unloaded with what looks like a double-delete. It seems that the plugin may be quickly loaded + unloaded before it is ‘properly’ instantiated. - If I enable an audio bus in the MIDI Logger demo, I can load it as a MIDI FX plugin in Logic. If it’s the first plugin in the chain, it prints received MIDI messages, but subsequent plugins don’t receive any MIDI messages. If I add some basic logging, I see that the plugin is successfully calling the MIDI callback in the AU’s
AUMIDIOutputCallbackStruct
, so it looks like the messages go missing after they reach Logic.
A fix for the first issue has been merged:
Unfortunately this doesn’t fix the other two issues, so I’ll keep investigating.