2017-03-09 88 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

現在我看到。我對這些字節感到困惑。因此,如果通道消息與前一個狀態相同,則會寫入狀態字節。謝謝! –