Тhe MIDI protocol describes how MIDI devices communicate through language, hardware, and file formats. General MIDI 2 is a standard (not a protocol) that shows what part of the MIDI protocol devices must satisfy, to be compliant with that standard. It describes how much of the MIDI language a device knows.
General MIDI 2 appeared in 1999 to replace General MIDI 1.
The General MIDI 2 (also called "General MIDI Level 2" or "GM2") standard is a subset of the MIDI language and is described below. MIDI devices, which satisfy this part of the language, are GM2 compliant.
A device that is GM2 compliant satisfies the following performance requirements.
- It allows 32 simultaneous notes, which are 16 melodic notes (instruments) and up to two percussion kits on channels 9 and 10 (counting from 0). (Note that MIDI notes are transmitted sequentially, but because of the MIDI requirements of a 31.25 Kbaud rate of transmission, i.e. 31,250 symbols per second, this may be perceived as simultaneous. Thus, this requirement for simultaneity is really a requirement for speed).
- It supports a number of controller messages: bank select (coarse) (controller number 0, counting from 0), bank select (fine) (32), portamento time (5), channel volume (coarse) (7, also in GM1), pan (coarse) (10, also in GM1), expression (coarse) (11, also in GM1), hold 1 (damper or sustain) (64, also in GM1), portamento on/off (65), sostenuto on/off (66), soft pedal on/off (67), sound controller 2 (default is filter resonance / timbre / harmonic intensity) (71), sound controller 3 (release time) (72), sound controller 4 (attack time) (73), sound controller 5 (brightness) (74), sound controller 6 (decay time) (75), sound controller 7 (vibrato rate) (76), sound controller 8 (vibrato depth) (77), sound controller 9 (vibrato delay) (78), effect 1 depth (reverb send level) (91), and effect 3 depth (chorus send level) (93).
- It supports the following registered parameter numbers: pitch bend range (value of 0 for the 0x64 and 0x65 controllers; also in GM1); fine tuning (value of 1; also in GM1); coarse tuning (value of 2; also in GM1), and modulation / vibrato depth range (value 5) and responds to the data entry controllers (controller values 6 and 38) for setting these registered parameter numbers (as in GM1).
- It supports the following universal system exclusive messages: master volume, master fine tuning, master coarse tuning, reverb type (see MIDI Global Parameter Control message for reverb and chorus setings), reverb time, chorus type, chorus mod rate, chorus mod depth, chorus feedback, chorus send to reverb, controller destination setting, scale/octave tuning adjust, key-based instrument controllers, and GM2 system on.
Since GM2 extends GM1, GM2 devices must also satisfy the requirements of GM1, including the following.
- All notes can have velocities (see MIDI Note Off message and MIDI Note On message).
- Each channel can choose an instrument (sound, patch, or timbre).
- Each channel is polyphonic (can play two or more voices simultaneously).
- The channel pressure and the pitch wheel messages are supported.
- All system messages (see MIDI system realtime messages and MIDI system common messages) are supported.