What is MIDI
For all those who are not familiar with the MIDI protocol and who have come across this site out of curiosity, we decided to open a page to provide the basics to approach the world of MIDI controllers.
A really simplified introduction to understand MIDI on the fly.
Use the MIDI_Monitor to see the data
The best way to quickly understand is the direct experience, so let’s use the MIDI monitor.
The MIDI_Monitor is a part of the DART_Editor, and it makes the MIDI data readable and audible.
- Any action on the modifiers, clicking the onscreen items or tweaking an external controller, is now producing…
- a sound effect
- and a flow of numbers in the MIDI_Monitor section.
Take some time to observe directly the relationship between the actions performed on the modifiers, their settings and the auditory and visual effect that is produced. This is a great way to get familiar with the MIDI protocol 🙂
Reading the 3 bytes of a MIDI message.
- look at the section C and press a button of the DART controller.
- a MIDI message is commonly transmitted in 3 bytes, as shown in the Raw_Data monitor.
- STATUS BYTE
- DATA BYTE 1
- DATA BYTE 2
- Get familiar with MIDI messages by turning knobs and pressing buttons 😉
- More infos about the MIDI_Monitor are contained in the DART_EDITOR guide.
Content of a MIDI message
Let’s see what information contains a MIDI message in some of the most common cases:
In the example of pressing a key on a digital piano,
a MIDI message, composed of three numbers, is transmitted as three bytes:
- Status byte – it tells us that a NOTE is played or stopped and on which channel (16 channels are available).
- Data byte1 – it tells us what the pitch of the note is.
- Data byte2 – it tells us what intensity (velocity) the note has.
In the example of rotating of a knob on a midi controller,
many MIDI messages will be emitted one after the other for every slight movement of the knob. Each of these messages is composed of three numbers, transmitted as three bytes:
- Status byte – it tells us that a CC (Control Change message) has been emitted and on which channel (1-16).
- Data byte1 – it tells us what the number of CC is.
- Data byte2 – it tells us what position (from 0 to 127) the knob has.
the content of a MIDI message can vary greatly according to the use of different types of control (a pitch bend wheel, a dj jog wheel, a percussive pad and so on).
STATUS BYTE table
During the experience of self-constructing MIDI devices it may be useful to know the numerical range relative to the Status Byte of the most important types of MIDI messages. Here is a handy summary table:
|MIDI message||Status byte|
|Note||144 – 159|
|Poly AT||160 – 175|
|Control Change||176 – 191|
|Program Change||192 – 207|
|AT||208 – 223|
|Pitch Bend||224 – 239|
This guide is just an attempt to make MIDI messages easy to understand and it’s enough to just start playing with the DART framwork, but for a very deep knowledge about MIDI protocol, we suggets to read a detailed manual 🙂