繁体   English   中英

MIDI 文件中的未知事件

[英]Unknown event in MIDI file

正如我之前发布的那样,我正在用 Python 编写一个 MIDI 解析器。 我遇到了一个错误,我的解析器卡住了,因为它试图读取一个名为2a的事件,但这样的事件不存在。 以下是有关 MIDI 文件的摘录:

5d7f 00b5 5d7f 00b6 5d7f 00b1 5d00 00b9
5d00 8356 9923 7f00 2a44 0192 367f 0091
237f 0099 4640 0092 2f7c 0099 3f53 0b3f

我已经手动解析了文件,但我和解析器卡在了同一个地方! MIDI 文件播放,所以我知道它是有效的,但我确定我读错了事件。

标准 MIDI 文件 1.0 规范说:

使用运行状态:如果前面的事件是具有相同状态的 MIDI 通道消息,则可以省略 MIDI 通道消息的状态字节。 每个 MTrk 块中的第一个事件必须指定状态。 Delta-time 本身被视为事件:它是 MTrk 事件语法的组成部分。 请注意,运行状态增量时间发生。

您的摘录将被解码如下:

delta  <- event ------->
time   status parameters
-----  ------ ----------
          ... 5d 7f
00      b5    5d 7f
00      b6    5d 7f
00      b1    5d 00
00      b9    5d 00
83 56   99    23 7f
00            2a 44
01      92    36 7f
00      91    23 7f
00      99    46 40
00      92    2f 7c
00      99    3f 53
0b            3f ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM