This Universal SysEx message enables or disables the General MIDI mode of a sound module. Some devices have built-in GM modules or GM Patch Sets in addition to non-GM Patch Sets or non-GM modes of operation. When GM is enabled, it replaces any non-GM Patch Set or non-GM mode with a GM mode/patch set. This allows a device to have modes or Patch Sets that go beyond the limits of GM, and yet, still have the capability to be switched into a GM-compliant mode when desirable.
0xF0 SysEx 0x7E Non-Realtime 0x7F The SysEx channel. Could be from 0x00 to 0x7F. Here we set it to "disregard channel". 0x09 Sub-ID -- GM System Enable/Disable 0xNN Sub-ID2 -- NN=00 for disable, NN=01 for enable 0xF7 End of SysEx
It is best to respond as quickly as possible to this message, and to be ready to accept incoming note (and other) messages soon after, as this message may be included at the start of a General MIDI file to ensure playback by a GM module. Most modules are fully setup in GM mode by 100 milliseconds after receiving the GM System Enable message.
When GM Mode is first enabled, a device should assume that the "Grand Piano" patch (ie, the first GM patch) is the currently selected patch upon all 16 MIDI channels. The device should also internally reset all controllers and assume the power-up state described in the General MIDI Specification.
While GM mode is enabled, a device should also ignore Bank Select messages (since GM does not have more than one bank of patches). Only when the GM Disable message is received (with Sub-ID2 = 0 to disable GM mode) will a device then respond to Bank Select messages (and knock itself out of GM mode).