||Making Music With Project XG|
In the past, one of the problems of distributing MIDI song files was that in order for a song to playback 'properly' on any music system, it required that the system have the same instrument sounds as the system the songs were composed on. With so many differing systems, it was next to impossible to audition a song without first having to change instrumentation or spend hours tediously tweaking sounds and settings.
Fortunately though, as with most problems, it is only a matter of time before someone comes up with a way to improve things. In September of 1991, the MIDI Manufacturers Association (MMA) and the Japanese MIDI Standards Committee (JMSC) adopted the "General MIDI System - Level 1" specification (GM).
When used in conjunction with the Standard MIDI file format (SMF), GM provides a more compatible way to exchange music compositions from one system to another.
Standard MIDI File Format
Format 0: Stores all MIDI data in a single track. It allows the simplest methods of playback and is the most commonly used.
Format 1: Adds the capability to store MIDI data separated into multiple tracks. This format is recommended for ease of modification.
Format 2: Allows the storage of multiple tracks and multiple sequences.
Unlike common tracker and mod formats, SMF does not store actual sound data. It only stores MIDI information for triggering and controlling sound generation devices. One main advantage of this is a substantial reduction in file size.
The instrument section allows musicians to put MIDI program change messages in song files to specifically select a particular sound on a GM device. This insures that a part that is intended to be played on piano is not played by a flute or other instrument. In this way, selecting patch/program number 3 and playing notes, will always produce the sound of an Electric Grand piano. GM provides for the selection of 128 instruments divided into 16 different groups or families (see Table 1). Instruments can be triggered on MIDI channels 1 to 9 and 11 to 16.
The percussion section contains 47 'drum' sounds assigned to specific MIDI note numbers 35 to 81 (see Table 2). Some GM devices extend this range to include additional sounds for the remaining Note numbers 1 to 34 and 82 to 128, but these additions are generally device specific and not compatible across different systems. MIDI channel #10 is set aside for control of the percussion section.
There is no defined MIDI standard for keyboard octave relation. Some manufacturers number octaves from 0 to 10, others use -2 to 8 to refer to the same notes. A common problem related to this is that songs may playback shifted up or down one or more octaves. GM solves this by assuring that all patches will have a pitch of 440 Hz (A440) when playing MIDI note number 69.
GM does not define how sounds are to be generated. It is up to the hardware manufacturer to implement sounds that conform to GM, be it through analog, FM, wavetable, or monkey synthesis. So, an Acoustic Grand piano (#1) might not sound exactly the same on an GM analog device as it does on a GM digital sample player.
In addition to instrument and percussion sound selection, GM also implements other commonly used features of MIDI. These include: velocity, pitch wheel, channel pressure, controllers and registered parameter messages.
Velocity: Generally, velocity (part of the MIDI note message) is used to control the volume that a sound plays back at for each note (VCA level). Some devices may allow velocity to control other parameters, instead.
Pitch Wheel: Pitch wheels or pitch benders, as they are often called, offset the frequency that notes play back at. GM defaults to a range of -2 to +2 semitones, allowing frequencies to be 'bent' from the normal. Pitch bending affects all notes playing on the assigned MIDI channel.
Channel Pressure: This is the amount of pressure or 'push' when playing a note on a keyboard. It is often applied to control vibrato (VCO level) or volume (VCA level). Channel pressure affects all notes playing on the assigned MIDI channel.
Controllers: The following MIDI controller messages are also supported: Modulation (1), Channel Volume (7), Pan (10), Expression (11), Sustain (64), Reset All Controllers (121) and All Notes Off (123). Channel Volume defaults to 90 (0 to 127) with all other controllers set to off or normal.
Registered Parameters: MIDI RPN messages are also supported: Pitch Wheel Bend Range (0), Fine Tuning (1) and Coarse Tuning (2).
GM requires that devices (hardware or software) meet the following minimum playback requirements:
24 Voices: A minimum of 24 voices are available for instrument and percussion sounds. Generally, one voice is required to playback one sound at one pitch. So, playing a single note, usually requires one voice. But, playing a 3 note chord would require 3 voices. So, if at a particular time you wanted to play several 8 note chords, you would be limited to a maximum of 3 instruments playing at once. Also, keep in mind that some devices may implement instruments with layered voices, so playing one note may require multiple voices. Some devices implement voice allocation specifically as 16 instrument voices plus 8 percussion voices.
16 MIDI Channels: Each channel can play a different instrument and can respond to separate MIDI controllers, pitch wheel, etc.
Although GM was a step in the right direction it was only developed as a "recommended practice" for use with MIDI, it was never intended to be a standard. Manufacturers such as Roland and Yamaha chose to build on GM, each offering their own enhancements to the General MIDI guidelines.
Sounds: XG increases the instrument and percussion sections to a minimum of 480 sounds. It implements a bank selection system to accommodate the increased number of voices. To select a particular sound, a bank is first selected and then followed by the standard program change message. The sound selection process is delayed until both a bank select and program change message are received. So, just sending a bank select message will not work.
The bank selection is divided into two parts: MSB and LSB. The MSB specifies the type of sound: instrument (melody), sound effect, or rhythm voice. This means that percussion is not limited only to MIDI channel 10, as in GM. The LSB is used to select instrument variations.
Editing: In addition to the control options of GM, XG provides additional parameters that allow the sound waveforms to be changed. This includes control of brightness (filter cutoff frequency), harmonic content (resonance), attack rate, release time and others. These enhancements can be applied to any sounds in the XG sound sets.
Effects Processing: XG provides effects processing which can be applied to individual MIDI channels or to all channels simultaneously. There are three effect groups: reverb (8 types, ex: hall, room), chorus (8 types, ex: chorus, flanger) and variation (35 types, ex: reverb, chorus, tremolo, rotary speaker, auto-wah, amp simulator, distortion). Each effect can also be modified with real-time parameters such as: time and frequency. Some devices may also include a graphic equalizer.
External Inputs: XG allows other sound sources such as microphones, synthesizers or tape recorders to be mixed with MIDI playback. This audio signal can be controlled through MIDI or additionally processed with the effects.
XG is upward compatible with GM, so GM data will playback and can be created on any XG tone generator. However, XG enhanced files will not playback on GM devices.
Of particular concern is the allocation of voices. Although GM guidelines require a device to have 24 voices, it does not specify how they are to be used. So an instrument, such as Drawbar Organ (#17), might require one voice on one device but use four or more on another. To be sure, avoid using the maximum voices, when possible.
Similarly, if a sound has a longer release, it will still use at least one voice while it continues to fade, even if you can not hear it. So it is important to be careful about holding notes longer than necessary. Do not assume that because you can not hear a voice that it is not playing. If in doubt, try turning the volume up and listen closely.
Another concern is that GM does not specify what VCA envelope (volume shape) each sound should have. This means that a sound on one device might not have the same release (time for volume fading) as on another. So, some sounds may unexpectedly cut-off or overlap on one GM device but not on another.
General MIDI provides a great way for composers to share their MIDI creations with others, making it much more likely that the listener will hear a song the way it was intended to be heard. GM does have some downfalls and it is not appropriate for every application, but overall it has been well designed and thought out. GM was designed with the future in mind and enhancements, such as those provided in XG and GS, improve much on the original specification.
For more information on MIDI contact:
Yamaha Corporation of America
Roland Corporation US
TABLE 1: GM Instruments
TABLE 2: GM Percussion