The MIDI protocol consists of MIDI events that carry four types of messages: 1) voice messages; 2) system common messages; 3) system real-time messages; and 4) meta messages.
While MIDI voice messages are specific to a MIDI channel, system common and system real-time messages are not specific to a channel and thus all MIDI devices on the MIDI system should respond to such messages. Thus, these messages are "system" messages. Some of these system messages provide require response in real time and are called "system real-time" messages. The rest are "system common messages".
MIDI system real-time messages are messages that are not specific to a MIDI channel but prompt all devices on the MIDI system to respond and to do so in real time.
The following messages are MIDI system real-time messages.
Message | MIDI device action |
MIDI clock | Understand the position of the MIDI clock when synchronized to another device |
Start | Start playback of the current MIDI sequence |
Continue | Resume playback of the current MIDI sequence |
Stop | Stop playback of the current MIDI sequence |
Active sense | Understand that a MIDI connection exists (when there are no other MIDI messages) |
Reset | Reset to default state |
A MIDI system real-time message – usually the MIDI clock message – can be placed in the middle of another message without affecting this other message or changing the MIDI running status. The real-time message can be recognized and handled appropriately, because its status byte has a topmost bit equal to 1, whereas the bytes of MIDI message data after the status byte have topmost bytes equal to 0, and because the length of system real-time messages is known.
Comments
Older comments
admin: First posted on 2017 01 11
mkazem, 2017 01 11: can system realtime messages be really stored in midi file? or are they just sent by user request
mic, 2017 01 12: I have not seen anything that explicitly states whether these can be in MIDI files (the Reset message cannot - the same status byte is used for meta messages). But putting these in presents a logistical nightmare. For example, if a sequence reaches a Stop message, are the remaining messages reachable?
Add new comment