The MIDI protocol consists of MIDI events that carry four types of messages: 1) voice messages; 2) system common messages; 3) system realtime messages; and 4) meta messages.
While MIDI voice messages are specific to a MIDI channel, system common and system realtime 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 realtime" messages. The rest are "system common messages".
MIDI system realtime 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 realtime 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 realtime 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 realtime 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 realtime 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