About MIDI

 


Home

 

MIDI the language of gods?

Lesser life forms communicate in more primitive, less artistic manners such as barks, chirps, roars, or any of the many human verbal languages in use throughout the globe. 
But, gods communicate using MIDI messages. 
Even a picture, whose value is often equated to a thousand words, cannot match the scope of emotional and intellectual power unleashed by a stream of MIDI messages. 
But, try to tell that to the visual-and-print-fixated, tone-deaf heathen who infest this planet...

Here you will find: 

 

General description of MIDI

There are hundreds of manufacturers of MIDI gear and Software. Making these components work together requires standards. MIDI stands for Musical Instrument Digital Interface. As the name suggests, Digital Technologies as Computer-hardware and software are involved. 
Musical instruments can be MIDI, such as Keyboard Synthesizers, Synth Drums, Soundcards of Computers, or Music files (Songs), Controllers, Cables or Music Software and they all can be connected to another.

In general terms it is nothing more than an agreement about how various complex components are to be connected to work smooth and without problems (Interfaced). Examples of characteristic keywords in this interfacing are Voltage levels, Signal assignments, data formats and data classification of controllers.

 

Standards

When it comes to standards, General Midi (GM), General Standard (GS of Roland Corporation), eXtendend Standard (XG of Yamaha) are the most common and widely spread accepted standards for musical instruments.

All these standards vary, but they all have one thing in common; they all "understand" the General MIDI standard.

From the description above you may conclude that XG and GS offer no compatibility with GM. But they do, these GS and XG standards just offer more parameters to be controlled for the final sound than GM and can be seen as an enhancement of General Midi. 

 

General midi files

The MIDI standard

Structure of a midi file

General MIDI

MIDI controllers

Getting Started With Midi

General MIDI Files.

When sharing music files with others by exchanging files or publishing on the WEB you should be aware that the Data Format must meet the GM standard.

 This is of course not necessary when both users use exactly the same equipment and software.

Midi file format 1 is widely known and understood by all kinds of Hard- and Software.

 


Top

Structure of a GM file.

To ensure perfect reproduction of Midi files on GM/GS sound generators, certain "regulations" have to be considered. 
A Midi-files must consist of two parts; a "Set-up measure" where settings required for the piece of music are set and the "Song-body" containing the music data.

At the start of a Midi-file, one or two bars must contain a "Set-up measure". 
Here a GM/GS SysEx reset command is initially set; 
GM Reset F0 7E 7F 09 01 F7 (Hexadecimal)
GS Reset F0 41 10 42 12 40 00 7F 00 41 F7 (Hexadecimal)
XG Reset F0 43 10 4C 00 00 7E 00 F7 (Hexadecimal)

All other settings for the piece of music follow 200 to 300 ms later, i.e. Controller #0 (Bank number), Controller #32 (LSB Bank number), Program number (Instrument), Controller #7 (Volume), Controller #10 (Pan), Controller #11 (Expression), Controller #91 (Reverb content), Controller #93 (Chorus content). This has to be done for every used midi channel / Track.
Settings of Channels / Tracks and parameters that are not required should be made with default values. (Bank and Program Changes 0, Pan 64, Expression 127, Reverb content 40, Chorus content 0)

This is finally followed by the "Song-body" which contains the actual music data. The "Set-up Measure" and the "Song-body" may not overlap cause this may result in unpredictable and unwanted effects! At the end of the piece of music one or two bars of rest / pause should be applied, to avoid cutting of any sound which may take longer to die away.


Top

MIDI: The Standard


MIDI is an acronym that stands for Musical Instrument Digital Interface. 
It is simply a standard developed in the early eighties to allow electronic instruments made by different manufacturers to communicate using a common language. 
One of the misconceptions about MIDI is that the standard is more complex than it actually is. 

The information that MIDI sends is simply an instruction to a device to perform a certain event. 
For example, if you press middle C on your keyboard, it sends a message to your sound module which says 'turn on middle C'. 
When you depress middle C on your keyboard, it sends a message to the sound module which says 'turn off middle C'. 

We should point out at this juncture that MIDI doesn't actually generate sound, it sends information. 

The sounds that you hear are really generated by your sound card or sound module.


Top

General MIDI


MIDI was very good at informing a sound module which note to play and how loudly it should be played, but it wasn't very good at determining which instrument to play. 
Imagine writing music for strings and then hearing the music performed on Japanese Taiko drums and you start to get the picture. 

This brings us to another standard, General MIDI (GM). 
General MIDI was developed a number of years after MIDI itself in an attempt to standardize instrument names among vendors of MIDI equipment. 

The basic premise being that if you selected a guitar sound for one of your tracks in a sequencer, your sound module should play a guitar, and not a piano or a tin can. 
General MIDI then is simply a number to instrument reference that most major keyboard manufacturers have agreed upon. 

Other standards that have been developed in the industry are Roland's GS standard and Yamaha's XG standard.


Top


MIDI Controllers
With MIDI, you can send messages that do more than just play this or that note. MIDI can also send information about other events such as after touch and pitch modulation. The following is a general reference of the MIDI controllers, accompanied by a brief description of each one.


Top

 
Controller Number: Description: Controller Number: Description:
0 Bank Select MSB (Most Significant Byte) – Changes to a new bank of instruments (if possible). 65 Portamento On/Off – Changes the state of the portamento to on or off.
1 Modulation Wheel – Sends a command to add a certain amount of  modulation to the current sound (if possible). 66 Sostenuto – Controls the sostenuto of the current instrument.
2 Breath Controller – Much like modulation, but it is triggered by a device that you blow into. The device measures the pressure of the wind, and adds modulation accordingly. 67 Soft Pedal – Softens the current instrument.
3 Not yet defined. 68 Legato Footswitch – Applies or removes legato.
4 Foot Controller – Sends a control from a foot pedal device. The effect is usually programmable from keyboard to keyboard. 69 Hold 2 – An alternate source for sustain.
5 Portamento Time – A controller used to change the time of the portamento on the current channel. 70 Sound Controller 1 – Programmable, the default is 'Sound Variation'.
6 Data Slider MSB – A controller common on many keyboards. The effect varies from unit to unit. 71 Sound Controller 2 – Programmable, the default is 'Timbre'.
7 Main Volume – Controls the main volume of a channel. 72 Sound Controller 3 – Programmable, the default is 'Release Time'.
8 73 Sound Controller 4 – Programmable, the default is 'Attack Time'.
9 Not yet defined. 74 Sound Controller 5 – Programmable, the default is 'Brightness'.
10 Panning Control – Controls where the current instrument will appear in the stereo spectrum. 75-79 Sound Controllers 6-10 – Programmable, no default.
11 Expression Pedal – Much like the foot controller, but often the MIDI unit will use this controller for a different aspect of the sound. 80-83 General Purpose Controllers – Programmable on most units.
12 Effect Control 1 – Will control some aspect of the unit's effects. 84 Portamento Control – Changes the portamento if available.
13 Effect Control 2 – Will control an alternate aspect of the unit's effects. 85-90 Not yet defined.
14 Not yet defined. 91-95 Effects Depth Controllers – Controls the effects depth on some units, like chorus amount, reverb amount.
15 Not yet defined. 96 Data Increment.
16-19 General Purpose Controller – Programmable on most units. 97 Data Decrement.
20-31 Not yet defined 98 Parameter LSB.
32 Bank Change LSB (Least Significant Byte) – Changes to a different bank of instruments if available. 99 Parameter MSB.
33-63 LSB for controllers 1-31. 100 Parameter LSB.
64 Sustain Pedal – Controller to apply sustain. 101 Parameter MSB.
102-119 Not yet Defined.
120-127 Reserved for Channel Mode Messages.
s
 
© 2000 Midi Flowers. The contents of this article are subject to worldwide copyright protection and reproduction in whole or part, whether mechanical or electronic, is expressly forbidden without the prior written consent of the Publishers.


Top