Musical Instrument Digital Interface (MIDI) is a technical standard that allows multiple electronic devices to synchronize data in real-time.
Musical Instrument Digital Interface (MIDI) is a technical standard that allows multiple electronic devices to synchronize data in real-time.
These could be synthesizers playing the same notes and rhythms...
Musical Instrument Digital Interface (MIDI) is a technical standard that allows multiple electronic devices to synchronize data in real-time.
These could be synthesizers playing the same notes and rhythms...
Or faders on a mixer that move up and down on their own,
controlled by computer software...
Musical Instrument Digital Interface (MIDI) is a technical standard that allows multiple electronic devices to synchronize data in real-time.
These could be synthesizers playing the same notes and rhythms...
Or faders on a mixer that move up and down on their own,
controlled by computer software...
Or lights that blink in time with music.
In other words, MIDI connects all of these devices:
MIDI allows all of these devices to share the same event data:
Events (like notes) are triggered on all devices at the same time.
Realtime: synchronous, instantly rendered within a
fraction of a second in performance
Offline: not synchronous, rendered later,
after careful editing, in a composition
Good question, but... NO!
Sound signals represent pressure waves travelling through air.
Sound can be stored in a digital or analog medium
such as CDs or magnetic tape.
MIDI is a digital format, but does not
transmit recorded sound and is not a signal.
It can store very accurate timing information
about musical parameters like
pitch, rhythm, duration, tempo, and timbre.
MIDI can be stored in small files:
ca. 1000 times less space than audio files!
Like musical scores, MIDI can be stored in simple text files.
MIDI is a very efficient way of
storing musical instructions on a computer.
Good question, but... NO!
Computer languages allow you to construct systems of logic,
and include many classes (i.e., data types),
which can process everything from numbers to letters to sound files.
MIDI, however, is far more basic than that...
MIDI only stores numbers.
These numbers do not represent sound,
but only event triggers.
MIDI cannot represent any other type of data
and only performs one simple task:
MIDI sends binary messages that are interpreted
exactly at the moment they are sent and received...
So, when you depress a key on the keyboard,
or move a fader on the mixer,
instantly a sound is produced,
or a light switches on!
MIDI is therefore not a computer language
and is best thought of as a simple
control protocol.
These synthesis pioneers did not use MIDI.
Before MIDI, cables transported control voltage,
delivering electricity as a sole means
of controlling sonic events.
Many companies designed their own synths,
but these instruments could not communicate...
Korg and Yamaha used one connection format,
but Moog and Roland used another.
In 1981, Dave Smith of Sequential Circuit developed
a message to send pitch data at a 19600 baud rate.
Ikutaro Kakehashi of Roland also worked on a common language
for synthesizers shared by Yamaha, Korg, and Akai.
Roland and Korg began discussing the need for a standard for all
synthesizers at AES ("Audio Engineering Society") in California.
By 1982, the first MIDI-compliant synthesizers were born.
In 1982, the first technical specification was published on the MIDI standard:
The first computer and software implementations of MIDI were born.
MIDI messages were first transmitted on 5-pin DIN cables...
...which connected a synthesizer's IN, OUT, and THRU ports:
With MIDI THRU it is possible to connect several synths in a "daisy chain"
and to control them all from one device (e.g., Instrument 1 above).
But there were several problems with this chain configuration:
A solution is the star configuration.
Here, sequencer software (Ableton Live) records and plays back MIDI data.
MIDI "clips" store this data in a piano roll editor (bottom of screen).
The sequencer makes no sound by itself;
it only triggers notes played by software synthesizers.
The keyboard he plays functions as a MIDI Controller:
it controls the playback of another MIDI device, like the software synth.
After recording the MIDI information, the sequencer acts as a controller
when it plays the software synth!
Here, another sequencer (Apple Logic) controls
2 other peripherals: the Korg NS5R and X5DR samplers.
Sound samples are stored in the Korg periphals
while the sequencer (Logic) again makes no sound by itself;
the software only triggers notes on the peripherals.
Binary: lists containing only digits 0 or 1,
which represent a number or letter
next slide: how to convert a
base 10 number to a binary number...
Defines the message type and the channel number.
binary | message type | description |
---|---|---|
000 | Note-Off | release a note |
001 | Note-On | start a note |
011 | Control Change | change continuous controller |
100 | Program Change | change sound |
101 | Aftertouch | global pressure per channel |
010 | Polyphonic Aftertouch | pressure for each key |
110 | Pitch Bend | glissando around a pitch value |
Includes the data formatted for each type of message.
A data byte is 7 binary digits, which can represent
numbers ranging from 0 to 127.
The number of data bytes following a status
byte depends on the type of message sent.
Notice that these messages (previous slide) require 2 data bytes:
One number represents pitch while the other represents velocity, or loudness.
Pitch values (0-127) span the range of the orchestra.
MIDI note number 60 is middle C.
Velocity values also range from 0 (silent) to 127 (loudest possible sound).
A velocity value of 0 is considered a Note-Off message.
All "notes," then, require 2 MIDI messages:
Here is a single note in a piano roll sequencer.
The playhead, moving from left to right, first rolls over point A,
which triggers the Note-On message:
10010001 0111100 1100100 meaning:
status byte + type: Note-On + channel: 1 + MIDI note: 60 + Velocity: 100
After some duration (length of the blue bar), the playhead rolls over point B,
which triggers the Note-Off message:
10000001 0111100 0000000 meaning:
status byte + type: Note-Off + channel: 1 + MIDI note: 60 + Velocity: 0 (silence!)
Musical scores can be represented as MIDI files in 2 ways:
.mid files can be opened by many music notation programs
like Finale, Sibelius, MuseScore, LilyPond, or Dorico.
A bank of sounds used by all synthesizers,
including software synthesizers available on computers.
Users can call the same instrument represented by a
program change number on any MIDI-compatible instrument.
Here, all 128 General MIDI programs are played, one at a time on the same pitch, using the internal synth that comes installed on Windows computers.
The TouchMe MIDI controller uses the electrical resistance
of connected objects to send MIDI messages.
The Roli Seaboard controllers allow for continuous change
in pitch, timbre, and other synthesis parameters.
The Karlax controller uses gyroscope sensors
to generate gesture data and can be performed by
a musician or a dancer, for example.
The Sensel Morph uses many pressure sensors to generate continuous MIDI data that can mapped to gestures in musical and non-musical situations.
The continuous pitch (glissando) of these modern controllers
(on previous slides) are made possible thanks to MPE.
Normally, Pitch Bend messages are sent on all channels at once, but...
MPE allows messages like Pitch Bend to be sent for each individual note...
In other words, MPE gives each note its own pitch bend,
modulation, pressure, dynamics, and other parameters.
Imagine: each finger or each key acts as its own MIDI controller!
Like 1982, many instrument builders were trying to address
problems in their own way, without communicating among one another.
Similarly, they needed a standard language.
In 2018, MPE was adopted as a standard for polyphonic
expressiveness by the International MIDI Association.
Remember how a single DIN cable can carry 16 MIDI channels?
Traditionally, these were used for 16 different instruments,
each with its own Program Change values.
MPE repurposes the use of MIDI channels: each channel is used
for a single note, allowing a polyphony of expressive messaging
per note on a single instrument.
The system permits a maximum polyphony of 15 notes, reserving
one master channel for messages that apply to all notes.
A good visualization for how MPE utilizes MIDI messaging
Today, MIDI devices are frequently connected with faster USB cables,
instead of the older and slower DIN cables.
A single USB cable can act as 16 independent MIDI cables,
each with 16 channels,
for a total of 256 MIDI channels.
For distances over more than just a few meters,
a USB or MIDI cable will experience latency and drops in signal.
A solution has been to use TRS cables.
Like XLR audio cables, TRS can transmit over long distances.
With the growing use of Eurorack analog modular synthesizers,
which normally use small TS patch cables (close to TRS),
it is increasingly common to find MIDI-to-TRS cables
connecting controllers to Eurorack modules.
Ethernet cables (used for internet connections)
are now frequently used to transmit audio.
Now, we also use ethernet cables to transmit
large amounts of MIDI data over large distances,
especially useful when using today's elaborate MIDI interfaces,
which connect many devices in an expansive network.
Today, you can even connect MIDI over wireless networks like Bluetooth!
In our other seminars, we frequently discuss these
and other advanced MIDI issues, like:
We hope you learned something useful
to use in your artistic practice!