|What is MIDI?
"MIDI" stands for "Musical Instrument Digital Interface", and is a standard digital "language" which allows musical instruments and related devices from any manufacturer to communicate with one another via a simple cable. MIDI was created in 1983, with cooperation and agreement between electronic musical instrument manufacturers from around the world.
MIDI immediately opened up a whole new world of musical possibilities: several instruments could be connected and played simultaneously, a sequencer could be used to simultaneously drive several synthesizers playing different parts of a composition, sequencer playback could be synchronized with drum machines, and much more. It also became possible to simultaneously switch voices and control parameters such as pitch bend on several instruments at once. Of course, it also became possible to connect computers and musical instruments. In fact, it wasn't long before computers were being manufactured with built-in MIDI tone generators, paving the way for advanced desk-top music production, multimedia, and game software applications.
Simply stated, MIDI is basically a standard set of commands, known as MIDI "messages", which can be transmitted and received via a MIDI cable.
What is GM?
The term "GM" is frequently used to refer to "General MIDI System Level 1". "General MIDI" is another abbreviation which is often used. This is not a specification or standard in itself, but a "Recommended Practice" for the MIDI standard. GM was introduced in 1991 to overcome a common problem: MIDI song data created for playback on one tone generator would not necessarily play back properly on a different tone generator. A problem that was caused primarily by the fact that the same "program change" number would select completely different voices on different tone generators. GM provided a standard set of basic voices, allocated to the same program change numbers, and a few basic rules concerning the use of the various MIDI channels. By providing this basic framework for all GM tone generators, it became possible to accurately reproduce GM song data on any GM-compatible tone generator.
A great number of sequencers and software sequencer applications are available for the production of song data. Each of these generally has its own format for storing and manipulating data files. This, naturally, makes it impossible to play or edit music data created on one sequencer on anyother. Another standard comes to the rescue: SMF (the Standard MIDI File format) was created to provide a standard file format that could be used to transfer music data between all sequencers and software sequencer applications. Most sequencers now give the user the choice of saving files in the sequencer's own format, or in SMF for convenient transfer to other equipment.
SMF actually supports three subtly-different formats:
This format assembles all MIDI data on a single track, allowing playback on even the simplest of sequencers or playback devices. It stands to reason that this format also offers the greatest compatibility.
Format 1 is capable of handling multiple tracks, and is designed to work best with sequencers that allow different parts to be recorded and played back on different tracks - essential for editing and modifying data as well as simple playback.
This little-used format allows multiple tracks and multiple sequence patterns.
What is GS?
Some companies feel that General MIDI doesn't go far enough, so Roland created a superset of General MIDI Level 1, which they call GS Standard. It obeys all the protocols and sound maps of General MIDI and adds many extra controllers and sounds. Some of the controllers use Unregistered Parameter numbers to give macro control over synth parameters such as envelope attack and decay rates.
The new MIDI Bank Select message provides access to extra sounds (including variations on the stock sounds and a re-creation of the MT-32 factory patches). The programs in each bank align with the original 128 in General MIDI's Instrument Patch Map, with eight banks housing related families. The GS Standard includes a "fall back" system. If the Sound Canvas receives a request for a bank/program number combination that does not exist, it will reassign it to the master instrument in that family. A set of Roland System Exclusive messages allows reconfiguration and customization of the sound module.
This means that a GS Standard sound module will correctly play back any song designed for General MIDI. In addition, if the song's creator wants to create some extra nuance, they can include the GS Standard extensions in their sequence. None of these extensions are so radical as to make the song unplayable on a normal GM sound module.
What is XG?
The Yamaha XG format is basically a set of rules describing how a tone generator will respond to MIDI data. The current GM (General MIDI) format is a similar concept, allowing GM music data to be reproduced accurately on any GM tone generator from any manufacturer.
GM, however, applies only to a limited set of parameters. XG significantly expands on the basic GM format, providing many more voices, voice editing capability, effects, external input, and other features that contribute to enhanced musical expression. And since XG is totally upwardly compatible with GM, GM data can be accurately reproduced on any XG tone generator.
XG data will play accurately on any XG tone generator. And, since XG is upward compatible with GM, GM data will play accurately on any XG tone generator.
Although the XG format defines an extensive range of parameters and allows exceptionally fine musical control, not all XG devices need to conform to the full XG specification. The XG format allows features and capabilities to be "scaled" according to price and target applications. When music data is played on a scaled-down XG device, playback is adapted to the capabilities of the device used. If, for example, a specified voice is not available for a certain part, that part will be played using a similar basic voice. On the other end of the scale, models equipped with a graphic equalizer can be automatically set to play hard rock pieces or classic compositions with appropriate overall EQ.
The XG format has been designed to allow future expansion whenever needed.