MIDI Protocol
Musical Instrument Digital Interface
MIDI Messages
Estructurados por grupos de 8 bits (un byte) los mensajes MIDI tienen dos tipos de datos.
MIDI commands
MIDI data
0111 1111
1111 1111
There is MIDI all over the place
We can distinguish between MIDI commands and MIDI data by looking at the message’s most significant bit (msb: the leftmost bit).
- The MIDI Commands are distinguished by a 1 at their msb.
- In contrast, MIDI data have a 0 as their msb.
What kind of messages does MIDI produce?
- Web browsers implement MIDI
- Mobile devices can use MIDI
- All computers can use MIDI
What is MIDI?
- Symbolic representation of music.
60 is a middle C
increment chromatically
so C# is
61
and the next C is
60 + 12 = 72
MIDI is a communications protocol that allows the interconnection between different kinds of musical devices, controllers and software applications.
The MIDI protocol does not transmit sound, it only transmits the necessary control data to manipulate sound producing devices.
MIDI does not describe the timbre of an instrument, rather it is a common language that can be used to communicate between different modules.
The MIDI protocol implements a scheme of messages as it is described in a document known as the MIDI 1.0 Detailed Specification.
What can you do with MIDI?
Examples of MIDI messages
Command Meaning # parameters param 1 param 2
0x80 Note-off 2 key velocity
0x90 Note-on 2 key veolcity
0xA0 Aftertouch 2 key touch
0xB0 Continuous 2 controller # controller value
controller
0xC0 Patch change 1 instrument #
0xD0 Channel 1 pressure
Pressure
0xE0 Pitch bend 2 lsb (7 bits) msb (7 bits)
0xF0 (non-musical commands)
- Control virtual instruments
- Produce complex compositions
- Store performances in your hard drive
- Design your own interfaces
- With GM you can instantly play back pre-recorder music.
Controllers
Example of a typical MIDI setup
There are several types of controllers
MIDI Messages
Control Change (CC):
These messages can control the values of singles parameters that define how a synthesizer sounds.
MIDI Commands
System Exclusive Messages:
Used to communicate things that are specific for a given device.
command
channel
1000 Note Off
1001 Note On
1010 Aftertouch
1011 Continuous controller
1100 Patch change
1101 Channel Pressure
1110 Pitch bend
1111 (non-musical commands)
from
1 to 16
but given
that the
representation
is binary, they
go from
0 to 15
MIDI Messages
Sequencers
Program Changes:
Selects sounds in another device
MIDI Jacks
- A sequencer can record a MIDI performace.
- You can create projects with several tracks and instruments.
- You can correct an modify the data recorded in a track
- Quantization
- Transposition
- Scaling
Standard MIDI Files
- Recordings can be saved in Standard MIDI Files (SMF).
- SMF offer a quick solution to share MIDI performances and get MIDI tracks from other artists or known music.
Duplex
Master - slave
MIDI Messages
Devices with multiple output ports
Daisychaining
(may cause dalay)
MIDI patchbay
MIDI USB
General MIDI
Performance:
- Note on
- Note off
- Velocity
- Pitch bend
- After touch
- A standard set 128 of sounds organized by number.
- Lets you produce a composition that can be played right away in any MIDI capable machine, mantainning the instrumentation.
- General MIDI can be recognized by its logo.
General MIDI 2
MIDI Connections
General MIDI 2 is an extended version of General MIDI.
DIN 5
MIDI Channels
Each connection can transport up to 16 different channel MIDI data
You can control up to 16 devices from a computer or 16 different instruments in the same device