General MIDI Level 2
General MIDI Level 2 (GM2) is a standardized extension of the original General MIDI (GM) specification for synthesizers and other MIDI-compatible devices, designed to enhance device interoperability by defining expanded sound libraries, increased performance capabilities, and additional control parameters beyond the core MIDI 1.0 protocol.[1] Developed by the MIDI Manufacturers Association (now known as the MIDI Association), GM2 was introduced in 1999 as an advancement over GM Level 1, which had been established in 1991 to standardize instrument mappings and basic controls for consistent playback of MIDI files across hardware.[2] The specification maintains backward compatibility with GM1 while introducing new universal system exclusive messages and registered parameter numbers (RPNs) to support more sophisticated music production, such as microtuning and instrument-specific controllers.[1] Key enhancements in GM2 include a minimum polyphony of 32 simultaneous notes (doubled from GM1's 24), support for up to two simultaneous percussion kits on dedicated channels, and an extended melodic instrument set of at least 256 sounds, including the original 128 GM instruments and 128 additional instruments accessed via bank selection, and a percussion sound set including the standard kit plus eight additional kits (such as SFX and analog drums).[3] It also mandates recognition of five effects types—reverb, chorus, celeste/detune, phaser, and tremolo—with depth controls via MIDI continuous controller messages (CC91–CC95), as well as support for scale/octave tuning adjustments and master fine/coarse tuning via RPNs.[1] These features enable greater expressive control, such as key-based modulation and portamento time adjustments, making GM2 suitable for complex multitimbral arrangements on 16-part devices.[3] GM2's adoption facilitated the creation of richer Standard MIDI Files (SMFs), particularly in professional and consumer synthesizers like the Roland SC-8850, the first module to fully implement the standard, which offered 1,640 preset sounds, 128-voice polyphony, and 64-part multitimbrality while supporting GM2-specific modes via system-on messages.[3] The specification's emphasis on universal non-realtime sysex messages for global parameters further improved file portability and real-time performance across compliant hardware from manufacturers including Roland, Yamaha, and Korg.[1]Background and Overview
History and Standardization
The development of General MIDI Level 2 (GM2) was initiated in the mid-1990s by the MIDI Manufacturers Association (MMA) and the Association of Musical Electronics Industry (AMEI) to overcome limitations in the original General MIDI Level 1 (GM1) specification, particularly regarding the limited instrument set and control options available for MIDI devices. GM1 had been established in 1991 as a foundational standard for ensuring consistent MIDI file playback across synthesizers and software, but by the mid-1990s, the rapid growth of computer-based music production and multimedia content creation demanded expanded capabilities to support more diverse sound palettes and finer performance controls. Key contributors to GM2 included leading synthesizer manufacturers such as Roland, Yamaha, and Korg, whose proprietary extensions like Roland's GS and Yamaha's XG formats influenced the new standardized features, fostering greater interoperability among hardware and software. These organizations, as members of the MMA and AMEI, collaborated to integrate enhancements that maintained backward compatibility with GM1 while introducing additional instrument banks and control messages, thereby improving MIDI file portability for applications in computer music, game audio, and interactive media by the late 1990s.[4] The official GM2 specification, version 1.0, was released in 1999 following a formal standardization process led by the MMA and AMEI, with the detailed technical document published to outline requirements for compliant devices. This release addressed the evolving needs of the music industry, enabling more reliable and expressive MIDI implementations in consumer electronics and professional tools, and solidified GM2 as the de facto extension for enhanced multimedia audio production.[4]Key Features and Improvements over GM1
General MIDI Level 2 (GM2), approved by the MIDI Manufacturers Association (MMA) in November 1999, significantly expands the sonic palette and control options available in the original General MIDI Level 1 (GM1) standard while maintaining full backward compatibility for GM1 files. This ensures that sequences created for GM1 devices play correctly on GM2 synthesizers without alteration, as the core 128 melodic programs and single drum kit remain in the default bank (MSB 0). The primary advancements focus on enhancing expressiveness for professional music production and multimedia applications by introducing structured access to a broader range of sounds and refined parameter controls.[1] A key improvement is the expansion of melodic programs from 128 in GM1 to 256 across multiple banks, enabled by standardized bank select messages (CC#0 for MSB and CC#32 for LSB). This allows access to additional categories such as world instruments and ethnic sounds in dedicated banks, like MSB 64 for ethnic percussion and melodic variations, providing greater diversity without disrupting the default GM1 mapping. For percussion, GM2 introduces four drum kits—Standard (program 0), Room (8), Power (16), and Electronic (24)—compared to GM1's single Standard kit, with additional percussion sounds defined for notes 27–34 and 82–87 across the kits, providing 61 defined percussion instruments for more comprehensive rhythmic options.[1] GM2 also adds dedicated support for effects processing, including reverb and chorus, which were absent or rudimentary in GM1. New Universal System Exclusive (SysEx) messages control parameters such as reverb type and time, chorus type, modulation rate, depth, feedback, and chorus send to reverb, allowing global adjustments. Enhanced channel capabilities include per-channel effects sends via CC#91 (reverb send level) and CC#93 (chorus send level), enabling independent mixing of effects for each of the 16 channels. Additionally, finer control over parameters like pitch bend sensitivity is achieved through expanded Registered Parameter Numbers (RPNs), such as RPN 0x0000 for semitone increments and RPN 0x0001 for cent adjustments, supporting up to ±24 semitones per channel for more nuanced performance expression. These features collectively boost the standard's utility in complex arrangements while preserving interoperability.[1]Instrument Specifications
Melodic Programs and Bank Structure
General MIDI Level 2 organizes its melodic instruments into a structured bank system that expands the sound palette beyond the original General MIDI Level 1 specification. This structure is accessed via Control Change (CC) messages CC#0 (Bank Select MSB) and CC#32 (Bank Select LSB) to form a 14-bit bank address, followed by a Program Change message (0-127) to select the instrument within the bank. GM2 comprises at least 2 banks of 128 programs each (MSB=0 LSB=0 for the GM1-compatible set and MSB=121 LSB=0 for the additional set), for a total of at least 256 defined melodic sounds. The system allows up to 128 sub-banks under MSB=121 (LSB=0-127) for further expansions, but compliance requires only the initial two banks. This mechanism allows precise access to the expanded library while maintaining compatibility with standard MIDI protocols.[1][5] Bank MSB=0 LSB=0 functions as the core, GM1-compatible set, replicating the original 128 programs to ensure seamless playback of legacy files. For instance, programs 0-7 cover piano variations, including Acoustic Grand Piano (program 0) and Honky-Tonk Piano (program 3), while programs 8-15 address chromatic percussion, such as Celesta (program 8) and Glockenspiel (program 9). These assignments prioritize familiar, versatile timbres for general music production. The additional GM2 bank (MSB=121 LSB=0) introduces standardized extensions with 128 new instruments, including enhanced orchestral and world sounds, though specific implementations may vary. These banks enable composers to access diverse sounds without requiring proprietary extensions.[6][7][5] Device compliance with the GM2 standard mandates support for at least the two core banks (MSB=0 LSB=0 and MSB=121 LSB=0), guaranteeing access to the foundational 128 programs plus the 128 GM2 additions. This minimum requirement facilitates interoperability among synthesizers, sound modules, and software while allowing optional implementation of further sub-banks for fuller feature sets. The envelope and waveform characteristics for programs are defined to align with the standard's emphasis on expressive performance. Overall, this bank structure improves upon GM1's limitation to a single bank by introducing scalable sound variations that enhance musical flexibility.[1][6]Percussion Kits and Additional Notes
General MIDI Level 2 specifies nine standardized drum kits for percussion sounds on channel 10: Standard, Room, Power, Electronic, Analog, Jazz, Brush, Orchestra, and SFX. These kits expand on the single drum kit defined in General MIDI Level 1 by providing variations in timbre and character while maintaining compatibility. The Standard Kit maps notes 35–81 identically to GM1, ensuring seamless playback of existing sequences, while the other kits offer alternative sonic flavors for creative applications.[8] The kits are selected using bank change messages on channel 10, with MSB=120 and specific LSB pairs: 0 for Standard, 1 for Room, 8 for Power, 25 for Electronic, 16 for Analog, 32 for Jazz, 40 for Brush, 48 for Orchestra, and 56 for SFX, followed by a program change of 0 to activate the kit. Channel 10 must remain fixed for percussion usage to comply with the specification. The Room Kit features sounds with damped reverbs for an ambient feel, the Power Kit employs aggressive attacks and stronger low-end response for rock and pop genres, and the Electronic Kit simulates vintage drum machine tones with synthesized waveforms. For example, note 35 is assigned to Bass Drum across all kits, but with varying decay and tone—deeper and punchier in the Power Kit—while note 42 maps to Closed Hi-Hat, crisp and tight in the Standard Kit but with electronic edge in the Electronic Kit. The Analog Kit emulates classic analog drum sounds, Jazz provides subtler attacks for acoustic styles, Brush simulates brushed snare and cymbals, Orchestra focuses on symphonic percussion, and SFX includes sound effects and hits.[2][8] GM2 extends the percussion note range to 25–113, compared to GM1's core 35–81, enabling lower-frequency elements like sub-bass drum on note 23 and high-pitched effects such as bird tweets on note 104, for a total of up to 64 additional percussion instruments beyond GM1. This expansion allows for richer rhythmic arrangements without altering the core mappings. Devices compliant with GM2 must implement at least the Standard Kit exactly as in GM1 to ensure backward compatibility, with the additional kits optional but recommended for full adherence.[8][1]Parameter and Control Support
Program and Bank Change Events
In General MIDI Level 2 (GM2), program and bank change events enable the selection of specific instruments from expanded sound sets across 16 MIDI channels, utilizing standard MIDI 1.0 channel voice messages for compatibility. The process begins with a Bank Select MSB message using Control Change #0 (CC#0), where the data byte ranges from 0 to 127 to specify the coarse bank selection. This is immediately followed by a Bank Select LSB message using Control Change #32 (CC#32), with a data byte also ranging from 0 to 127 for fine bank selection, forming a 14-bit bank address that theoretically supports up to 16,384 banks. Finally, a Program Change (PC) message, with a status byte CnH (where n is the channel number) and a data byte from 0 to 127, selects the specific program within the chosen bank; the bank selection takes effect only upon receipt of this PC message.[9] Devices implementing GM2 must handle non-standard or unsupported banks gracefully to ensure reliable operation. If a received bank address does not correspond to a supported bank, the device ignores the change and remains in the current bank or defaults silently to Bank 0 (the standard GM1-compatible bank) without generating errors or interrupting playback. This behavior prevents disruptions in sequences that may reference proprietary or undefined banks from other systems. No System Exclusive (SysEx) messages are required for these basic bank and program changes, maintaining simplicity in the protocol. GM2 supports up to two simultaneous percussion kits on channels 10 and 11.[9][4] For percussion on channels 10 and 11 (the designated drum channels in GM2), bank changes similarly switch between available kits, but with specialized handling. Sending a Bank Select MSB of 120 (78H) followed by LSB of 0 configures the channel for drum operation, after which a Program Change selects the specific kit (e.g., PC 0 for Standard Kit 1); the PC value determines the kit variation rather than an individual instrument, as note numbers map to percussion sounds fixed across kits. Any channel can be designated as a rhythm channel via this bank select sequence followed by PC, though channels 10 and 11 default to percussion. Program Changes on drum channels do not alter melodic assignments but can influence kit-specific effects if supported. Channel 11 can be configured for percussion in the same manner as channel 10 to enable dual kits.[10][4] Error handling in GM2 prioritizes stability during bank selection. Upon receiving an invalid or out-of-range bank address, devices revert to the nearest supported bank or the default Bank 0 without audible artifacts or protocol violations. If the sequence is incomplete (e.g., PC omitted after bank select), the stored bank remains pending until a valid PC arrives, avoiding unintended sound changes.[9] Backward compatibility with General MIDI Level 1 (GM1) is ensured by treating sequences lacking bank select messages as implicit selections from Bank 0. GM1 files, which rely solely on Program Change without CC#0 or CC#32, automatically map to the standard 128 melodic programs and single drum kit in Bank 0 on GM2 devices, allowing seamless playback without modification. All GM2 implementations must fully support this fallback to maintain interoperability with legacy content.[1]Control Change Messages
Control Change (CC) messages in General MIDI Level 2 (GM2) enable real-time adjustment of instrument parameters across the 16 MIDI channels, extending the capabilities of GM1 by mandating support for additional effects controls and recommending finer control options. These 7-bit messages, with values ranging from 0 to 127, allow performers to dynamically modify aspects such as volume, panning, sustain, and effects depth during playback. GM2 requires synthesizers to respond to specific CCs to ensure compatibility, while excluding certain pitch-related controls on channels 10 and 11, which are dedicated to percussion kits.[8] Mandatory CC messages form the core of GM2's parameter control framework. These include CC#0 (Bank Select MSB) and CC#32 (Bank Select LSB), which together select from expanded sound banks; CC#1 (Modulation Wheel), modulating vibrato depth; CC#7 (Main Volume), scaling the overall channel volume level (0 for mute, 127 for maximum); CC#10 (Pan), positioning the sound in the stereo field (0 left, 64 center, 127 right); and CC#11 (Expression), providing post-volume modulation for dynamic intensity (applied after CC#7). Sustain is handled by CC#64 (Sustain Pedal or Hold1), where values 64-127 engage sustain and 0-63 release it. Channel mode messages CC#120 (All Sound Off), CC#121 (Reset All Controllers), CC#123 (All Notes Off), CC#124 (Omni Off), CC#125 (Omni On), and CC#126/127 (Mono/Poly Mode On/Off) are also required to manage note termination, controller resets, and polyphony modes across channels. Values for continuous controllers like CC#7 and CC#11 typically map linearly or exponentially as defined by the device, establishing the scale of amplitude changes.[8] GM2 introduces mandatory support for effects depth controls to enhance spatial and timbral processing: CC#91 (Effects 1 Depth, typically reverb send level), CC#93 (Effects 3 Depth, typically chorus send level), and CC#94 (Effects 2 Depth, for variations like phaser or tremolo). These allow send levels from 0 (no effect) to 127 (maximum wet signal), applied per channel to the synthesizer's global effects processors. Finer 14-bit resolution for parameters like volume and effects is achievable via NRPNs where supported, though standard 7-bit CCs remain the primary method. Additionally, timbre and envelope controls such as CC#71 (Harmonic Content or Filter Resonance), CC#72 (Release Time), CC#73 (Attack Time), CC#74 (Brightness or Cutoff Frequency), CC#75 (Decay Time), CC#76 (Vibrato Rate), CC#77 (Vibrato Depth), and CC#78 (Vibrato Delay) are mandatory, each mapping 0-127 to adjust sound characteristics progressively.[8] All CC messages apply to channels 1-16, but channels 10 and 11 (percussion) ignore pitch-altering controls such as pitch bend, portamento (CC#5, CC#65), and tuning adjustments to maintain fixed drum tuning, while still responding to volume (CC#7), pan (CC#10), expression (CC#11), sustain (CC#64), modulation (CC#1) for applicable sounds, and effects depths (CC#91, #93, #94) for kit-wide adjustments. Binary controllers, such as CC#64, toggle at a threshold of 64, ensuring consistent on/off behavior across devices.[8][11] Optional but recommended CCs in GM2 include CC#66 (Sostenuto Pedal), sustaining only notes held at the moment of activation (64-127 on); CC#67 (Soft Pedal), reducing note velocity and timbre (64-127 engaged); and CC#81 (General Purpose 1), CC#82 (General Purpose 2), CC#83 (General Purpose 3), which devices may assign to custom controls like modulation or effects switching. These enhance expressivity without strict requirements, allowing implementation variations while preserving core compatibility.[8]| CC# | Name | Function | Value Range/Behavior |
|---|---|---|---|
| 0/32 | Bank Select | Selects instrument bank | 0-127 (MSB/LSB pair) |
| 1 | Modulation Wheel | Vibrato depth | 0-127 (linear increase) |
| 7 | Main Volume | Channel volume scale | 0-127 (0=mute, 127=max) |
| 10 | Pan | Stereo position | 0-127 (left to right) |
| 11 | Expression | Post-volume dynamics | 0-127 (modulates amplitude) |
| 64 | Sustain Pedal | Note sustain | 0-63=off, 64-127=on |
| 91 | Effects 1 Depth | Reverb send | 0-127 (dry to wet) |
| 93 | Effects 3 Depth | Chorus send | 0-127 (dry to wet) |
| 94 | Effects 2 Depth | Variation effects | 0-127 (dry to wet) |
| 120 | All Sound Off | Silences all sounds | 0 (immediate) |
| 121 | Reset All Controllers | Defaults controllers | 0 (reset) |