MIDIファイルに読み込む関数を書き込もうとしています。私は仕様を提供する多くのサイトを参照してきましたが、ほとんどはこれです:http: //www.sonicspot.com/guide/midifiles.html
ダウンロードしたスーパーマリオブラザーズのテーマのMIDIファイルでテストしていて、予期しないデータが表示されます。ファイルのフォーマットが間違っている可能性がありますが、私が何か間違ったことをしている可能性が高いと思います。これが私が問題を抱えている(16進エディタからの)データと私がそれについて知っていると思うことです:
4D 54 72 6B 00 00 00 19 00 FF 51 03 05 7B 71 00 FF 58
|---------| |---------| || || || |------| || ||
MTrk Chunk size || || || Tempo || ||
(25 bytes) || || ||(ms per || ||
\/ || ||1/4 note) || ||
VLen value || || \/ ||
(Event at time 0)|| || VLen value ||
\/ || (event at ||
Beginning of || time 113) ||
meta-event || ||
\/ \/
Meta-event type: ????
set tempo
ご覧のとおり、前のすべて0x00
が正しい場合、そこで何をしているのでしょうか。以前のVLen値はのバイナリ値を持っている01110001
ため、VLen値の別の部分を予期していないため、AFAIKはイベントタイプである必要があります。ただし、に関連付けられたイベントタイプはありません0x0
。誰かが私がどこで間違っているのか見ることができますか?