What is the 0x43 MIDI event?

跟風遠走 提交于 2019-12-19 10:52:57

问题


I'm trying to write a MIDI parser, but I'm reaching a MIDI event that isn't documented in the official documentation (namely http://www.midi.org/techspecs/midimessages.php).

In one of the MIDI files that I have, I notice that immediately after a note-on event of 81 70 90 3c 00, I get the following bytes: 00 43 1e. However, I have not seen any documentation about 0x43 acting as a MIDI event identifier. How should I interpret 0x43, and where can I find more information about that?

Edit: The MIDI is interpretable, because I've loaded it up into Logic Pro without issues. Additionally, my interpretation up to the 0x43 has been accurate.


回答1:


81 70 90 3c 00 00 43 1e

81 70: delta time (240 ticks)
90 3c 00: Note-On message (actually note off)
00: delta time
43 1e: Note-On message, using running status.

The MIDI Specification says:

RUNNING STATUS

For Voice and Mode messages only. When a Status byte is received and processed, the receiver will remain in that status until a different Status byte is received. Therefore, if the same Status byte would be repeated, it can optionally be omitted so that only the Data bytes need to be sent. Thus, with Running Status, a complete message can consist of only Data bytes.

Running Status is especially helpful when sending long strings of Note On/Off messages, where "Note On with Velocity of 0" is used for Note Off.

Status bytes always have the most significant bit set (80–FF), while Data bytes always have it clear (00–7F). Therefore, it is always possible to distinguish between them.



来源:https://stackoverflow.com/questions/32651942/what-is-the-0x43-midi-event

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!