Midi 文件中无法识别的状态字节

Unrecognized status byte in Midi file

我处理 Midi 文件已经有一段时间了,但我坚持使用某种状态字节。根据标准的 Midi 文件格式,没有这样的东西。那么,有人能说出这 3 个字节的信息“00 a040”是什么吗?我知道“00”是代表增量时间的字节,0xa0 应该是状态字节,如果我理解正确的话。位于第 18 行的最后 3 个字节是目前我唯一不理解的部分。在这 3 个字节之后,是文本元事件字节,由“00 ff01”开头。

Midi 文件第 18 行到第 19 行:

ff 51 03 09 cc 90 00 c0 00 00 b0 07 64 00 0a 40  
00 ff 01 20 62 64 63 61 34 32 36 64 31 30 34 61

SMF specification 说:

Running status is used: status bytes of MIDI channel messages may be omitted if the preceding event is a MIDI channel message with the same status.

所以这些字节可以解码如下:

ff 51 03 09 cc 90:元事件:设置速度,9CC90h = 642192 微秒每四分音符
00:增量时间
c0 00: 在通道 0
上设置程序 0(钢琴) 00:增量时间
b0 07 64:将控制器 7(音量)设置为值 100
00:增量时间
  0a 40: 运行状态(重复B0h);将控制器 10(表达式)设置为值 64
00:增量时间
ff 01 20 ...:元事件:文本:"bdca426d104a..."