You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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).
Fixeshydrogen-music#1773
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
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 typeMidiMessage::SYSTEM_EXCLUSIVE
.But the result is totally different since
MidiMessage::SYSEX
is used for incoming MMC_x events in theMidiMap
whileMidiMessage::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.
The text was updated successfully, but these errors were encountered: