Próbuję zapisać niektóre funkcje do odczytu w pliku MIDI. Mam na myśli wiele witryn, które podają specyfikację, ale głównie ten: http://www.sonicspot.com/guide/midifiles.htmlOdczytywanie pliku MIDI (C): 0x00 pojawiające się po końcu wartości zmiennej var
Testowałem to na pliku MIDI dla motywu Super Mario Bros, który pobrałem, i dostaję trochę nieoczekiwane dane. Być może plik jest źle sformatowany, ale wydaje mi się, że jest bardziej prawdopodobne, że robię coś nie tak. Oto dane (z edytora HEX), że mam problemy z, i co myślę Wiem o tym:
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
Jak widać, czy wszystko przed 0x00
jest poprawna, a następnie co on tam robi? Wartość VLen wcześniej ma wartość binarną wynoszącą 01110001
i dlatego nie oczekuje innej części wartości VLen, a zatem AFAIK, powinien być typem zdarzenia o numerze. Jednak nie ma typu zdarzenia związanego z 0x0
. Czy ktoś może zobaczyć, gdzie idę źle?