一个文件中的 Midi 十六进制代码表示法不同

Midi Hexa-Code Notation Different in one fie

我在 Midi 文件中有这 3 个事件:

00 FF 51 03 0E 15 C3 86 A6

20 FF 51 03 15 20 A5 83

5C FF 51 03 0E 15 C3

但在这种情况下,重要的是,FF 51 代表速度变化,03 代表描述速度的后续字节对的数量。因为每个事件都是“3 字节对” 为什么有 5 个字节对描述第一个事件,4 个字节对描述第二个,3 个字节对描述第三个? (希望图片对您有所帮助)

编码程序如何知道新事件何时开始?文件可以正常播放。

所有三个事件都有三个数据字节。

事件之间的增量时间被编码为可变长度量,因此您必须继续读取字节,直到最高有效位被清除。每个事件之前的三个时间是 0086 A6 2083 5C,导致解码的增量时间为 0、109344 和 476。