or how MIDI devices talk to one another
Mozart plays back using MIDI. If Mozart's play-back and other MIDI operations are all working correcly on your computer, then you may not need to know any of the following. On the other hand, if you wish to enhance your computer's MIDI capability, then what follows below is an account of the absolute basics.
Introduction to the hardware
MIDI stands for Musical Instrument Digital Interface and was originally conceived for communication between electronic musical instruments.
Back in the days before desktop computers arrived on the scene, there were MIDI keyboards. A MIDI keyboard (at least a 'dumb' MIDI keyboard) does not produce any sound. Rather, it has a wire connected to its MIDI-out port, down which it sends MIDI instructions.
MIDI instructions are typically commands of the form:
- start playing the D above middle C on channel 13;
- stop playing the D above middle C on channel 13;
They are encoded in an absolutely standard (and very compact) way, and sent down the wire with the desired timing.
The other end of the wire is connected to the MIDI-in port of a box of electronics which interprets these instructions and generates audio signals - a MIDI synthesiser.
Traditionally the connections of the wires to the MIDI-ports were implemented by 5-pin DIN plugs and sockets.
The audio output from the synthesiser is sent to loudspeakers using traditional audio connections: wires with jacks or phono plugs.
MIDI and desktop computers
Desktop computers have had a MIDI capability from very early days. A MIDI file can be stored, comprising a sequence of MIDI instructions each accompanied by a time stamp. MIDI instructions were designed to be very compact, so that the instructions could be sent, with the hardware of the era of its invention, without compromising the timing. For early computers, it was an enormous advantage that MIDI files were very small in comparison with files containing good quality audio recordings, and, for a considerable time, just about all music on the World Wide Web was implemented in MIDI files.
If you wanted to use MIDI, you would buy a computer with a sound card. Among its other capabilities, this contained a (hardware) synthesiser which would accept MIDI signals from your computer, synthesise the sound, and send the resulting audio signals to your computers loud speakers. On the back of the sound card you would find (5-pin-DIN) MIDI sockets implementing MIDI-in and MIDI-out ports.
For notation software programs, including Mozart, MIDI is an obvious boon. It is relatively straightforward to take the crotchets, quavers, and minims in whatever format the notation program uses, and generate a sequence of timed note-on and note-off MIDI instructions. Then all you need is the synthesiser to produce the actual sound.
Today the technology has advanced somewhat. Before we look at it, it is very useful to keep the above physical configuration in mind:
MIDI-instrument → MIDI-out → wire → MIDI-in → MIDI synthesiser
The "MIDI-instrument" might be a keyboard or other MIDI device, or indeed Mozart's play-back command!
And if you have an external sound card containing a synthesiser, your configuration might still look just like that, though the wires may now be more likely to have USB than 5-pin-DIN connections.
But nowadays you are at least as likely to have a 'software synthesiser'. This is a computer program, running in the background, which takes the place of the box of electronics. It may use hundreds of MegaBytes of data (sound fonts) to help it produce the sound, but that has ceased to be a problem. However, it still exposes itself via its (virtual) MIDI-in port, and the above model is paramount in understanding what is going on.
MIDI and Windows
The Microsoft Windows operating system acts as a broker for MIDI-aware programs. The relevant features for Mozart's play-back are as follows.
Windows provides methods to find out how many MIDI-out ports are available and to give a name for each. And it will accept MIDI signals to any of its MIDI-out ports, and forward them to the MIDI-in port of the corresponding synthesiser.
The MIDI-in/out model is important. It means that MOZART can use any installed Windows-compatible synthesiser, wihout knowing anything about it, other than a name which lets you select it. Mozart asks Windows how many synthesisres there are, and the name of each, and then lists them in its preferences dialogue box for you to choose the one you want:
The list will include 'MIDI-Mapper'. This is not a synthesiser as such, but rather an instruction to use whichever synthesiser on the list which Windows regards as the default. Unless you have done something to cause it to be different, there will be just one synthesiser on the list: the "Microsoft GS Wavetable Synth". This is a software synthesiser supplied as part of Windows: all Windows computers should have it, and it is what gives Windows its basic MIDI capability. But you can install others, either on a sound card, or as software. They will then appear as options on Mozart's list above.
For completeness let us note that Windows also brokers MIDI-in. Mozart can 'listen to' all MIDI in ports, assess the timings of any notes (MIDI signals) coming in and convert them into notation in a music Window. This option is only available if you have a MIDI-instrument connected to your computer (and usually, again, these days it is usually implemented by USB).
If no instrument is connected, then Mozart will detect that there are no MIDI-in ports and the option will not be available.