2017-03-09 89 views
0

我一直在研究Midi文件一段时间,并且卡住了某种状态字节的东西。根据标准的Midi文件格式,没有这样的事情。那么,有人可以告诉这3个字节的信息是什么“00 a040”。我知道“”是字节代表增量时间,0xa0应该是状态字节,如果我只是理解正确。位于第18行的最后3个字节是我目前不了解的唯一部分。在这3个字节之后,接着是由“00 ff01”引导的文本元事件字节。Midi文件中无法识别的状态字节

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 

回答

2

SMF specification说:

运行状态用于:如果前一事件是一个MIDI通道MIDI信道的消息的状态字节,可以省略消息具有相同的状态。

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

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

+0

现在我看到。我对这些字节感到困惑。因此,如果通道消息与前一个状态相同,则会写入状态字节。谢谢! –