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

Midi文件中无法识别的状态字节,midi,smf,Midi,Smf,我研究Midi文件已经有一段时间了,我一直在做一些状态字节之类的事情。根据标准的Midi文件格式,没有这样的东西。那么,有人能说出这3个字节的信息是什么吗“00A040”。我知道“00”是表示增量时间的字节,0xa0应该是状态字节,只要我理解正确。第18行的最后3个字节是到目前为止我唯一不理解的部分。在这3个字节之后,是以“00ff01”开头的文本元事件字节 Midi文件第18至19行: ff 51 03 09 cc 90 00 c0 00 00 b0 07 64 00 0a 40 00 f

我研究Midi文件已经有一段时间了,我一直在做一些状态字节之类的事情。根据标准的Midi文件格式,没有这样的东西。那么,有人能说出这3个字节的信息是什么吗“00A040”。我知道“00”是表示增量时间的字节,0xa0应该是状态字节,只要我理解正确。第18行的最后3个字节是到目前为止我唯一不理解的部分。在这3个字节之后,是以“00ff01”开头的文本元事件字节

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 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 报告说:

使用运行状态:如果前面的事件是具有相同状态的MIDI通道消息,则可以省略MIDI通道消息的状态字节

因此,这些字节可以按如下方式解码:

ff 51 03 09 cc 90
:元事件:设定节拍,9CC90h=642192µs/季度音符
00
:增量时间
C000
:在频道0上设置节目0(钢琴)
00
:增量时间
B007 64
:将控制器7(卷)设置为值100
00
:增量时间
0a 40
:运行状态(重复B0h);将控制器10(表达式)设置为值64
00
:增量时间
ff 01 20…
:元事件:文本:“bdca426d104a…”

表示:

使用运行状态:如果前面的事件是具有相同状态的MIDI通道消息,则可以省略MIDI通道消息的状态字节

因此,这些字节可以按如下方式解码:

ff 51 03 09 cc 90
:元事件:设定节拍,9CC90h=642192µs/季度音符
00
:增量时间
C000
:在频道0上设置节目0(钢琴)
00
:增量时间
B007 64
:将控制器7(卷)设置为值100
00
:增量时间
0a 40
:运行状态(重复B0h);将控制器10(表达式)设置为值64
00
:增量时间

ff 01 20…
:元事件:文本:“bdca426d104a…”

现在我明白了。我对那些字节感到很困惑。因此,如果通道消息的状态与前一个相同,则写入时将不带状态字节。谢谢现在我明白了。我对那些字节感到很困惑。因此,如果通道消息的状态与前一个相同,则写入时将不带状态字节。谢谢