|
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
|