An introduction to MIDI

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

The Yamaha XG format is basically a set of rules describing how a tone generator will respond to MIDI data. The 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.

The XG Format Offers:

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.

| top |

About XG Reset Sysex Message

This article was created by my friend JRG

Important message for all new and excisting XGC members! We are currently testing incoming XG mids to insure that they meet the minimal requirement for deserving the label XG.
XG-Central does not oblige its composers to live up to whole series of complicated rules; we only ask that you insert a XG-reset (or: XG initialize) sysex message in your midi file.

This is the message: F0 43 10 4C 00 00 7E 00 F7 .

Please check your XG files. If they don’t have a XG reset, please insert the XG reset sysex message in the correct place (the XG-Reset has to be at the BEGINNING, not at the end!) in your midi file and send us the corrected file(s).

Example XG reset - sysex message

This makes sure that your file is played correctly and that its messages are send to the correct midi device.
It is in our interest as well as yours that your composition is listened to in the best way possible!

Additional information about the XG Reset Sysex Message

In your midi file you must insert certain “system exclusive” messages to make sure that an XG device understands XG midi messages properly. That’s the only thing you can do to get others to listen to your midi the way you intended it to be heard. That’s what matters right?

The reset messages are necessary for several reasons. The two main reasons are:

What are the necessary messages?

To get XG Mode operative GM On (or GM reset = same thing) and XG On (or XG reset) SysEx messages must be send. Because XG is a subset of General Midi the XG reset message is sent after the GM reset message. They are first 2 messages in an XG midi file and the only 2 SysEx messages that must be send (all other XG SysEx is optional). These messages are a certain fixed order of hexadecimal messages:

GM On F0 7E 7F 09 01 F7

XG On F0 43 10 4C 00 00 7E 00 F7

Where and how does one insert them in a midi file? That depends on the software you are using. Often sequencers and editors (like XG Edit or XG Gold) do it all for you – automatically. Look into the events-lists of the tracks in your midi file and see if you can detect them – they should be the first events listed.

If the aren’t there you should look for menu’s in you sequencer that can do it for you. You can also insert them manually:

Note – in some sequencers you have to insert comma’s instead of spaces – in some you don’t type the Sysex start and end bytes (F0 =start sysex; F7 = end sysex! Look in some other sysex messages opened in your sequencer to see how your sequencers likes to see them).

Make sure there is some time between the GM reset and the XG reset (200 msec) and some time between the XG reset and the first next message in the midi (that “next message” can be anything… ). In general it is enough to (1) put the resets right after each other in the first measure of the midi and set them to “send automatically” and (2) start the rest of the midi messages in measure two.

Greetz : James R. Grit (aka JRG)

| top |

Tone generation formats

MIDI (Musical Instruments Digital Interface) data – MIDI is an international standard governing the external control of synthesizers and other electronic musical instruments. MIDI data, often referred to as Standard MIDI File or SMF, is music data that describes music performance information as digital data.

GM2 – GM2 is an international standard of a tone generation format, set by the AMEI and MMA, designed to achieve greater musical expressiveness and hardware and software compatibility. An enhancement of the previous GM (General MIDI; see Note 5, below) standard, it defines detailed operational specifications for voice editing and creating effects not covered by its forerunner, as well as expanding the number of available tones. GM2-compatible tone generators are capable of correctly playing back all music data identified with the GM or the GM2 mark. To differentiate the two, the older GM—which does not include the additional definitions provided by GM2—is now being called “GM1″

XG Format – XG is a tone generation format advocated by Yamaha for electronic instruments. XG is upward compatible with GM and it provides more voices, editing capabilities, three effect processors and other functionalities to enhance the musical expressiveness of MIDI data.

GS Format – GS is a tone generation format created by Roland that builds on GM and is designed to make richer musical expressiveness possible and to enhance compatibility by standardizing in detail expanded functions such as voice editing and effects, as well as providing additional tone.

GM (General MIDI) – GM is an international standard of a tone generation format which was accepted as “Recommended Practice” of MIDI by AMEI and MMA. GM is a set of common rules for tone generators to ensure the ability to reproduce musical performances on different GM compatible devices.

| top |