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
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..."
我处理 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
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..."