Hubbry Logo
General MIDI Level 2General MIDI Level 2Main
Open search
General MIDI Level 2
Community hub
General MIDI Level 2
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
General MIDI Level 2
General MIDI Level 2
from Wikipedia

General MIDI Level 2 or GM2 is a specification for synthesizers which defines several requirements beyond the more abstract MIDI standard and is based on General MIDI, GS extensions, and XG extensions. It was adopted in 1999 by the MIDI Manufacturers Association (MMA).

General requirements

[edit]
  • Number of Notes: 32 simultaneous notes
  • MIDI Channels: 16
  • Simultaneous Melodic Instruments – up to 16 (all Channels)
  • Simultaneous Percussion Kits – up to 2 (Channel 10/11)

Parameters

[edit]

Program and bank change events

[edit]

General MIDI 2 compatible synthesizers access all of the 256 instruments by setting cc#0 (Bank Select MSB) to 121 and using cc#32 (Bank Select LSB) to select the variation bank before a Program Change. Variation bank 0 contains the full GM — that is, General MIDI 1 — sound set. Variations using other bank numbers are new to General MIDI 2, and correspond to variation sounds introduced in Roland GS and Yamaha XG.

Melodic sounds

[edit]
Piano
[edit]
Patch Number Bank Number Instrument Name
1 0 Acoustic Grand Piano
1 Wide Acoustic Grand Piano
2 Dark Acoustic Grand Piano
2 0 Bright Acoustic Piano
1 Wide Bright Acoustic Piano
3 0 Electric Grand Piano
1 Wide Electric Grand Piano
4 0 Honky-Tonk Piano
1 Wide Honky-Tonk Piano
5 0 Rhodes Electric Piano
1 Detuned Electric Piano 1
2 Variation Electric Piano 1
3 60's Electric Piano
6 0 Chorused Electric Piano
1 Detuned Electric Piano 2
2 Variation Electric Piano 2
3 Electric Piano Legend
4 Phaser Electric Piano
7 0 Harpsichord
1 Coupled Harpsichord
2 Wide Harpsichord
3 Open Harpsichord
8 0 Clavinet
1 Pulsed Clavinet
Chromatic Percussion
[edit]
Patch Number Bank Number Instrument Name
9 0 Celesta
10 0 Glockenspiel
11 0 Music Box
12 0 Vibraphone
1 Wet Vibraphone
13 0 Marimba
1 Wide Marimba
14 0 Xylophone
15 0 Tubular Bells
1 Church Bells
2 Carillon Bells
16 0 Dulcimer/Santur
Organ
[edit]
Patch Number Bank Number Instrument Name
17 0 Drawbar Organ 1
1 Detuned Drawbar Organ
2 60's Drawbar Organ
3 Drawbar Organ 2
18 0 Percussive B3 Organ 1
1 Detuned Percussive B3 Organ
2 Percussive B3 Organ 2
19 0 Rock Organ
20 0 Church Organ 1
1 Church Organ 2
2 Church Organ 3
21 0 Reeds Organ
1 Puffs Organ
22 0 French Accordion
1 Italian Accordion
23 0 Harmonica
24 0 Tango Accordion
Guitar
[edit]
Patch Number Bank Number Instrument Name
25 0 Nylon-Strings Guitar 1
1 Ukulele
2 Opened Nylon-Strings Guitar
3 Nylon-Strings Guitar 2
26 0 Steel-Strings Guitar
1 12-Strings Steel Guitar
2 Mandolin
3 Steel-Strings Guitar + Body Tapped Sounds
27 0 Jazz Guitar
1 Hawaiian Guitar
28 0 Clean Electric Guitar
1 Chorus Guitar
2 Mid Tone Guitar
29 0 Muted Electric Guitar
1 Funky Guitar 1
2 Funky Guitar 2
3 Jazz Man
30 0 Overdriven Guitar
1 Guitar Pinch
31 0 Distortion Guitar
1 Feedback Guitar
2 Distortion Rhythm Guitar
32 0 Guitar Harmonics
1 Guitar Feedback
Bass
[edit]
Patch Number Bank Number Instrument Name
33 0 Acoustic Bass
34 0 Fingered Bass
1 Fingered Slap Bass
35 0 Picked Bass
36 0 Fretless Bass
37 0 Slap Bass 1
38 0 Slap Bass 2
39 0 Synth Bass 1
1 Synth Bass 101
2 Synth Bass 3
3 Clavi Bass
4 Hammered Bass
40 0 Synth Bass 2
1 Synth Bass 4
2 Rubber Bass
3 Attack Pulsed
Orchestra Solo
[edit]
Patch Number Bank Number Instrument Name
41 0 Violin
1 Slow Violin
42 0 Viola
43 0 Cello
44 0 Contrabass
45 0 Tremolo Strings
46 0 Pizzicato Strings
47 0 Harp
1 Yangqin
48 0 Timpani
Orchestra Ensemble
[edit]
Patch Number Bank Number Instrument Name
49 0 Strings Ensemble
1 Orchestral Strings
2 60's Strings
50 0 Slow Strings Ensemble
51 0 Synth Strings 1
1 Synth Strings 3
52 0 Synth Strings 2
53 0 Choir Aahs 1
1 Choir Aahs 2
54 0 Voice Oohs
1 Humming
55 0 Synth Voice
1 Analog Voice
56 0 Orchestra Hit
1 Bass Hit
2 6th Hit
3 Euro Hit
Brass
[edit]
Patch Number Bank Number Instrument Name
57 0 Trumpet
1 Dark Trumpet Soft
58 0 Trombone 1
1 Trombone 2
2 Bright Trombone
59 0 Tuba
60 0 Muted Trumpet 1
1 Muted Trumpet 2
61 0 French Horns 1
1 French Horns 2
62 0 Brass Section 1
1 Brass Section 2
63 0 Synth Brass 1
1 Synth Brass 3
2 Analog Brass 1
3 Jump Brass
64 0 Synth Brass 2
1 Synth Brass 4
2 Analog Brass 2
Reed
[edit]
Patch Number Bank Number Instrument Name
65 0 Soprano Sax
66 0 Alto Sax
67 0 Tenor Sax
68 0 Baritone Sax
69 0 Oboe
70 0 English Horn
71 0 Bassoon
72 0 Clarinet
Wind
[edit]
Patch Number Bank Number Instrument Name
73 0 Piccolo
74 0 Flute
75 0 Recorder
76 0 Pan Flute
77 0 Bottle Blow
78 0 Shakuhachi
79 0 Whistle
80 0 Ocarina
Synth Lead
[edit]
Patch Number Bank Number Instrument Name
81 0 Square Lead
1 Square Wave
2 Sine Wave
82 0 Saw Lead
1 Saw Wave
2 Doctor Solo
3 Natural Lead
4 Sequenced Saw
83 0 Synth Calliope
84 0 Chiffer Lead
85 0 Charang
1 Wire Lead
86 0 Solo Synth Vox
87 0 5th Saw Wave
88 0 Bass & Lead
1 Delayed Lead
Synth Pad
[edit]
Patch Number Bank Number Instrument Name
89 0 Fantasia Pad
90 0 Warm Pad
1 Sine Pad
91 0 Polysynth Pad
92 0 Space Voice Pad
1 Itopia
93 0 Bowed Glass Pad
94 0 Metal Pad
95 0 Halo Pad
96 0 Sweep Pad
Synth Sound FX
[edit]
Patch Number Bank Number Instrument Name
97 0 Ice Rain
98 0 Soundtrack
99 0 Crystal
1 Synth Mallet
100 0 Atmosphere
101 0 Brightness
102 0 Goblin
103 0 Echo Drops
1 Echo Bell
2 Echo Pan
104 0 Star Theme
Ethnic
[edit]
Patch Number Bank Number Instrument Name
105 0 Sitar 1
1 Sitar 2
106 0 Banjo
107 0 Shamisen
108 0 Koto
1 Taisho Koto
109 0 Kalimba
110 0 Bagpipe
111 0 Fiddle
112 0 Shanai
Percussive
[edit]
Patch Number Bank Number Instrument Name
113 0 Tinkle Bells
114 0 Agogô
115 0 Steel Drums
116 0 Woodblock
1 Castanets
117 0 Taiko Drums
1 Concert Bass Drums
118 0 Melodic Tom 1
1 Melodic Tom 2
119 0 Synth Drums
1 808 Toms
2 Electric Percussion
120 0 Reversed Cymbals
Sound Effect
[edit]
Patch Number Bank Number Instrument Name
121 0 Guitar Fret Noise
1 Guitar Cut Noise
2 String Slap
122 0 Breath Noise
1 Flute Key Click
123 0 Seashore
1 Rain
2 Thunder
3 Wind
4 Stream
5 Bubble
124 0 Bird
1 Dog
2 Horse Gallop
3 Bird 2
125 0 Telephone 1
1 Telephone 2
2 Door Creaking
3 Door Closing
4 Scratch
5 Wind Chimes
126 0 Helicopter
1 Car Engine
2 Car Stop
3 Car Pass
4 Car Crash
5 Siren
6 Train
7 Jet Plane
8 Starship
9 Burst Noise
127 0 Applause
1 Laughter
2 Screaming
3 Punch
4 Heartbeat
5 Footsteps
128 0 Gunshot
1 Machine Gun
2 Laser gun
3 Explosion

Drum sounds

[edit]

These are the same patch numbers as defined in the original version of GS. Drum bank is accessed by setting cc#0 (Bank Select MSB) to 120 and cc#32 (Bank Select LSB) to 0 and PC (Program Change) to select drum kit.

1 Standard Kit The only kit specified by General MIDI Level 1
9 Room Kit Drums recorded with room ambience
17 Power Kit More powerful kick and snare sounds
25 Electronic Kit Sounds of various electronic drums
26 TR-808 Kit Analog drum kit similar to Roland TR-808
33 Jazz Kit Softer kick and snare sounds than the Standard Kit
41 Brush Kit Many brush sounds added
49 Orchestra Kit A collection of concert drums and timpani
57 Sound FX Kit A collection of sound effects

Additional percussion notes

[edit]

These are the same GS drum notes and span Drum Kits 1 to 49:

27 High Q 34 Metronome Bell
28 Slap 82 Shaker
29 Scratch Push 83 Jingle Bell
30 Scratch Pull 84 Belltree
31 Sticks 85 Castanets
32 Square Click 86 Mute Surdo
33 Metronome Click 87 Open Surdo

Supported Control Change messages

[edit]
CC Function
0/32 Bank Select (MSB/LSB)
1 Modulation Wheel
2 Breath Controller
4 Foot Controller
5 Portamento Time
7 Channel Volume
10 Pan
64 Damper Pedal On/Off (Sustain)
65 Portamento On/Off
66 Sostenuto On/Off
67 Soft Pedal On/Off
70 Sound Variation
71 Timbre/Harmonic Intensity (filter resonance)
72 Release Time
73 Attack Time
74 Brightness (cutoff frequency)
75 Decay Time
76 Vibrato Rate
77 Vibrato Depth
78 Vibrato Delay
91 Effect 1 Depth (reverb send level)
92 Effect 2 Depth (formerly tremolo depth)
93 Effect 3 Depth (chorus send level)
94 Effect 4 Depth (formerly detune depth)
95 Effect 5 Depth (formerly phaser depth)
6/38 Data Entry (MSB/LSB)
100/101 Registered Parameter Number (MSB/LSB)

Supported Registered Parameter Numbers (RPNs)

[edit]
  • Pitch Bend Sensitivity
  • Channel Fine Tune
  • Channel Coarse Tune
  • Modulation Depth Range (Vibrato Depth Range)
  • RPN NULL

Supported Universal System Exclusive (SysEx) messages

[edit]
  • Master Volume
  • Master Fine Tuning
  • Master Coarse Tuning
  • Reverb Type
  • 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
  • GM2 System On

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
General MIDI Level 2 (GM2) is a standardized extension of the original (GM) specification for synthesizers and other -compatible devices, designed to enhance device by defining expanded sound libraries, increased performance capabilities, and additional control parameters beyond the core 1.0 protocol. 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 files across hardware. 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. 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 , 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). It also mandates recognition of five effects types—reverb, chorus, celeste/detune, phaser, and —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. These features enable greater expressive control, such as key-based modulation and time adjustments, making GM2 suitable for complex multitimbral arrangements on 16-part devices. GM2's adoption facilitated the creation of richer Standard MIDI Files (SMFs), particularly in professional and consumer synthesizers like the SC-8850, the first module to fully implement the standard, which offered 1,640 preset sounds, 128-voice , and 64-part multitimbrality while supporting GM2-specific modes via system-on messages. 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 , Yamaha, and .

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 , Yamaha, and , whose proprietary extensions like Roland's GS and Yamaha's XG formats influenced the new standardized features, fostering greater among hardware and software. These organizations, as members of the MMA and , collaborated to integrate enhancements that maintained backward compatibility with while introducing additional instrument banks and control messages, thereby improving MIDI file portability for applications in , game audio, and by the late . 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.

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 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 remain in the default bank (MSB 0). The primary advancements focus on enhancing expressiveness for professional music production and applications by introducing structured access to a broader range of sounds and refined parameter controls. 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. 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 increments and RPN 0x0001 for cent adjustments, supporting up to ±24 s per channel for more nuanced performance expression. These features collectively boost the standard's utility in complex arrangements while preserving .

Instrument Specifications

Melodic Programs and Bank Structure

General MIDI Level 2 organizes its melodic instruments into a structured system that expands the sound palette beyond the original Level 1 specification. This structure is accessed via Control Change (CC) messages CC#0 ( Select MSB) and CC#32 ( 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 protocols. 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 (program 8) and (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 extensions. 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 among synthesizers, sound modules, and software while allowing optional implementation of further sub-banks for fuller feature sets. The and characteristics for programs are defined to align with the standard's emphasis on expressive . Overall, this bank structure improves upon GM1's limitation to a single bank by introducing scalable sound variations that enhance musical flexibility.

Percussion Kits and Additional Notes

General MIDI Level 2 specifies nine standardized drum kits for percussion sounds on channel 10: Standard, , Power, Electronic, Analog, , , , and SFX. These kits expand on the single defined in Level 1 by providing variations in and character while maintaining compatibility. The Standard Kit maps notes 35–81 identically to , ensuring seamless playback of existing sequences, while the other kits offer alternative sonic flavors for creative applications. 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. 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 , with the additional kits optional but recommended for full adherence.

Parameter and Control Support

Program and Bank Change Events

In General MIDI Level 2 (GM2), program and change events enable the selection of specific instruments from expanded 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 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 selection, forming a 14-bit 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 ; the selection takes effect only upon receipt of this PC message. 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 , the device ignores the change and remains in the current or defaults silently to Bank 0 (the standard GM1-compatible ) without generating errors or interrupting playback. This prevents disruptions in sequences that may proprietary or undefined banks from other systems. No System Exclusive (SysEx) messages are required for these basic and program changes, maintaining simplicity in the protocol. GM2 supports up to two simultaneous percussion kits on channels 10 and 11. 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. 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. 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.

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. 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 depth; , scaling the overall channel volume level (0 for mute, 127 for maximum); CC#10 (Pan), positioning the sound in the field (0 left, 64 center, 127 right); and CC#11 (Expression), providing post-volume modulation for dynamic intensity (applied after CC#7). 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 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 changes. 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 ). 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 and effects is achievable via NRPNs where supported, though standard 7-bit CCs remain the primary method. Additionally, and controls such as CC#71 (Harmonic Content or Filter Resonance), CC#72 (Release Time), CC#73 (Attack Time), CC#74 (Brightness or ), CC#75 (Decay Time), CC#76 ( Rate), CC#77 ( Depth), and CC#78 ( Delay) are mandatory, each mapping 0-127 to adjust sound characteristics progressively. All CC messages apply to channels 1-16, but channels 10 and 11 (percussion) ignore pitch-altering controls such as pitch bend, (CC#5, CC#65), and tuning adjustments to maintain fixed , while still responding to (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. 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 (), 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.
CC#NameFunctionValue Range/Behavior
0/32Bank SelectSelects instrument bank0-127 (MSB/LSB pair)
1Modulation Wheel depth0-127 (linear increase)
7Main Channel volume scale0-127 (0=mute, 127=max)
10PanStereo position0-127 (left to right)
11ExpressionPost-volume dynamics0-127 (modulates )
64Note sustain0-63=off, 64-127=on
91Effects 1 DepthReverb send0-127 (dry to wet)
93Effects 3 DepthChorus send0-127 (dry to wet)
94Effects 2 DepthVariation effects0-127 (dry to wet)
120All Sound OffSilences all sounds0 (immediate)
121Reset All ControllersDefaults controllers0 (reset)
This table highlights key mandatory CCs for quick reference, emphasizing their role in real-time performance control.

Registered Parameter Numbers (RPNs)

Registered Parameter Numbers (RPNs) provide a standardized method in for accessing extended 14-bit parameters on a per-channel basis, extending beyond the 7-bit resolution of standard Control Change (CC) messages. In General MIDI Level 2 (GM2), RPNs are selected using CC#101 for the most significant byte (MSB) and CC#100 for the least significant byte (LSB) of the parameter number, followed by setting the value via CC#6 ( MSB) and CC#38 ( LSB). This allows for precise control, where the combined 14-bit value ranges from 0 to 16383. Additionally, CC#96 and CC#97 can be used for data increment and decrement, respectively, to adjust the parameter value relatively. GM2 mandates support for three specific RPNs to ensure compatibility across devices. RPN 0x0000 sets Pitch Bend Sensitivity, with the MSB specifying s (typically 0 to 12) and the LSB specifying cents (0 to 99), allowing the pitch bend wheel's ±8192 to ±8191 range to map to the defined deviation—defaulting to ±2 s in but adjustable in GM2 for finer control that integrates directly with pitch bend events. RPN 0x0001 controls Channel Fine Tuning, where the 14-bit value (MSB × 128 + LSB) of 8192 represents zero detuning, with the full range spanning -8192 to +8191 units, equivalent to approximately -100 to +100 cents (since 8192 units equal one or 100 cents). RPN 0x0002 handles Channel Coarse Tuning, using the MSB to set s from -64 (MSB=0) to 0 (MSB=64) to +63 (MSB=127), with the LSB ignored or set to 0 for this parameter. These RPNs must be implemented by all GM2-compliant synthesizers to maintain consistent tuning and bending behavior. Non-Registered Parameter Numbers (NRPNs) operate similarly to RPNs but use CC#99 (MSB) and CC#98 (LSB) for selection, enabling device-specific parameters without conflicting with standardized RPNs. In GM2, devices must recognize and process NRPN messages appropriately, ensuring they do not inadvertently alter registered parameters, though the exact NRPN implementations remain manufacturer-defined—for example, NRPN 0x0100 may control sample tuning on certain devices. The same 14-bit data entry mechanism (CC#6 and CC#38) applies, providing high-resolution adjustments for custom controls. To prevent parameters from remaining selected after use—which could lead to unintended changes—a reset procedure is required by sending CC#101=127 (0x7F) and CC#100=127 (0x7F) to select the null RPN (0x7F7F), effectively clearing the current selection and restoring default behavior. This nullification ensures safe sequencing and device state management in GM2 environments. The 14-bit resolution of RPN and NRPN data entry enhances precision for parameters like tuning, where the combined MSB and LSB values allow granular control over 16384 possible steps, far surpassing the limitations of single 7-bit CC messages.

Universal System Exclusive (SysEx) Messages

Universal System Exclusive (SysEx) messages in General MIDI Level 2 (GM2) extend the MIDI 1.0 standard to provide standardized non-manufacturer-specific communications for device initialization, , and control, ensuring interoperability among compliant synthesizers. These messages follow a defined format for both non-real-time and real-time operations, beginning with F0 followed by the universal ID (7E for non-real-time or 7F for real-time), a device ID (7F for broadcast to all devices or 00-7F for a specific device), sub-ID bytes, optional data, and ending with F7. This structure allows GM2 devices to handle global operations without proprietary protocols. GM2 incorporates specific non-real-time SysEx messages for mode initialization, with the GM1 System On message (F0 7E 7F 09 01 F7) resetting the device to basic compatibility while maintaining backward support in GM2 implementations, and the GM2 System On message (F0 7E 7F 09 03 F7) performing a full Level 2 initialization, including activation of expanded instrument banks, effects, and control features. These messages ensure that upon receipt, the device clears prior settings and configures channels, programs, and controllers to GM2 defaults, facilitating seamless playback of GM2-formatted sequences across hardware. Parameter inquiry in GM2 utilizes non-real-time SysEx for compliance verification, such as the identity request message (F0 7E 7F 06 01 F7), which prompts the device to reply with its manufacturer ID, family code, model number, and version for identification. This allows sequencers or controllers to confirm device capabilities, though explicit GM level is inferred from the response or System On acknowledgment. Additionally, real-time SysEx supports global adjustments like Master Fine Tuning (F0 7F 7F 04 03 vv vv F7), where vv vv represents a 14-bit value for precise pitch correction in cents relative to A440 Hz, enabling fine-tuned ensemble performance without affecting individual channel tuning. Bulk dump support in GM2 is optional for transmitting instrument parameters or sample data but mandatory for responding to the identity request message (F0 7E 7F 06 01 F7), which prompts the device to reply with F0 7E 06 02 mm ff ff dd dd ss ss ss ss F7, detailing the manufacturer ID (mm), device family (ff ff), model (dd dd), and version (ss ss ss ss) for identification in multi-device setups. This ensures GM2 devices can be queried for compatibility during setup, though full bulk dumps of proprietary data remain vendor-specific. Error handling in GM2 SysEx processing requires devices to silently ignore unrecognized universal messages to prevent disruption, with no response obligated for non-universal or malformed SysEx; however, for bulk transfers, handshaking flags like ACK (F0 7E 7F pp F7) or NAK (F0 7E 7E pp F7) may be used to manage .

Implementation and Compatibility

General Hardware Requirements

General MIDI Level 2 (GM2) compliant devices must support a minimum of 32 simultaneous notes across 16 MIDI channels, enabling up to 16 melodic instruments on any channel and up to 2 percussion kits on channels 10 and 11. This represents an increase from the 24-note required by Level 1, allowing for more complex musical arrangements without voice stealing under typical loads. Connectivity for GM2 devices follows the MIDI 1.0 standard, requiring at least MIDI In and Out ports using 5-pin DIN connectors, with opto-isolation on the input to prevent ground loops. The protocol operates at a fixed baud rate of 31.25 kbps (plus or minus 1%), using asynchronous serial transmission with 1 start bit, 8 data bits, and 1 stop bit, ensuring reliable real-time performance with latency typically under 20 ms for note-on to audio output in hardware synthesizers. Optional USB-MIDI interfaces may be included, but core compliance mandates support for the traditional 31.25 kbps MIDI baud rate. Processing and memory requirements are implied by the need to handle GM2's expanded instrument set of at least 256 melodic programs and additional percussion , necessitating sufficient RAM to store core waveforms and drum samples without compromising or effects processing. Devices must also support real-time effects like reverb and chorus tied to control changes, requiring CPU capability to apply these without interrupting note playback. Compliance is verified through guidelines established by the Manufacturers Association (MMA) in the 1999 GM2 specification, ensuring interoperability across hardware.

Effects and Advanced Capabilities

General MIDI Level 2 introduces enhanced audio effects beyond the basic capabilities of Level 1, including standardized support for reverb and chorus processing to add spatial depth and modulation to sounds. Reverb effects feature six types, such as small room, medium room, large room, medium hall, large hall, and plate, which can be selected using Universal System Exclusive messages under the General MIDI sub-ID. The reverb depth for each channel is controlled via Control Change message #91 (Effects 1 Depth), with values ranging from 0 (no effect) to 127 (maximum effect). Similarly, chorus effects include five types—Chorus 1 through 4 and Feedback—providing options for subtle doubling to more pronounced modulation, also selectable via Universal SysEx, with depth adjusted by CC#93 (Effects 3 Depth) in the same 0-127 range. These effects are global but support per-channel send levels, enabling precise mixing in multi-timbral setups. GM2 also requires support for additional effect depths via CC#92 (Tremolo Depth), CC#94 (Celeste/Detune Depth), and CC#95 (Phaser Depth), extending expressive capabilities without compromising the minimum 32-voice . Defined in the 1999 specification by the MIDI Manufacturers Association, these capabilities remain relevant as of November 2025 for integrating hardware synthesizers with digital audio workstations (DAWs) and virtual instruments, supporting seamless playback of GM2-compatible files.
Add your contribution
Related Hubs
User Avatar
No comments yet.