我正在尝试编写一个 MIDI 解析器,但我遇到了官方文档中未记录的 MIDI 事件(即http://www.midi.org/techspecs/midimessages.php http://www.midi.org/techspecs/midimessages.php).
在我拥有的一个 MIDI 文件中,我注意到在音符事件之后立即81 70 90 3c 00
,我得到以下字节:00 43 1e
。但是,我还没有看到任何有关的文档0x43
充当 MIDI 事件标识符。我该如何解读0x43
,我在哪里可以找到更多相关信息?
编辑:MIDI 是可以解释的,因为我已经将它加载到 Logic Pro 中,没有出现任何问题。另外,我的解释是0x43
已经准确。
81 70 90 3c 00 00 43 1e
81 70
:增量时间(240 个刻度)
90 3c 00
:Note-On 消息(实际上是 Note Off)
00
: 增量时间
43 1e
:注意消息,使用运行状态。
MIDI 规范指出:
运行状态
仅适用于语音和模式消息。当接收并处理状态字节时,接收器将保持该状态,直到接收到不同的状态字节。因此,如果重复相同的状态字节,则可以选择将其省略,以便仅需要发送数据字节。因此,对于运行状态,完整的消息可以仅包含数据字节。
当发送长串音符开/关消息时,运行状态特别有用,其中“音符开,力度为 0”用于音符关。
状态字节始终设置最高有效位 (80–FF),而数据字节始终将其清除 (00–7F)。因此,总是可以区分它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)