Et Cetera The Source for Computer Music and Audio Software and Hardware
TEL: 01706 285650
Get advance news on Sonar and FL Studio upgrades
SUPPORT ACADEMIC
   
Appendix 2

 

Appendix 2 - Differences Between GM, GS and XG

The differences between the Yamaha XG format and earlier ones such as General MIDI (GM) and Roland's General Synthesis (GS) are sometimes straightforward and sometimes subtle. General MIDI defines a minimum set of requirements that an instrument must meet in order to be called "GM-compatible." (see Appendix 1) It is important to understand that both XG and GS are supersets of GM; in other words, both formats meet all the requirements of General MIDI and so are 100% GM-compatible-but both also expand on GM.

XG and GS each provide their own minimum set of requirements that must be subscribed to for an instrument to be XG- or GS-compatible. Both formats also provide support for a number of optional features that may be implemented in specific instruments. The Yamaha MU80 tone module, for example, utilizes many of XG's optional features, while the Roland SC-88 tone module utilizes many of the GS optional features.

Number of Voices, Voice, Organization and Voice Selection

GM: 128 Presets (corresponding to program change messages 0 - 127), organized in 16 groups of 8 Presets each. No provision for the use of Bank Select messages (cc #0 and/or #32).
GS: Minimum requirement: 226 voices ("Tones"). Roland SC-88 provides 654 voices; SC-55 Mk II provides 354 voices. Bank Select MSB (cc #0) and, rarely, LSB (cc #32) is used to select banks of "Variation" Tones, with program change messages used to select individual Tones. When Bank Select MSB = 0 (default setting), bank of "Capital" Tones (the GM Sound Set) is selected. When a GS-compatible instrument receives a Bank Select message followed by a program change message that points to an empty voice slot, the instrument plays silence.
XG: Minimum requirement: 520 voices. Yamaha MU80 provides 729 voices; MU50 provides 737 voices. Bank Select MSB is used to select any of four bank types: Melody voices, SFX (Special Effects) voices, SFX kit (the SFX sounds, mapped one to a key), or Rhythm kit (various drum and percussion sounds, mapped one to a key). When Bank Select MSB = 0, the Bank Select LSB is then used to select any of 128 banks of voices, each containing 128 Presets (accessed by standard MIDI program change messages). Program change messages are also used to select different SFX voices, SFX kits or Rhythm Kits. When Bank Select MSB and LSB are both = 0, the GM Sound Set is selected; when Bank Select MSB = 0 and LSB is not equal to 0, banks of alternate "Variation" melody voices are selected. Unique sounds which are not direct variations on the GM Sound Set are located in their own "SFX" bank(s), accessed by setting the Bank Select MSB to 40h. When an XG instrument receives a Bank Select message followed by a program change message that points to an empty Melody voice slot, the instrument substitutes the corresponding GM Sound Set voice, ensuring that the voice will be heard with a sound that is at least similar to the one intended.

Back to Contents Back to Top

 

Number of MIDI Channels

GM: 16, with each channel capable of playing a different instrument polyphonically.

GS:
16 "or more," with no specific instructions as to how additional MIDI channels are to be implemented. Roland SC-88 uses 32 MIDI channels and provides 32-way multitimbral capability; SC-55 Mk II uses 16 MIDI channels and provides 16-way multitimbral capability.
XG: 16 or 32, with specified system exclusive messages used to select the receive channel for each part (in the case of XG instruments providing 32 MIDI channels, these are organized as channels A1 - A16 and B1 - B16). XG instruments which support 32 MIDI channels are 32-way multitimbral. Yamaha MU80 uses 32 MIDI channels, and provides 32-way multitimbral capability; MU50 uses 16 MIDI channels and provides 16-way multitimbral capability.

Back to Contents Back to Top

Polyphony

GM: 24 notes, dynamically allocated
GS: Minimum requirement: 24 notes, dynamically allocated. Optional support for additional polyphony. Roland SC-88 has 64-note polyphony; SC-55 Mk II has 28-note polyphony.
XG: Minimum requirement: 32 notes, dynamically allocated. Optional support for additional polyphony. Yamaha MU80 has 64-note polyphony; MU50 has 32-note polyphony.

Back to Contents Back to Top

Rhythm Channels

GM: 24 notes, dynamically allocated.
GS: Minimum requirement: 24 notes, dynamically allocated. Optional support for additional polyphony. Roland SC-88 has 64-note polyphony; SC-55 Mk II has 28-note polyphony.
XG: Minimum requirement: 32 notes, dynamically allocated. Optional support for additional polyphony. Yamaha MU80 has 64-note polyphony; MU50 has 32-note polyphony.
GM: GM specifies that MIDI channel 10 is to be used exclusively as a rhythm channel, and further designates a single standard GM "Percussion Map," in which note numbers 35 - 81 are assigned particular drum and percussion sounds.
GS: Uses channel 10 for rhythm parts. Minimum requirement: 9 "drum sets." These include one that provides the standard GM Percussion map, as well as 7 "variation" sets (which use the same note numbers as the GM Percussion Map but substitute alternate drum sounds), and a single "SFX Set" (which contains non-standard percussion sounds). Roland SC-88 provides 24 drum sets, including two SFX Sets; SC-55 Mk II provides 10 drum sets, including one SFX Set. Some drum sets expand the range of the GM Percussion Map to include additional note numbers. System exclusive messages are utilized for non-real-time designation of up to two rhythm channels (including channel 10) which can optionally access a single alternate percussion map. When a GS-compatible instrument receives a program change message on channel 10 pointing to a drum set that doesn't exist, no sound is heard.
XG: Normally uses channel 10 for rhythm parts (though channel 10 can optionally be designated to play melody voices). XG-compatible instruments which support 32 MIDI channels normally use both channel 10 and channel 26 (the tenth channel in the second set of 16) as rhythm channels. Any number of additional channels can be designated for rhythm parts (in real time) by transmitting a Bank Select MSB value of 7Fh. Minimum requirement: 11 "drum kits." These include one that provides the standard GM Percussion map, as well as 7 "variation" sets (which use the same note numbers as the GM Percussion Map but substitute alternate drum sounds), and two "SFX" kits (which contain non-standard percussion sounds). Optional support for additional SFX kits. Some drum kits expand the range of the GM Percussion Map to include additional note numbers. When an XG-compatible instrument receives a program change message pointing to a drum kit or SFX kit that doesn't exist, it is ignored and the currently selected drum kit or SFX kit is substituted, ensuring that sound is heard.

Back to Contents Back to Top

Control Change Messages

GM: GM-compatible instruments are required to respond to the following seven control change messages: Modulation (cc #1), Volume (cc #7), Panpot (cc #10), Expression (cc #11), Sustain (cc #64), and RPNs (Registered Parameter Numbers) (cc #100 [LSB] and cc #101 [MSB]). Modulation (cc #1) "will change the nature of the sound in the most natural (expected) way, i.e. depth of LFO; change of timbre; add more tine sound, etc." Volume (cc #7) is to be used to set the overall volume of the channel prior to music data playback as well as mixdown Fader-style movements, while Expression (cc #11) is to be used during music data playback to attenuate the programmed MIDI volume, thus creating diminuendos and crescendos. In the case of rhythm instruments, the balance between individual sounds is preset, and Volume and Expression messages adjust the overall level of the instrument. Panpot (cc #10) is used to place the stereo position of the sound between hard left (0) and hard right (127), with a value of 64 (40h) indicating center position. GM-compatible instruments are not required to necessarily provide 128 steps of adjustment, but at least three points (hard left/center/hard right) are necessary. Though recommended, it is not required that a currently-sounding note be moved when a Panpot message is received; it is acceptable to apply the new pan position starting with the next note. Some GM-compatible instruments therefore do not allow the pan position to be changed while a note is sounding. It is not required that rhythm instruments respond to Panpot messages since pan is preset for each individual sound. If a GM-compatible instrument does allow reception of Panpot over the rhythm channel, the entire set of percussion sounds will be shifted left or right. The Sustain message (cc #64) is the only pedal-related message whose reception is required by GM. In general, only On and Off values are recognized by GM-compatible instruments for Sustain; for this reason, GM specifies that Sustain data of 0 - 63 be considered Off and data of 64 - 127 be considered On (some GM instruments may optionally accept continuous data for piano-type sounds, this allowing half-damper and re-damper effects).
GS: Minimum requirement: All seven GM cc messages, plus: Bank Select (cc #0 [MSB] and cc #32 [LSB]); Portamento Time (cc #5); Data Entry (cc #6 [MSB] and cc #38 [LSB]); Portamento (cc #65); NRPN (Non-Registered Parameter Numbers) (cc #98 [LSB] and #99 [MSB]). The Data Entry MSB and LSB (cc #6 and cc #38) are used in conjunction with NRPNs (Non-Registered Parameter Numbers) (cc #98 and #99). Optional support is provided for the following: Sostenuto (cc #66); Soft (cc #67); Portamento Control (cc #84); External Effects Depth (cc #91); and Chorus Depth (cc #93). Optional support for half-damper of Sustain (cc #64).
XG: Minimum requirement: All GM and GS required and optional cc messages, plus: Harmonic Content (cc #71); Release Time (cc #72); Attack Time (cc #73); Brightness (cc #74); and Celeste (Detune) Depth (cc #94).
The first four of these play a particularly important role since they allow continuously variable timbral changes to be made easily-and in real time-to any XG voice. Since these are all adjustments that are relative to the existing voice parameter settings, the end result will depend upon the original programming of the voice. The default setting for each is a data value of 64 (the zeroed center value), which produces no change. Harmonic Content (cc #71) modifies the resonance of the voice's lowpass filter. Data values higher than 64 cause the sound to become more nasal, while data values lower than 64 cause the sound to become more open.
Brightness (cc #74) modifies the cutoff frequency of the voice's lowpass filter. Data values higher than 64 enable higher frequencies to pass through, (making the sound more brilliant), while data values lower than 64 cause increased filtering, making the sound warmer. The Attack Time (cc #73) and Release Time (cc #72) messages allow adjustments to be made to the voice's envelope. Attack Time describes how long it takes an envelope to reach maximum level after a note is played, while Release Time is the opposite, describing how long it takes an envelope to reach minimum level after a note is released. Data values higher than 64 cause the sound to attack or release more slowly, while data values lower than 64 cause the sound to attack or release more rapidly.
The Celeste (Detune) Depth message (cc #94) is used by XG-compatible instruments to set the Variation effect send level. As with GS, External Effects Depth (cc #91) is used to set the amount of reverb send level and Chorus Depth (cc #93) is used to set the amount of chorus send level. For more information, see the "Effects" section below. For pedal-related controllers (Sustain, Portamento, Sostenuto, and Soft), data values in the range 0 - 63 are considered "Off," while data values in the range 64 - 127 are considered "On."

Back to Contents Back to Top

.RPNs (Registered Parameter Numbers)

Registered Parameter Numbers, or "RPNs" for short, are simply a standardized list of voice parameters (for all MIDI instruments) that can be changed in real time using control change messages. Currently, the MIDI standards committees have approved three RPNs: Pitch Bend Sensitivity, Fine Tuning, and Coarse Tuning. To access these parameters, control change #101 (carrying the RPN MSB) and #100 (carrying the RPN LSB) are used.

GM: GM-compatible instruments must be capable of receiving all three RPNs: Pitch Bend Sensitivity (RPN #0), Fine Tuning (RPN #1), and Coarse Tuning (RPN #2).
GS: Minimum requirement: Same as GM. Data values are set using Data Entry (cc #6 [MSB] and cc #38 [LSB]). If a range of 128 values is sufficient, the MSB alone (cc #6) can be used. If greater resolution is required, both the Data Entry MSB and LSB (cc #38) can be used.
XG: Minimum requirement: Same as GM and GS, but Pitch Bend Sensitivity is set in semitones only (the Data Entry LSB is always ignored).

Back to Contents Back to Top

NRPNs (Non-Registered Parameter Numbers)

Non-Registered Parameter Numbers (NRPNs) are similar to RPNs except that they provide a list of voice parameters unique to a particular instrument. This is an area of MIDI that is quite open, since manufacturers are given the freedom to implement NRPNs as they like. Control change #99 (carrying the NRPN MSB) and #98 (carrying the NRPN LSB) are used to access manufacturer-specified NRPNs.

GM: GM makes no mention of the usage of NRPNs.
GS: Minimum requirement: None (the use of NRPNs is optional, though recommended). Optional support is provided for the following 13 NRPNs: Vibrato Rate, Vibrato Depth, Vibrato Delay, Filter Cutoff, Filter Resonance, Attack Time, Decay Time, Release Time, Drum Instrument Pitch, Drum Instrument Level, Drum Instrument Pan, Drum Instrument Reverb Send, Drum Instrument Chorus Send. All NRPN values are set with the Data Entry MSB (cc #6) only (the Data Entry LSB [cc #38] is ignored). When the drum instrument Pan data value is 0, panning for that sound is ran-dom. Roland SC-88 responds to 14 NRPNs; SC-55 Mk. II responds to 13 NRPNS.
XG: Minimum requirement: XG compatible instruments must utilize the following 19 NRPNs: Vibrato Rate, Vibrato Depth, Vibrato Delay, Filter Cutoff Frequency, Filter Resonance, EG Attack Rate, EG Decay Rate, EG Release Rate, Drum Filter Cutoff Frequency, Drum Filter Resonance, Drum EG Attack Rate, Drum EG Decay Rate, Drum Instrument Pitch Coarse, Drum Instrument Pitch Fine, Drum Instrument Level, Drum Instrument Pan, Drum Instrument Reverb Send Level, Drum Instrument Chorus Send Level, Drum Instrument Variation Send Level.
All NRPN data changes are specified as being relative, with a Data Entry value of 64 (the zeroed center value) causing no change to the sound, and values greater or less than 64 causing increased or decreased change. As with GS, the Data Entry LSB (cc #38) is ignored; all NRPN values are set with the Data Entry MSB (cc #6) only. As with GS, when the drum instrument Pan data value is 0, panning for that sound is random. Yamaha MU80 responds to 19 NRPNs; MU50 responds

Back to Contents Back to Top

Pitch Bend and Aftertouch

GM: GM-compatible instruments must be capable of receiving Pitch Bend and Channel Pressure messages for all melody voices, though rhythm instruments are not required to receive either. GM specifies the default Pitch Bend Range as ±2 semitones with Pitch Sensitivity set by RPN, but the pitch shift curve is not defined. Similarly, the effect of Channel Pressure is not defined. Receipt of Polyphonic Key Pressure is not required.
GS: Minimum requirement: GS compatible instruments must follow all GM guidelines as described above. Optional support is provided for receiving Polyphonic Key Pressure and for defining the effect of Channel Pressure with the use of system exclusive messages. GS does not define the pitch bend curve.
XG : Minimum requirement: XG compatible instruments must follow all GM guidelines as described above, and also must be capable of receiving Polyphonic Key Pressure. The pitch shift curve is defined as linear by cents, ensuring pitch bend compatibility between XG instruments Pitch bend can be used to affect rhythm channels as well as melody voices.

Back to Contents Back to Top

Effects

GM: GM provides no provision for the use of either onboard or external effects.
GS: Minimum requirement: None (reverb and chorus recommended but not required). Optional support for a maximum of four internal effects: reverb, chorus, delay and EQ. If used, reverb send level is determined by cc #91, chorus send level is determined by cc #93, and delay send level is determined by cc #94. Non-Registered Parameter Numbers (NRPNs) can optionally be used to set reverb and chorus send levels for individual sounds within drum instruments. System exclusive messages are used for non-real-time selection from among preset reverb and chorus types and to customize effects settings. Roland SC-88 provides 3 onboard effects (reverb, chorus, and delay), plus a two-band equalizer, with 8 reverb types, 8 chorus types, and 10 delay types; SC-55 Mk II provides 2 onboard effects (reverb and chorus), with 8 reverb types and 8 chorus types .
XG: Minimum requirement: Three onboard effects (reverb, chorus, and "Variation," the latter of which must be able to be used either in a standard send-return configuration or in a unity gain "insert" configuration, with a system exclusive message used to set the desired condition), with 8 defined reverb effects types, 8 defined chorus effects types, and 35 defined Variation effects types. Optional support for two additional effects: distortion and graphic EQ. Reverb send level is determined by cc #91, chorus send level is determined by cc #93, and Variation send level is determined by cc #94. Non-Registered Parameter Numbers (NRPNs) are used to set reverb, chorus, and Variation send levels for individual sounds within drum instruments. System exclusive messages are not only used to select preset effects types and customize effects settings but are also used to specify effects routings (allowing for parallel or variable amounts of serial routing). A user-defined real-time controller (such as a foot pedal or wheel) can be used to alter one effects parameter (usually dry/wet mix) in the selected Variation effect. Yamaha MU80 provides 4 onboard effects (reverb, chorus, Variation, distortion) plus a 5-band graphic equalizer, with 12 reverb types, 10 chorus types, 42 Variation types, and 3 distortion types (as well as 4 EQ Presets); MU50 provides 3 onboard effects (reverb, chorus, Variation), with 11 reverb types, 11 chorus types, and 41 Variation types.

Back to Contents Back to Top

External Audio Input

The ability to input external audio signal into a MIDI tone generator and then control that signal via MIDI messages is a relatively new phenomenon, largely made possible through the increased availability of affordable analog-to-digital converter chips. This advanced feature enables real-time participation in the MIDI music being generated and effectively forges a bridge into the worlds of karaoke and multimedia.

GM: No provision for external audio input.
GS: No provision for external audio input. Roland SC-88 provides two channels of audio input, though these are not under MIDI control.
XG: Provides optional support for one or more external audio inputs, called "A/D channels." The digital signal from these channels (derived from the onboard A/D converter) is processed and controlled in the same way as the tone generator signals being produced by MIDI channels: overall level and pan position can be controlled in real-time, as well as send levels to any or all internal effects. System exclusive messages are used to set input gain, MIDI receive channel number, and on-off reception status for incoming volume (cc #7), pan (cc #10), and expression (cc #11) messages and are also used to select from among various A/D channel Presets, each of which call up complete settings complementary to the instrument type. For example, an A/D preset for a mic. input might include reverb and compression effects, whereas one for guitar might include chorusing, echo and distortion effects. Yamaha MU80 provides 2 MIDI-con-trolled A/D channels.

Back to Contents Back to Top

Channel Mode Messages

The MIDI Specification designates control change numbers 120 - 127 for carrying what are known as Channel Mode messages.

GM:

GM-compatible instruments must be capable of receiving the following two Channel Mode messages: Reset All Controllers (cc #121) and All Notes Off (cc #123). When a Reset All Controllers message is received, the GM guidelines specify that data on all channels be reset as follows:

  • Pitch bend is centered
  • Channel pressure is zeroed
  • Modulation is zeroed
  • Expression is set to maximum
  • (data value of 127)
  • Sustain is set to Off
  • (data value of 0)
  • RPN is set to Null
GS: Minimum requirement: In addition to following the GM guidelines described above, GS-compatible instruments are also capable of receiving the following Channel Mode messages: All Sounds Off (cc #120) and Mono/Poly (cc #126, 127) GS instruments normally operate in MIDI Mode 3 but are changed to Mode 4 upon receipt of a Mono On message. Receipt of either Mono On or Poly On cause the same processing operation as an All Sounds Off message. Because they cannot operate in Modes 1 or 2, receipt of Omni On or Omni Off causes the same processing operation as an All Notes Off message and Omni remains off.
XG: Minimum requirement: XG compatible instruments respond to Channel Mode messages in the same way as GS compatible instruments.

Back to Contents Back to Top

 

System Messages

MIDI System messages include messages that control the entire instrument and messages that handle data unique to a manufacturer and model. The concept of "channel" does not apply to System messages-they affect all voices. Many of these messages are used only for synchronization and the only System messages that are applicable to tone generators are the broad category of system exclusive messages (which set global functions such as operating mode and deal with sound and effects
parameters) and the Active Sensing message (which prevents problems that could result from broken connections). It is worth noting that the category of system exclusive messages include some general-purpose messages, known as Universal system exclusive. Universal system exclusive messages are further divided into real-time and non-real-time messages.

GM:

GM-compatible instruments must recognize the following two Universal Non-Real Time system exclusive messages: Turn GM System On and Turn GM System Off. If a GM-compatible instrument has operational modes that allow it to function other than as a GM instrument, the reception of the Turn GM System On message must cause it to switch to GM mode and initialize itself. Even if the instrument functions only in GM mode, reception of this message must cause reinitialization to the following states:

  • Program Change 00 (first program)
  • Modulation Depth 00
  • Volume 100
  • Pan 64 (center)
  • Expression 127 (maximum)
  • Sustain 00 (off)
  • RPN Fine Tune 64,00 (0)
  • RPN Coarse Tune 64,00 (0)
  • RPN Null
  • Pitch Bend 64 (center)
  • Channel Pressure (all channels) 0

The Turn GM System Off message is used to exit GM mode, but will be ignored if the instrument functions only in GM mode. GM recommends but does not require that Active Sensing be implemented. Nearly all GM instruments do include this feature.

GS: Minimum requirement: Reception of the Turn GM System On Universal Non-Real-time system exclusive message, as well as the following additional system exclusive messages: GS Reset (which places the instrument in GS operational mode), Master Volume (a Universal Real-time message), Receive Channel (per part), Use For Rhythm Part (which changes a melody part to a rhythm part), and Scale Tuning (which sets the tuning globally). Optional support is provided for 16 system exclusive messages (which are recommended but not required) for the alteration of voice and effects parameters, as well as global messages to set voice and channel assignments, scale tuning and effects routings. Additional system exclusive messages may be utilized by individual instruments. The recognition of Active Sensing is recommended but not required. Roland SC-88 and SC-55 both respond to Active Sensing.
XG: Minimum requirement: Reception of Active Sensing and the Turn GM System On Universal Non-Real-time system exclusive message, as well as the following additional system exclusive messages: XG System On (which places the instrument in XG operational mode, not only setting the instrument to a default state but also enabling the reception of XG-specific NRPNs), Master Volume (a Universal Real-time message), and Master Tuning (which provides a convenient way to tune all channels simultaneously) In addition, XG defines a generic Parameter Change SysEx message, which can be used to alter almost every XG parameter, including voice and effects data, as well as messages to set the effects routings, optional A/D input(s), and optional master equalizer. The advantage to using one generic "template" such as this is that the procedure for setting parameters is basically the same for all XG instruments. XG also defines Parameter Request and Dump Request SysEx commands (requests for an instrument to transmit data for one particular parameter or all internal data). Yamaha MU80 and MU50 both respond to Active Sensing.

Back to Contents Back to Top

 

Et Cetera Home Page

All prices on our website are in UK pounds (sterling)
Our Privacy Policy, Terms and Conditions, About Et Cetera, Email Webmaster
© 1993-2012 Et Cetera Distribution Limited