What is MIDI?

Now, I know that many of you out there are completely confused about what MIDI really is. And with today's technology using MIDI everywhere, it is easy for beginners to get confused.

For ease of reference, here's a link to the Wikipedia page on MIDI. For really detailed information and history, you can go there. I will just summarize the useful bits that you need to understand for daily usage.

Now MIDI is an abbreviation, it stands for Musical Instrument Digital Interface. And that should tell you, that it does not hold sounds. Some people tend to think that since they can 'play' MIDI files, the files must have sounds on them. Not really.

You see, as the name suggests, MIDI was developed by a few companies to make it easy for different instruments to 'talk' to each other. Hence, it not exactly a language, but it is actually a protocol.

A system usually has two MIDI ports - one for input and one for output. Some may also have a third - MIDI-THRU. This third is used for relaying the incoming outside the instrument. Now this is not the instruments own MIDI. It is the MIDI being sent to the interface.

Imagine this scenario - we have 3 MIDI instruments, A, B and C. Now A's output goes to B's input and B's 3rd 'relay' or the MIDI-THRU output goes to C' input. Now depending on the settings, I can now play both B and C through A. How does this happen?

Well, MIDI has 16 channels through data can be sent and one control channel. So, theoretically, these 16 channels can be assigned to 16 different instruments. And then they can all be played at once. Also, each channel has a possible 128 individual commands.

Our case, A is giving the commands and B and C are following them. The MIDI-THRU port on B is only copying the incoming signal from A and sending it to C.

What actually happened when MIDI was originally developed was that developers wanted to create a standard for playing sounds on instruments. So they got together and fixed a certain order in which instruments are arranged. So, for each channel, there are instruments assigned for specific ranges and they are the same on all standard MIDI devices.

Which is why, MIDI programmers could create a piece on their computer and rest assured that the MIDI would sound the same elsewhere. Of course, actual instruments differ. Like may be the original programmer was listening to a pan-flute when the piece was made. But on another system, it is a simpler flute, which sounds different, but is a flute nonetheless and not a piano.

Many of the older games had all the sounds in MIDI. So, essentially, the sound stays on the system that this receiving the MIDI. The MIDI just tells system the following things - What note is being played (like C5), when is it being played (4th bar, 2nd beat), how long is it being played (may be a quarter, an eighth or something in between), how hard it is being played (also called velocity) and now there is also something called aftertouch. When it comes to MIDI music files, it also says what range is being played, which defines the instrument that should played.

Now, if you have played on a MIDI keyboard, you will be familiar with these things or somethings may suddenly make sense to you. For those of you who are waiting for controllers to arrive, your wait is almost over.

Developers at one point decided to MIDI as a protocol and apply it to control software. Now, there are many reasons why MIDI was chosen over developing a new control standard (Like OSC [covered in another post]).

MIDI was easily available and it was a simple enough protocol to be manipulated. Of course, with simplicity, came limits. But simple controllers didn't really need to bother about the limits of the magic number '128'.

So MIDI was chosen. Now, when softwares come into play, they interpret MIDI in a very different way. These understand all MIDI signal as control data. That means, mapped commands can be CC commands or notes. So, if c5 is assigned to a button, pressing c5 will only act to toggle that button and nothing else. These is how MIDI is used to control softwares. The data here is control data.

It gets a bit more complex inside DAWs [Digital Audio Workstations], where the controller's MIDI is taken as control data as well as musical notes and associated parameters for playing virtual instruments within the DAW. This is how a MIDI Keyboard with extra controls can both play the virtual instruments and control the knobs and faders of the virtual mixer.

As time went by, more sophisticated controllers started to be produced and now we have the latest crop which uses hi-resolution MIDI. This became necessary for MIDI controllers that wanted to emulate a turntable. Implemented first for Serato's Itch, by Numark and Vestax, these controllers have wheels which send out a higher tracking count per revolution to register even the tiniest of movements. This in turn makes for very accurate tracking and hence, very good for scratching.

I will stop here for now. Remember that information posts like these are constantly edited and corrected (one can never have absolute knowledge) and new posts are added everyday. So subscribe if you want to stay updated.