We have an audio app that utilises a custom internal audio unit attached to AVAudioEngine to do DSP processing.
Currently:
-
MIDI arrives at the input port for the app (created with MIDIDestinationCreateWithProtocol).
-
For MIDI 1 we use AUScheduleMIDIEventBlock to pass the events from the midi input to the audio unit. All works well for MIDI 1.
So while we ponder on it ourselves we have some questions to throw into the ether...
a) For MIDI 2 there appears to be no equivalent method to AUScheduleMIDIEventBlock to send UMP to an audio unit?
b) We initially chose the audio unit approach because MIDI and audio processing is all handled neatly, but is this approach essentially redundant? Would it be better to put a tap somewhere on the AVAudioEngine and pass MIDI 2 events directly from the input to the tap? I fear in that case synchronising MIDI to audio nicely would be a pain?
c) perhaps we should wait until apple implement a UMP version of AUScheduleMIDIEventBlock?