My buddy is really interested in getting into synth sort of things, and he already can play the piano. He constantly sees "MIDI Compatible" or "MIDI Controller" and it's driving him up the wall not knowing what it is. I believe I know a little about it, but not nearly enough to really know what it does.

So do you guys think you can help me out on this one? What exactly is MIDI? What is it used for? What can we use it for?

__________________
Remo, Tama, Ludwig, and Zildjian?
Doesn't get much better than that...

MIDI stands for 'Musical Instrument Digital Interface'. Simply put, MIDI is a control language that uses a standardised format for universal compatibility across a wide variety of systems. Essentially, MIDI uses a series different numbers in each action - note on, note pitch, note velocity, note channel and (sometimes) note off. So, it would say (in a numerical format) something along the lines of:

Of course, MIDI being entirely numerical, it can be used to control a whole load of other stuff OTHER than just notes. Essentially, all MIDI is is a language. These signals are then processed by other devices (such as the standard audio on a keyboard or recording software) and manipulated accordingly, often to produce sounds, but sometimes to control OTHER parameters such as a slider volume. I use MIDI notes numbers to trigger events on software rather than playing notes, but MIDI is literally just a stream of numbers.

So, if a keyboard were to say 'MIDI Compatible' it means that it complies to the MIDI standard and can be used with any other device that is MIDI compatible. All modern drum modules are MIDI compatible and all use the same basic language, so if you were to use a trigger pad from one electronic drum kit, you could use it with any other and you could also use that trigger pad to work with other devices. For instance, I could set up a pad to play a sound sample at whatever velocity I desired based on my strike, or I could set it up so that when I struck the pad, a blue light switched on - as long as it can all understand MIDI, which a lot of the time, it does.

A MIDI controller is a device that sends MIDI signals, but (often) has no internal memory of its own, so it relies on other devices to provide the output. MIDI controller keyboards trigger events in (often) software or (sometimes) dedicated hardware. As long as the two speak the same language, they will understand each other. The fun comes in when you start mucking around with MIDI as a control language for more complex work - literally hours of fun I've had with automating virtual mixing desks I've written in crazy software (Max/MSP). Standalone keyboards that are MIDI compatible have their own memory and so trigger a sound internally, but you can often still send the MIDI signal off independently of the internal processing.