GM System Enable/Disable

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).