Musical Instrument Digital Interface



The General MIDI (GM) System and how it all works


MIDI (Musical Instrument Digital Interface) is a protocol designed for recording and playing back music on digital synthesizers that is supported by many makes of personal computer sound cards. Originally intended to control one keyboard from another, it was quickly adopted for the personal computer. Rather than representing musical sound directly, it transmits information about how music is produced. The command set includes note-ons, note-offs, key velocity, pitch bend and other methods of controlling a synthesizer. The sound waves produced are those already stored in a wavetable in the receiving instrument or sound card. Since a MIDI file only represents player information, it is far smaller than formats that transmit the sound directly. An advantage is very small file size. A disadvantage is the lack of specific sound control.

With a program that provides this interface, you can create music using a standard keyboard or other input device. You or others can then play your MIDI-conforming creation with the same or another program and a sound card as a music synthesizer. The MIDI program may come with a graphical user interface that looks like a sound studio control room. Many sound cards come as a package with MIDI software.

The General MIDI (GM) Specification, published by the International MIDI Association, defines a set of general capabilities for General MIDI Instruments. The General MIDI Specification includes the definition of a General MIDI Sound Set (a patch map), a General MIDI Percussion map (mapping of percussion sounds to note numbers), and a set of General MIDI Performance capabilities (number of voices, types of MIDI messages recognized, etc.). A MIDI sequence which has been generated for use on a General MIDI Instrument should play correctly on any General MIDI synthesizer or sound module.

The General MIDI system utilizes MIDI channels 1-9 and 11-16 for chromatic instrument sounds, while channel number 10 is utilized for "key-based" percussion sounds. These instrument sounds are grouped into "sets" of related sounds. For example, program numbers 1-8 are piano sounds, 6-16 are chromatic percussion sounds, 17- 24 are organ sounds, 25-32 are guitar sounds, etc.

For the instrument sounds on channels 1-9 and 11-16, the note number in a Note On message is used to select the pitch of the sound which will be played. For example if the Vibraphone instrument (program number 12) has been selected on channel 3, then playing note number 60 on channel 3 would play the middle C note (this would be the default note to pitch assignment on most instruments), and note number 59 on channel 3 would play B below middle C. Both notes would be played using the Vibraphone sound.

The General MIDI percussion map is used on channel 10. For these "key-based" sounds, the note number data in a "Note On" message is used differently. Note numbers on channel 10 are used to select which drum sound will be played. For example, a "Note On" message on channel 10 with note number 60 will play a Hi Bongo drum sound. Note number 59 on channel 10 will play the Ride Cymbal 2 sound.

It should be noted that the General MIDI system specifies sounds using program numbers 1 through 128. The MIDI Program Change message used to select these sounds uses an 8-bit byte, which corresponds to decimal numbering from 0 through 127, to specify the desired program number. Thus, to select GM sound number 10, the Glockenspiel, the Program Change message will have a data byte with the decimal value 9.

The General MIDI system specifies which instrument or sound corresponds with each program/patch number, but General MIDI does not specify how these sounds are produced. Thus, program number 1 should select the Acoustic Grand Piano sound on any General MIDI instrument. However, the Acoustic Grand Piano sound on two General MIDI synthesizers which use different synthesis techniques may sound quite different.

 



MIDI Systems and how they "Hook-Up"


The MIDI protocol provides a standardized and efficient means of conveying musical performance information as electronic data. MIDI information is transmitted in "MIDI messages", which can be thought of as instructions which tell a music synthesizer how to play a piece of music. The Synthesizer receiving the MIDI data must generate the actual sounds.

The MIDI interface on a MIDI instrument will generally include three different MIDI connectors, labeled IN, OUT, and THRU. The MIDI data stream is usually originated by a MIDI controller, such as a musical instrument keyboard, or by a MIDI sequencer. A MIDI controller is a device which is played as an instrument, and it translates the performance into a MIDI data stream in real time (as it is played). A MIDI sequencer is a device which allows MIDI data sequences to be captured, stored, edited, combined, and replayed. The MIDI data output from a MIDI controller or sequencer is transmitted via the devices' MIDI OUT connector.
 
 


Figure 1

The recipient of this MIDI data stream is commonly a MIDI sound generator or sound module, which will receive MIDI messages at its MIDI IN connector, and respond to these messages by playing sounds. Figure 1 shows a simple MIDI system, consisting of a MIDI keyboard controller and a MIDI sound module. Note that many MIDI keyboard instruments include both the keyboard controller and the MIDI sound module functions within the same unit. In these units, there is an internal link between the keyboard and the sound module which may be enabled or disabled by setting the "local control" function of the instrument to ON or OFF.

The single physical MIDI channel is divided into 16 logical channels by the inclusion of a 4 bit channel number within many of the MIDI messages. A musical instrument keyboard can generally be set to transmit on any one of the sixteen MIDI channels. A MIDI sound source, or sound module, can be set to receive on specific MIDI channel(s). In the system depicted in Figure 1, the sound module would have to be set to receive the channel which the keyboard controller is transmitting on in order to play sounds.

Information received on the MIDI IN connector of a MIDI device is transmitted back out (repeated) at the devices' MIDI THRU connector. Several MIDI sound modules can be daisy-chained by connecting the THRU output of one device to the IN connector of the next device downstream in the chain.
 
 


Figure 2

Figure 2 shows a more elaborate MIDI system. In this case, a MIDI keyboard controller is used as an input device to a MIDI sequencer, and there are several sound modules connected to the sequencer's MIDI OUT port. A composer might utilize a system like this to write a piece of music consisting of several different parts, where each part is written for a different instrument. The composer would play the individual parts on the keyboard one at a time, and these individual parts would be captured by the sequencer. The sequencer would then play the parts back together through the sound modules. Each part would be played on a different MIDI channel, and the sound modules would be set to receive different channels. For example, Sound module number 1 might be set to play the part received on channel 1 using a piano sound, while module 2 plays the information received on channel 5 using an acoustic bass sound, and the drum machine plays the percussion part received on MIDI channel 10.

In the last example, a different sound module is used to play each part. However, sound modules which are "multi-timbral" are capable of playing several different parts simultaneously. A single multi-timbral sound module might be configured to receive the piano part on channel 1, the bass part on channel 5, and the drum part on channel 10, and would play all three parts simultaneously.

Figure 3

Figure 3 depicts a PC-based MIDI system. In this system, the PC is equipped with an internal MIDI interface card which sends MIDI data to an external multi-timbral MIDI synthesizer module. Application software, such as Multimedia presentation packages, educational software, or games, send information to the MIDI interface card over the PC bus. The MIDI interface converts this information into MIDI messages which are sent to the sound module. Since this is a multi-timbral module, it can play many different musical parts, such as piano, bass and drums, at the same time. Sophisticated MIDI sequencer software packages are also available for the PC. With this software running on the PC, a user could connect a MIDI keyboard controller to the MIDI IN port of the MIDI interface card, and have the same music composition capabilities discussed in the last paragraph. Today, the easiest way to hook up a keyboard to a computer is with the use of a Roland UM-1 connector. This devise uses the USB (universal seriel bus) port on a computer to connect to the MIDI keyboard. (Figure 4)

Figure 4

 

 

BACK