2017-03-09 20 views
0

私はしばらくの間、Midiファイルを処理していました。何らかのステータスバイトを使用しました。標準のMidiファイル形式によれば、このようなことはありません。だから、誰かがこの3バイト情報 "00 a040"であることを伝えることができますか?私は ""はデルタ時間を表し、0xa0はステータスバイトでなければならないことを知っています。 18行目にある最後の3バイトは私がこれまで理解できなかった唯一の部分です。これらの3バイトの後、 "00 ff01"で始まるテキストメタイベントバイトが来ます。 19へMidiファイルの認識されないステータスバイト

ミディファイルの行18:

 
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(ピアノ)デルタ時間
b0 07 64
00チャネル0に設定されたコントローラ7(volumn)の値に100
00:デルタタイム
  0a 40:実行中ステータス(リピートB0h)。 64
00を値に設定するコントローラ10(式):デルタ時間
ff 01 20 ...:メタイベント:テキスト: "bdca426d104a ..."

+0

は、今私は参照してください。私はそのようなバイトで混乱しました。したがって、以前の状態と同じ状態のチャネルメッセージがステータスバイトなしで書き込まれるとします。ありがとう! –

関連する問題