MIDI Musical Instrument Digital Interface A digital communication

  • Slides: 27
Download presentation
MIDI Musical Instrument Digital Interface A digital communication protocol allowing devices to send and/or

MIDI Musical Instrument Digital Interface A digital communication protocol allowing devices to send and/or respond to instructions

Function of MIDI The MIDI protocol allows devices to exchange various types of instructions

Function of MIDI The MIDI protocol allows devices to exchange various types of instructions n MIDI data is not an audio signal n As a comparison: n – – – a tape or CD contains a description of an audio signal a printed page of music contains instructions that a (human) instrumentalist is trained to carry out a MIDI file contains instructions that a (computer) instrumentalist is trained to carry out

Function of MIDI n n Thus, a MIDI file is small and easily transmitted

Function of MIDI n n Thus, a MIDI file is small and easily transmitted It contains instructions only, leaving the creation of the actual audio signal to the receiving device Instruction messages are transmitted in the form of binary numbers Binary numbers may be transmitted by alternating voltage between set high and low levels – high = 1 – low = 0

Connecting MIDI Instruments n Typically, a MIDI instrument has three MIDI ports – IN,

Connecting MIDI Instruments n Typically, a MIDI instrument has three MIDI ports – IN, OUT and THRU n In a simple configuration, one main instrument will act as the master to a number of slave instruments.

Connecting MIDI Instruments n The sound of the master may be enhanced by doubling

Connecting MIDI Instruments n The sound of the master may be enhanced by doubling its sound with a slave instrument that is set to play a different type of sound. master n slave This is accomplished by connecting the MIDI OUT Of the master to the MIDI IN of the slave.

Connecting MIDI Instruments n To enhance the sound still further, more slave devices may

Connecting MIDI Instruments n To enhance the sound still further, more slave devices may be added by “daisy chaining” more instruments together via the MIDI THRU port. master . . . slave 1 n slave 2 slave n The MIDI THRU port simply passes on what comes to the instrument via the IN port.

Connecting MIDI Instruments n n In some situations, daisy chains can lead to delays

Connecting MIDI Instruments n n In some situations, daisy chains can lead to delays at the end of the chain. A tidier configuration is to use a MIDI Thru Box master

Connecting MIDI Instruments n To play an arrangement, a sequencer can send MIDI to

Connecting MIDI Instruments n To play an arrangement, a sequencer can send MIDI to a group of instruments. sequencer Channel 1 n n Channel 2 . . . Channel 16 MIDI has 16 channels Each instrument can be set to play a different sound and base channel, with each part corresponding to a different channel.

Configuring MIDI Instruments n MIDI came into being at the same time as the

Configuring MIDI Instruments n MIDI came into being at the same time as the personal computer. Soon, programmers began writing MIDI software. A MIDI interface translates computer code to MIDI code

MIDI Software n n A software sequencer could have more features than a dedicated

MIDI Software n n A software sequencer could have more features than a dedicated hardware sequencer, and have more memory. Editor/Librarian software could allow complex synthesizer patches to be created more intuitively. – – n Patches could be arranged and stored in banks Groups of banks could be stored in a computer and transferred to the instrument Notation software could translate MIDI information into notated music, as well as transpose, create parts, allow easy creation of alternate arrangements, etc.

Configuring MIDI Instruments n The most flexible configuration makes use of a MIDI patchbay

Configuring MIDI Instruments n The most flexible configuration makes use of a MIDI patchbay With successive IN/OUT port pairs, each device connected to the patchbay can send and receive information Many devices can play on more than one MIDI channel MIDI patchbay A master controller keyboard produces no sound, but only sends MIDI information Tone modules are synthesizers without keyboards A patchbay allows a software synthesizer to address both port and channel number Thus, the number of available channels becomes <# ports> * 16

Computer as Sound Generator n n n It is also possible to use the

Computer as Sound Generator n n n It is also possible to use the computer as a sound generating instrument A MIDI interface is often combined with a sound card that has banks of wavetable sounds Apple’s Quick. Time, a free download, comes bundled with a set of instrument sounds, which are used by the computer to play MIDI files: J. S. Bach, Trio Sonata BWV. 525 n The Quick. Time instruments also function as an internet browser plug-in, allowing web pages to play MIDI files on a computer that has the plug-in installed.

The MIDI Language n MIDI messages fall into two main categories: – Channel (pertaining

The MIDI Language n MIDI messages fall into two main categories: – Channel (pertaining to information on a particular channel) n Voice n Mode – System (pertaining to the system as a whole) n Real time n Common n System Exclusive (Sys. Ex)

Channel Voice Messages n MIDI is transmitted in 10 -bit bytes 1 0 MIDI

Channel Voice Messages n MIDI is transmitted in 10 -bit bytes 1 0 MIDI start stop n The first and last bits are start and stop bits, used to identify the beginnings and ends of bytes n The actual MIDI information is in the middle eight bits

Channel Voice Messages n n There are two types of MIDI Channel Voice bytes:

Channel Voice Messages n n There are two types of MIDI Channel Voice bytes: status bytes and data bytes A status byte determines the type of message and the channel (what? and where? ) – n The MSB of a status byte is 1: 1 nnnnnnn A data byte gives a value (how much? ) – The MSB of a data byte is 0: 0 nnnnnnn – With seven bits following the MSB, a data byte’s range of expressible values is 0 -127

Channel Voice Messages A Channel Voice message consists of one status byte and at

Channel Voice Messages A Channel Voice message consists of one status byte and at least one data byte n The status byte is divided into nibbles: n 1 nnn nnnn message type n channel no. (0 -15) With three bits to define message types, there are eight possible types of messages. Seven are implemented.

Channel Voice Messages Note Off 1000 nnnnnnn status two data bytes note number velocity

Channel Voice Messages Note Off 1000 nnnnnnn status two data bytes note number velocity Middle C = MIDI note number 60 n Velocity: how quickly a note is released – – A higher number is a quicker release, corresponding to a note fading quickly A lower number is a slower release, corresponding to a note fading slowly

Channel Voice Messages Note On 1001 nnnn 0 nnnnnnn n status two data bytes

Channel Voice Messages Note On 1001 nnnn 0 nnnnnnn n status two data bytes note number velocity Velocity: how quickly a note is depressed – – A higher number results in a louder tone A velocity value of 0 is the same as a Note Off.

Channel Voice Messages Polyphonic Key Pressure (Poly Aftertouch) 1010 nnnnnnn n status two data

Channel Voice Messages Polyphonic Key Pressure (Poly Aftertouch) 1010 nnnnnnn n status two data bytes note number pressure Pressure applied to the keys is mapped to some modulation parameter (within the particular instrument) Thus, each key can generate its own degree of modulation This is a feature found mainly in higher-end instruments (separate sensors must be installed for each key)

Channel Voice Messages Channel Key Pressure (Channel Aftertouch) 1101 nnnn 0 nnnnnnn n status

Channel Voice Messages Channel Key Pressure (Channel Aftertouch) 1101 nnnn 0 nnnnnnn n status one data byte pressure “Poor person’s” aftertouch – less costly to implement, and thus found on more instruments than poly aftertouch One pressure value is applied to all notes on a given channel The value is read from the key that is being pressed hardest

Channel Voice Messages Program Change 1100 nnnnnnn n status one data byte program number

Channel Voice Messages Program Change 1100 nnnnnnn n status one data byte program number Change to a specified patch number on an instrument With one data byte, up to 128 patch numbers may be specified A separate message type (that we will see shortly) can allow specification of more than 128 patches

Channel Voice Messages Pitch Bend 1110 nnnnnnn n n status two data bytes pitch

Channel Voice Messages Pitch Bend 1110 nnnnnnn n n status two data bytes pitch bend value, LSB pitch bend value, MSB Pitch bend has 14 bits of resolution, a value range of 0 to 16, 383. The range of pitch shift is programmable within an instrument, typically from one semitone to an octave above and below the note being bent. 64 values within the range of a semitone would be acceptable, but within the range of an octave there would be audible discontinuities (“zipper noise”). Hence, two data bytes for better resolution. Pitch bend is a special class of controller (the next message type). It is its own message type so that the two data bytes may be combined into one value.

Channel Voice Messages Control change 1011 nnnn 0 nnnnnnn status two data bytes Controller

Channel Voice Messages Control change 1011 nnnn 0 nnnnnnn status two data bytes Controller number Controller value Controllers modify the sound of a sounding note The controller number specifies a stream of information. Controller information is commonly described either in terms of what type of device is producing the stream (pedal, wheel, slider, etc. ) or what type of sound parameter is being controlled (volume, tremolo, pan position, etc. ) The first data byte defines the control stream being addressed, the second data byte determines its value (or position).

Channel Voice Messages Control change The implementation of controller messages was meant to be

Channel Voice Messages Control change The implementation of controller messages was meant to be open-ended, to allow the creation of new types of modulation. Many controller numbers remain undefined. Controller numbers 120 -127 are reserved for another MIDI message type (our next topic), leaving 120 definable controllers. The sound parameter affected by a physical controller may vary from instrument to instrument, or may be mappable within a particular instrument.

Channel Voice Messages Control change Controllers 64 -69 are typically ON/OFF controllers. Value of

Channel Voice Messages Control change Controllers 64 -69 are typically ON/OFF controllers. Value of 0 = OFF; Value of 127 = ON Controller Number Sostenuto (damper) pedal 66 Soft pedal 67

Channel Voice Messages Control change Sometimes more resolution than 0 -127 is needed.

Channel Voice Messages Control change Sometimes more resolution than 0 -127 is needed.

Channel Voice Messages Control change Another example addresses the problem of instruments that have

Channel Voice Messages Control change Another example addresses the problem of instruments that have more than 128 patches. Such an instrument will have a number of banks, with each bank containing 128 patches. Controller 0 typically defines bank number. A bank select message (controller 0) followed by a program change message allows selection of this many patches: <number of banks> * 128