Тhe MIDI protocol describes how MIDI devices communicate through language, hardware, and file formats. General MIDI 1 is not a protocol, but is a standard and describes what part of the MIDI protocol MIDI devices must satisfy, to be compliant with that standard. It is one of the levels of compliance with the MIDI language that MIDI devices may have (another level of compliance is General MIDI 2). Simply put, General MIDI 1 describes how much of the MIDI language a MIDI device knows.
The General MIDI 1 (also called "General MIDI Level 1" or "GM1") standard is a subset of the MIDI language, which is described below. MIDI devices, which satisfy this part of the language, are called GM1 compliant.
A device that is GM1 compliant satisfies the following performance requirements.
- It either allows 24 simultaneous melodic and percussive notes, or allows simultaneously 16 melodic and 8 percussive notes. (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 allows velocities for all notes (see MIDI Note Off message and MIDI Note On message).
- It has 16 channels and channel 10 (when counting from 1) is always the percussion channel.
- Each channel can choose an instrument, whether that means a sound, a patch, or a timbre.
- Each channel is polyphonic (can play two or more voices simultaneously).
- It supports the following controllers: coarse modulation wheel (controller number 1, counting from 0); coarse volume (controller number 7); coarse pan (10); coarse expression (11); on/off hold pedal 1 (64); all controllers off (121); all notes off (123).
- It supports the channel pressure and the pitch wheel messages.
- It supports the following registered parameter numbers: pitch bend range (value of 0 for the 0x64 and 0x65 controllers); fine tuning (value of 1); and coarse tuning (value of 2) and responds to the data entry controllers (controller values 6 and 38) for setting these registered parameter numbers.
- It supports all system messages (see MIDI system realtime messages and MIDI system common messages).