I’m wondering if anyone else can reproduce this since it seems unusual, and possibly a bug in Logic Pro X or the Core Audio MIDI classes?
I added the sample logging code from the MidiBuffer
documentation to the MultiOutSynth example i.e.
void processBlock (AudioBuffer<float>& buffer, MidiBuffer& midiBuffer) override
{
for (const MidiMessageMetadata metadata : midiBuffer)
if (metadata.numBytes == 3)
Logger::writeToLog (metadata.getMessage().getDescription());
...
- On intialisation, Logic Pro X sends a bunch of initial messages, they all make sense (RPN resets etc).
- Then I play a note and the note on and off make sense
- Switch Logic Pro X in to the background (back to Xcode) and it sends a bunch of note-offs
This is what I get
Controller Registered Parameter (fine): 4 Channel 1
Controller Registered Parameter (coarse): 0 Channel 1
Controller Data Entry (coarse): 0 Channel 1
Controller Registered Parameter (fine): 3 Channel 1
Controller Registered Parameter (coarse): 0 Channel 1
Controller Data Entry (coarse): 0 Channel 1
[... etc repeated for each channel ...]
[play a note]
Note on C3 Velocity 98 Channel 1
Note off C3 Velocity 64 Channel 1
[switch to background back to Xcode]
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Note off D#8 Velocity 64 Channel 1
Those note-offs are data [128 123 64]. That “123” has a certain whiff since it’s the CC# for “all notes off”.
Any ideas?