NAV-BAR | (GRAPHICS version)   | HOME | SYSEX | LINKS | MIDIs


General Overview of MIDI:

[i.e. what is it?]

Given that this is just a rough sketch, and particularly for someone pretty new to MIDI looking to get just a feel for the thing, and that subsequent pages here fill in more of the details - MIDI started out a decade or more after the introduction of the popular synthesizer module of the late '60s - namely, Dr. Moog's -- MiniMoog. Once such synths became popular, and part of performance and composition, people got the idea to hook up two such synths, even from different manufacturers. There wasn't any standard. So, the industry came up with something called the General MIDI standard (MIDI the acrostic for Musical Instrument Digital Interface).

However laid out in the cables, connections, and hardware, what MIDI does is use a stream of standard byte codes that hardware devices (even software now) can use to trigger built in sound patches - that is, instruments; and even all sorts of echo, reverb effects, and the like. MIDI is often compared with a player piano roll, and specifically not to the recording of it played on a particular piano. MIDI being just a bunch of 'triggering' data, therefore, is light - very small (and MIDI data, even complete songs, saved as files can be .zip compressed by 3,4,7 to 1 or better on top of that). MIDI files are miniscule, and easy to send, these days, over 'the net'.

In short, MIDI is
 

  1. the particular sequence (the 'triggering' instructions, the MIDI data/file itself, for an entire song or just part),
  2. but requires broadly the software/hardware to record and then to manipulate these instructions (the sequencer used to create or modify a MIDI file),
  3. and also the software/hardware to read the instructions of a MIDI file and generate the music (the synthesizer used to play back the song itself; and "software", because software-only 'virtual' synths are widely available);

There are other things, too. Of course, the keyboard, or strings, drum pads or whatever used to create the MIDI sequence are typically part of the synthesizer used to play back such a sequence, but not always. You can have 'dumb' keyboards, and keyboardless synthesizer modules. And there are whatever software drivers used by the computer. And there is a further app or program that can be used to make or rework certain instructions placed in a MIDI file, called a SysEx editor; covered just below. And there are numerous other software programs, too.

Two things, then. MIDI data is really more for playing backing instrumentals on a synth! and instrumentals with some limitations compared with recordings of real instruments. A choir-type of sound is suggestively possible (because there are various choir 'patches', choir voices, built into synthesizers). So are backing voices, of a sort, possible, singing something close to Fa/La or Do/So, on every note. But that's about the limit. A lead voice – other than a musical instrument that suggests some aspect of the voice (and all do, basically) – generally just isn't there (though my effort at Silent Night comes close, perhaps - but remains wordless vowel sounds, even so). It would be just too complicated to get pre-record samples to speak English, or Italian, or whatever, short of a synthesized voice add-on. And it's a drawback where the final song is to be played only on the synth - as they might be played on the net for a web page's background music, say - and not used as merely part of a final studio production (where MIDI sequences are used in creating just part of some finely engineered song for a commercial CD). The other thing is that while MIDI includes stuff (like controllers and SysEx, mentioned just below) which can help the synthesizer to include some expressiveness in playing the instruments, any real instruments, on which the MIDI patches/instruments were based, will necessarily possess more shades and variety than even a 'wavetable' synth sound sample. In other words, a good live performer may do things that would be difficult to duplicate because of the limits of the MIDI patches/instruments, themselves. As mentioned, below, the MIDI instruments are recordings of real instruments. But it is a recording of just one aspect, one set-up, for a few brief seconds, for a particular instrument, and likely in one particular octave, and struck in one particular way. The real instrument can do much more than that. The expressiveness might be closely recorded, the slurs and timing, and almost all the rest (and some have commented favorably in this way on various of my original works - at mp3.com), but it would still not sound quite like, or even much like, the much more expressive instrument, itself - depending.

However, the 'power' of a small MIDI file, within limits, is that it can render even better than CD quality sound, but depending on the synth and depending on the care that went into the MIDI. The sound depends on the synth, whether hardware, software, or some combination, that runs that sequence of MIDI codes. Yamaha got in early, in the 70s, with FM synthesis; which used to be the synthesizer chip on the bare bones sound cards that came with most computers, in the past. More recently Roland, Ensoniq, and others, and then Yamaha, placed a far superior synthesizer chips on PC cards, formerly available only in expensive rack-type modules. As noted, already, this uses some sort of sampled, 'wavetable' synthesis, using actual sound profiles from actual instruments, giving a limited, but still potentially better than CD quality sound (again, of instrumentals). It can sound quite real. It can sound quite 'live'. But it depends on the performance. And the performance IS the MIDI - or perhaps more accurately, the MIDI is a particular performance, and that on a very particular synthesizer.

The synth, itself, may differ quite a bit from one by another manufacturer, using more or fewer 'patches', different effects, and so on. In the competition of the marketplace, for these different synths, even if just chips on PC cards, the manufacturers have used the GM standard for compatibility with all other GM compatible synths, but have further augumented it with optional extras for their own synths or any other synth, hard or soft, which is compatible. Roland had vied for setting the standard, itself, originally. It wasn't taken up by the standard's committee. But Roland went with this GM+, they call GS, anyway. And Yamaha went with something called, XG, which is sort of super-GM version, with many more built-in instruments and more and more specific effects. As suggested above, then, and now here, unfortunately, for there even being a GM standard, one MIDI file may play on one synth or PC sound card, and sound awesome, yet also play on another and sound absolutely lousy, or just inaudible and indecipherable. It can be that different, and that bad. To some degree, at any rate, that's the great 'problem' of MIDI, today; where the MIDI is sent out, but not the audio itself. MIDI isn't the audio. It's utterly dependent on what produces that audio. On the other hand, with a sequencer of whatever sort, noted above, you have the option of modifying/adapting the MIDI for your particular synth! And that might even be a lot of fun, for at least maybe few MIDI songs/files.


 

So how do you make MIDIs?


Hardware sequencers came along first, decades ago. Today, you can get a software program that does what those did/do, and then some. And that's how you edit and modify MIDI sequences, as already noted. That's what you use to even write them completely from scratch, without even touching a keyboard, or guitar synth, or electronic drum kit - using only a mouse (if you wanted to). A software sequencer (or the hardware ones that still remain) allows you to move around and add the notes, how long they are, which instrument they play out on, note by note for the entire song. Many MIDI songs, MIDI sequences, consist of just these basic note instructions, and little more.

But some MIDI sequences include a bit extra. There's a way to set up all the echo and sound effects on a particular manufacturer's synth (even if just the synth on a PC card). And these codes can also be included in the MIDI file, using the sequencer to do this; typically once for the whole song, and right up at the beginning. The custom is to reserve the first measure for such 'set-up' commands to the synth. These commands are called System Exclusive messages - or SysEx (they're manufacturer specific, i.e. exclusive). In addition to the MIDI sequencer, you may well need a separate program to set up this SysEx - called, generally, a SysEx editor or librarian. I, myself, found SysEx a little confusing, at first. So, here's a look at it for the Roland GS.

In brief, this SysEx controls the built-in hardware filters, oscillators, and the like. Now some (a subset) of these can also be set by 'controller' events, which you can edit with the sequencer. So there's some overlap there. In addition, similar general control can be had with something called 'registered parameters' (RPN) and unregistered (NRPN). These can set a few (very small subset) of the same things set by controllers and SysEx. So it's perhaps a confusing variety of commands a subset of which can all do the same thing (the situation is like that of large programming languages, like C++, where old methods are kept along with the newer for compatibility, giving many ways of basically doing the same thing). With various programming languages, some methods are easier or more appropriate, depending. And so with RPN, or SysEx, whatever - it depends.

As for sequencers, I recommend the Winjammer Pro. Many, many others might recommend some version of Cakewalk, though Cubase and other sequencer programs certainly have their devotees to be sure. See the links pages for these. As for SysEx, I recommend the Canvasman, since I have used the Roland GS synth. I suggest this (and Winjammer's player) for MIDI sequence playback because the Media Player that comes with Windows may not play certain files well, or more importantly may not play all the instruments (16 channels, see just below), depending on how it is set up. And you won't realize some instruments are not being played.

Finally, as to what a MIDI 'looks like', what it can do, this GM standard set aside 16 instruments to play at a time, each in its own 'channel'. If you're talking the channel, then you are necessarily talking the instrument assigned to that channel, for the moment. You can change the instrument, the 'patch', used on any particular channel, at any point in the sequence/song. There's a specific MIDI command to select from among the available 'patches', which can be used at any time, that is. So it's not quite as limiting as it might seem. Typically, the 10th channel (sometimes the 16th, too) is reserved just for the drums, and the notes are interpreted as different percussion instruments, or different parts of the drum kit (i.e. a drum channel can have multiple percussion instruments playing at once, but the other channels play only one instrument at a time). The patch for channel 10, in other words, is set to some available drum kit for that synthesizer, and stays that way. The sequencer is used to lay out the notes and MIDI commands, etc. on separate tracks. Any track can use the particular MIDI command to play out, to select, a certain channel. That can be changed, too. And there can be any number of tracks. There are only 16 channels to choose from. When selecting an instrument, it has to be associated with a channel. That's the 'hierarchy':
 


The tracks can have parts of the instrument's notes or assorted other things. You might have tracks 5, 6 and 9, we'll say, playing out channel 3. Maybe parts of a chord might be broken out and treated differently, for the same instrument. Maybe the part, that instrument, has three counterpoint lines. Maybe if this were channel 10, you want to break out three individuals parts of the drum kit to separate tracks. And lastly, and again just briefly, with 16 channels as the max, 16 instruments, or 15 and all the stuff from the drum kit, there's a further limitation. Only a certain number of notes will be played if other channels are sounding notes at the same time. In essence, it might take more than just one patch to produce a sort of compound or ganged-up patch from the list. That's how some are generated, by combining other patches. The old Roland card I use, here, allows roughly 28 notes at once. The GM standard, and other synths, allow for 32. (If you look at the Canvasman, you'll find a menu for setting aside minimum numbers per channel, in case of this sort of 'overload' condition.) And more modern synths, and software synths, can take this 'overload', or simultaneous note playing (called 'polyphony') past 100 notes or more.

So, as this was just a quick overview, I used to say, at this point, that volumes could be written, and would just refer you to the following introductory material, by following the links just below, if you had further questions. But I though it about time I start the first chapter of the encyclopedia, as it were, and so will begin to elaborate on the above - starting right here.


 
TOP


 

Here is a more detailed explanation of the MIDI standard – with charts and graphs, and everything.
 
There's this rather elaborate tutorial/FAQ on both the synthesizer's history and MIDI.
 
For a grab bag of stuff I've come across, here is a little Winzip of files containing maybe more than you wanted to know about MIDI.
 
You can get a page by page intro more on the hardware side about MIDI, with lots of colorful diagrams.
 
There's this intro from MIDI world.
 
There's this older, quite lengthy, and more hardware-based intro for broadcast engineers given by Jerry Hill.
 
You can check out the detailed explanations at the MIDI Fanatic's site.
 
Beatnik.com (formerly Headspace) has put together a couple of tutorial pages of their own.
 
And lastly, there's Dan Jansson's intro to the thing.