Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sysex MIDI messages in PortMidi #1773

Closed
theGreatWhiteShark opened this issue May 16, 2023 · 0 comments · Fixed by #1775 or #1777
Closed

Sysex MIDI messages in PortMidi #1773

theGreatWhiteShark opened this issue May 16, 2023 · 0 comments · Fixed by #1775 or #1777

Comments

@theGreatWhiteShark
Copy link
Contributor

theGreatWhiteShark commented May 16, 2023

Operating system + version : Windows
Audio driver + version : PortMidi


Determining the actual type of an incoming MIDI message in CoreMidiDriver::midiProc and PortMidiDriver::PortMidiDriver_thread are both done by the first byte of the incoming message. The only difference is that CoreMidiDriver assigns type MidiMessage::SYSEX for a certain range of values and PortMidiDriver assigns type MidiMessage::SYSTEM_EXCLUSIVE.

But the result is totally different since MidiMessage::SYSEX is used for incoming MMC_x events in the MidiMap while MidiMessage::SYSTEM_EXCLUSIVE are explicitly discarded.

SYSEX and SYSTEM_EXCLUSIVE are treated as synonyms in all references I came across during a short search.

It feels a lot like this was done on accident but, unfortunately, it is there since the beginning of our git history.

theGreatWhiteShark added a commit to theGreatWhiteShark/hydrogen that referenced this issue May 17, 2023
After reading into both MIDI specs and doc as well as PortMidi api doc I came to the conclusion that the separate handling (and mere existance) of `SYSTEM_EXCLUSIVE` and `SYSEX` MIDI type must have been an accident.

This fix should enable MMC MIDI control using PortMidi (I have no hardware to test this).

Fixes hydrogen-music#1773
theGreatWhiteShark added a commit that referenced this issue May 21, 2023
After reading into both MIDI specs and doc as well as PortMidi api doc I came to the conclusion that the separate handling (and mere existance) of `SYSTEM_EXCLUSIVE` and `SYSEX` MIDI type must have been an accident.

This fix should enable MMC MIDI control using PortMidi (I have no hardware to test this).

Fixes #1773
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant