3

MIDIファイル形式で作業していますが、ファイルで問題が発生しました。

これが、チャンネルイベントが表示されるMIDIサンプルファイルの内容です。

[ "00"、 "b1"、 "64"、 "00"、 "00"、 "65"、 "00"、 "00"、 "06"、 "0c"、 "00"、 "e1"、 " 00 "、" 40 "、" 00 "、" b1 "]

これはRPNイベント(私がハイライトした部分)だと思います。

しかし、私はこのRPNをデコードすることができませんでした。コントローラ64の後に2バイトと65が続く理由。
デコードするバイトが1バイトか2バイトかを知る方法は?

このリソースを見つけましたが、答えが見つかりません:http:
//www.sonicspot.com/guide/midifiles.html
http://www.somascape.org/midi/tech/spec.html#rpns

編集:
同じmidiファイルの後半:
["00"、 "b1"、 "65"、 "00"、 "00"、 "64"、 "01"、 "00"、 "06"、 "40"、 「00」、「26」、「00」、「00」、「65」、「7f」、「00」、「64」、「7f」、「00」、「b0」、「64」、「00」 "、" 00 "、" 65 "、" 00 "]

4

1 に答える 1

2

64 00との後の2番目のゼロ値65 00は、次のメッセージのデルタ時間です。すべてのメッセージには、その前にデルタ時間があります。最初のサンプルを解釈する方法は次のとおりです。

time  status  data
 00     B1     64 00
 00            65 00 (running status B1)
 00            06 0C (running status B1)
 00     E1     00 40
 00     B1

2番目のサンプルを解釈する方法は次のとおりです。

time  status  data
 00     B1     65 00
 00            64 01 (running status B1)
 00            06 40 (running status B1)
 00            26 00 (running status B1)
 00            65 7F (running status B1)
 00            64 7F (running status B1)
 00     B0     64 00
 00            65 00 (running status B0)
于 2012-10-04T18:13:31.473 に答える