![]() |
| Home | Articles | Newsletter | Products | Links | Contact Us |
|
By: Dave Howard What Is M.I.D.I.? .WAV files contain digital recordings of real sounds, similar, in a way, to recordings stored on a CD. M.I.D.I. files don't contain this sort of information at all. M.I.D.I. is actually a control system. A M.I.D.I. file contains instructions to perform particular commands. A Bit Of History M.I.D.I. was devised as a Universal Control System, in other words, a way of one synthesizer controlling another, irrespective of the make and model of either. At its simplest level, when a note is pressed on the master keyboard in a M.I.D.I. setup, it will transmit an instruction to the instruments that are connected to it saying "play this note", and the receiving instrument(s) will respond. So, a M.I.D.I. file simply contains the instructions for a receiving instrument. It transmits these instructions in the form of numbers, and in this way it allows musical instruments to talk to each other. It is an interface. This, of course, is where the term M.I.D.I. comes from, since it stands for: Musical Instrument Digital Interface One of the first results of the development of M.I.D.I. was the removal of keyboards from synthesizers. This began the proliferation of the M.I.D.I. Module. These usually come in the form of 19" rack mountable boxes (such as the Emu Vintage Keys, or Novation Bass Station) so that they can be easily integrated into music studios, but can actually take all sorts of shapes and sizes. Is This Message For Me? This is done through the use of M.I.D.I. Channels. Every instruction transmitted by the mother keyboard is identified as being on a particular M.I.D.I. Channel. Meanwhile the receiving modules are set to respond on their own M.I.D.I. Channels (these can be the same if desired). When an instruction arrives at the module, the device will only follow the instruction if the message's transmit channel (TX) corresponds to its receive channel (RX). There are 16 M.I.D.I. channels within the basic protocol, but some hardware devices allow multiple streams of M.I.D.I. data, and hundreds of channels can be achieved. So Where Does The Computer Fit Into All This Then? It was bound to happen, since M.I.D.I. involves instruments communicating by using a string of binary digits, and the one thing that computers can do is store and manipulate binary digits. Although there are all sorts of computer programs designed to store and manipulate M.I.D.I. data, the most common is the Sequencer. This is a program which records and manipulates M.I.D.I. instructions, commonly called Events. Note that a M.I.D.I. sequencer doesn't record sounds (although the issue is getting somewhat confusing with the arrival of programs which integrate M.I.D.I. sequencing with Hard Disk Recording). The most popular sequencer program across the P.C., Atari and Macintosh computer platforms is Cubase, published by Steinberg. However, I choose to use Logic, published by Emagic. Ok. so, remembering that the sequencer only records the instruction emanating from a M.I.D.I. instrument will enable you to avoid one of the most common difficulties afflicting M.I.D.I. newbies. Here's the scenario: Fledgling M.I.D.I. musician Jon-Mitchell Jam-Jar buys himself a computer, complete with a M.I.D.I. sequencer. Having read up on some of the classic synthesizers of the past 20 years he equips himself with a Yamaha DX7. He hooks up the M.I.D.I. cables correctly, and boots up his sequencer. He's ready to go. He starts by recording a hypnotic repetitive bass part which he's very happy with. He now wants to add a string part over the top. He changes the sound on the DX7 so that its now playing a lush approximation of the London Symphony Orchestra, but ...... Oh No! The bass part is now being played by violins. "I've recorded my bass part into the computer" he says, "but its not playing back properly". Of course, now that you know what a M.I.D.I. sequencer actually is you'll realize the mistake he's making. The computer and sequencer are simply recording M.I.D.I. instructions and not the sounds produced by the keyboard. When the sequencer plays the recorded data back it retransmits the instructions, just as the original keyboard would when it was played in the first place. The computer is doing the job of a mechanized keyboard player. In fact, in many ways it is similar to the old pianolas, or player-pianos, which played music according to holes punched in a roll of paper. The sequencer punches the computerized equivalent of holes in the paper. Without the sound producing mechanism the holes are just ....uhm... holes. If Jon wants a bass sound and a string sound playing at once he'll either need two modules/synthesizers, with one sound each, or a device that is capable of playing more than one sound at once, on more that one M.I.D.I. channel (more of this in a bit). If you connect the master keyboard so that it can send M.I.D.I. data to the computer, but is no connection to its M.I.D.I. In means that the computer can't "play" the master keyboard. This is a common scenario since many master M.I.D.I. keyboards are in fact "dumb", featuring no sound generating hardware themselves, but rather being devoted solely to producing M.I.D.I. instructions. The alternative is to use a genuine synthesizer for both roles. The second thing to note is that the computer only has two M.I.D.I. connections. One is the M.I.D.I. In which receives instructions from the master keyboard. The other is a M.I.D.I. Out/Thru, which covers both functions. This is because when the master keyboard is being played it is necessary to retransmit the instructions arriving at the M.I.D.I. In to the following modules, but when the M.I.D.I. data is being replayed from the sequencer the computer itself needs to originate the data. Don't All Talk At Once! This causes a problem though. When the keyboard is connected to the computer, the sequencer program will retransmit the received information, which will eventually be received back at the synthesizers M.I.D.I. In. In short, the synthesizer will be receiving instructions from two places at once. This can result in two identical notes being played using the same sound, or if the targets for the two instructions are different, then unwanted sounds may play inappropriate parts. Either result halves the polyphony. There are is a solution to this problem. In fact there is more than one, but I'll only look at the best, which breaks the connection between the sound generating part of the synthesizer and the keyboard. This is achieved by turning Local Off on the synthesizer. This may be easy or difficult depending on the complexity of the synthesizer concerned. The Alesis Quadrasyth for instance has a reference to Local Off in its manual, but the controls used to achieve it aren't called by that name, and are rather confusing. On the other hand the Kawai KC20 has a simple page where Local can be turned on or off. Of course, leaving Local Off makes things simpler when working with a sequencer, but you'll need to remember to turn it back on again when you use the synthesizer as a stand-alone instrument. If you find the keyboard doesn't generate any sound in this situation, its probably worth checking that Local has been turned back on. Is There Anything Else You Need To Tell Me? In addition, the speed, or velocity at which the key is pressed is used to convey how hard the note was struck, movement of the pitch bend and modulation wheels can be transmitted via M.I.D.I. This sort of information comes under the heading of M.I.D.I. Controller Data, some of which is pre-defined as being volume data, or pan data, and some which can be defined by the user so that the receiving instrument may map the data to an unspecified parameter. What the receiving instrument will do with the incoming controller data is determined by that instrument, not by the transmitting device, so that if you were playing a keyboard on which full downwards pitch bend only produced a shift of a semi-tone, you may find that the receiving instrument shifted its pitch by an octave, unless it was set up to respond in the same way. When the transmitting device sends a M.I.D.I. message it begins by saying what sort of message it is. Each of the controller types is numbered, so that if the receiving instrument receives a message labeled as Controller 7 it knows that this will be intended to set the instrument's volume. Most instruments should conform to the controller assignments shown here: Control Number Function M.I.D.I. Files, Schmiddy Files There were problems though. Firstly, a file recorded using one sequencer program couldn't be played by another sequencer program, and secondly, although it was possible to embed instructions to change programs within sequencer files, the sounds that were attached to various programs within different synthesizers didn't necessarily bare any relation to each other. The first difficulty was overcome by the development of M.I.D.I. files. These are sometimes referred to as MIDIs, or .MID files. These allowed sequences to be transported between different software setups. The second problem was more difficult though. The standard allocation of sounds is called General M.I.D.I., or GM. Having said that, it is undoubtedly a very useful way of ensuring that M.I.D.I. Files sound close to the way they were intended. Of course, an Akai piano won't sound the same as an Ensoniq piano, but at least piano parts will be played by pianos when GM is used. The standard sound allocation for GM sounds applies to all M.I.D.I. channels except M.I.D.I. Channel 10. More of this in a minute. On all other channels the sounds are allocated to program numbers as follows: Prog. No. Instrument Under the GM standard, M.I.D.I. Channel 10 is reserved for percussion sounds, and a system for allocating sounds to particular notes is specified too: Note No.Note Name Sound General M.I.D.I. also specifies that: The receiving instrument should be 16 note polyphonic across M.I.D.I. channels 1 to 9, and 11 to 16. The receiving instrument should be 8 note polyphonic on M.I.D.I. channel 10. All 128 program numbers should be implemented. Controllers 1, 7, 10, 11, 64, 121 and 123 must be implemented Do I Need A Synth Then? Many web pages now include embedded M.I.D.I. files, and computer games provide a musical accompaniment through M.I.D.I. Of course, not everyone who wants to listen to music in this way has a M.I.D.I. equipped keyboard at their disposal. Luckily they don't need one. Although M.I.D.I. files which are played via an internet connection can be routed through a M.I.D.I. interface to an external device, it is also possible to have them played by a M.I.D.I. device housed inside the computer itself. The quality of the device and its method of operation will depend on the computer, along with the additions that have been made to it, but generally, M.I.D.I. based music is an accepted facility that computers now provide. In the case of PCs (IBM compatibles/Windows and Intel based machines), the M.I.D.I. processing hardware is usually housed along with the audio hardware on the computer's soundcard. This may simply offer the sounds themselves along with an output port to enable connection to a stereo system, or to external speakers. Alternatively, the soundcard may offer M.I.D.I. Ins and Outs, enabling the connection of a keyboard and receiving devices. Apple Macs are already equipped with sound generating hardware, and include a software addition called Quicktime Musical Instruments, as part of the system software. This is effectively a basic GM synthesizer which will not only play M.I.D.I. files from within other programs, but may also be accessed by a sequencer as an instrument. If you visit a web page with an embedded M.I.D.I. file you'll be able to play it as you look at the page, as long as you have a Plug-In which can process the M.I.D.I. data and send it to a M.I.D.I. equipped soundcard or to Quicktime Musical Instruments. If you download and save a M.I.D.I. file you'll be able to play it with a variety of software when you're off-line. There are many shareware M.I.D.I. file players available, my Mac favorite is Arnold's M.I.D.I. Player, or if you have a sequencer program you could load it onto there and play it on a GM synthesizer. And Finally... |
|
Designed by C
and S Software LLC
|