Home
audio MIDI Music Algorithms Interfaces Programming Acoustics Context
> MIDI    
 
MIDI   TUTORIALS:

MIDI

The Musical Instrument Digital Interface protocol is wide spread
and in this section we examine how to read and write MIDI data
and discuss basic issues of sending a receiving musical events,
as opposed to audio streams.

Musical Data>> read more.
This section examines the way
that musical ideas a represented
as digital data.

It pays particular attention to the
data structures used by the
development libraries (jMusic etc.)
and how they relate to the MIDI data
structures.

Input/output>> read more
Sending and receiving musical
messages is important to connecting
with external devices.

This section discusses the methods
for and issues involved in making
your instrument communicate in this
way.
























MIDI - By Paul Doornbusch

MIDI, or Musical Instrument Digital Interface, is a standard for digital communication between digital devices that is geared towards the real-time needs of traditional music. It is important to remember that it is not the audio that is being passed around, but only the control data messages. The messages can be as simple as ‘play the note C3 now until I tell you to stop’, to more complex messages such as, ‘adjust the pitchbend of note E4 up 5 more places’. Roland and Sequential Circuits were two of the first and main manufacturers to develop the initial MIDI standard so that synthesisers could be patched together. Roland developed the first MIDI interface for a computer, allowing computer control of a synthesiser.

MIDI specifies 16 separate logical MIDI Channels. These are only channels in the logical sense; all messages for all channels travel along the same piece of wire. Therefore, with a single MIDI cable you can control up to 16 different instruments at once. It can do this because MIDI instruments typically only “listen” on one channel at a time (unless it is a poly-timbrel instrument). For example, you might have a computer (as a sequencer) sending MIDI information to a number of instruments listening on different channels, if you change the channel the data is transmitted on, another synthesiser (or machine) will act on the command messages. It is important to remember is that both the sending device (eg, the computer) and the receiving device (eg the synthesiser) must be set to the same MIDI Channel, or no sound will result. MIDI messages typically take the form of ‘Note On’, ‘Note Off’ or ‘Controller Change’.

There are two types of MIDI messages: Channel messages and System messages. A Channel message includes a Channel number within the message and it is received and understood by devices which are set to respond to messages on that particular Channel, and ignored by devices set to a different Channel. The most basic Channel message is a Note On message. When you press a key on a synthesiser keyboard, a Note On message is sent out with the specific key number and channel encoded within it. When you release the key, a corresponding Note Off message is sent. Other information can be carried by a Channel message, such as Velocity, Volume, Pitch Bend, Aftertouch and Controller.

A System message is meant to be received and understood by all devices that are connected, regardless of their Channel setting. These messages control synchronisation between devices, as well as special manufacturer-specific modes of operation. A System message can have a manufacturer and device code embedded within it so that only a specific device will respond to the message.

A Program Change message causes any devices tuned to the same Channel to change internal settings corresponding to the number sent. On many synthesisers, this causes a change in patch (or instrument sound). MIDI specifies a range of 128 Program Change numbers. Most synthesisers do not have the same sound on the same patch number. General MIDI is a specification to overcome this, specifying which sounds should be on which channels. This is to make it easier to play standard MIDI files across different synthesisers and achieve an acceptable result.

A MIDI cable is a cable with a 5-pin DIN connector on each end, with the centre three pins connected through to the other end. There are three MIDI connectors: MIDI IN, MIDI OUT and MIDI THRU. MIDI IN is for receiving MIDI messages from other devices, MIDI OUT is for sending messages to the devices connected, and MIDI THRU sends a copy of the messages received via MIDI IN all other devices.

MIDI is useful for musical instruments as it is not very difficult to convert analog electrical information from sensors to MIDI information. From there is a relatively trivial matter to send this information into a computer and make use of it in some software, for example to control a sound synthesis engine. However, MIDI can have some severe limitations, particularly when used for digital instrument control for new music. Primarily, these are a maximum resolution of 127 steps (7-bit), a structure based on equal temperament and limited bandwidth. OpenSound Control is a network protocol which overcomes these limitations and which is becoming more popular with instrument builders. It is also possible to send MIDI information over faster transports, such USB, ethernet and Firewire interfaces. However, this only overcomes one of MIDI’s limitations.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
     

jMusic Australia Council Queensland University of Technology Sitemap Contact Home Home http://www.qut.com http://explodingart.com/jmusic http://www.ozco.gov.au

Digital Instrument making Contact