Wohlstand/libADLMIDI

Improvement of MIDI support [GM/GS/XG]

jpcima opened this issue · 1 comments

This is to record the progress and perspective of MIDI support.

I have updated the MIDI sheet of libADLMIDI, filled in the sysex support which was added, and I also added more entries for relevant GS and XG support.
Please complete with any information I may have missed.

MIDI Implementation Chart

In a talk together with @ValleyBell, I found that at me is the mistake in the XG mode:

  • XG drumsets should be recognized by only MSB=126 or MSB=127, and LSB must be ignored when MSB is equal to the drum condition.
  • Also, for MSB=64, ignore LSB too. Rely on LSB in the condition when MSB is not equal to 64, 126, and 127. MSB=64 is just a generic melodic bank, nothing special except the case it uses MSB value.
  • Also, another XG, explained by ValleyBell: for MSB*256 + LSB query, if instrument not found, fall back to MSB*256 + LSB=0, and if not found, go silent.

EDIT: Fixed