MIDI 파일을 읽는 일부 기능을 작성하려고합니다. 나는이 스펙을 제공하는 많은 사이트를 언급 해왔다. 그러나 대부분이 하나이다. http://www.sonicspot.com/guide/midifiles.htmlMIDI 파일 읽기 (C) : var-length 값 끝 부분에 0x00이 표시됩니다.
내가 다운로드 한 Super Mario Bros 테마의 MIDI 파일에서 테스트를 해왔다. 예기치 않은 데이터. 파일의 형식이 잘못 지정된 것일 수 있지만, 내가 잘못한 것 같아요. 다음,
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
전에 모든 것이 정확한지 : 여기에 문제가있어 (16 진수 편집기)에서 데이터입니다, 나는 생각 내가 그것에 대해 알고 거기서 뭐하고 있니? 이전 VLen 값은 이진 값이 01110001
이므로 VLen 값의 다른 부분을 기대하지 않으므로 AFAIK, 은이 이벤트 유형이어야합니다. 그러나 0x0
과 연결된 이벤트 유형은 없습니다. 아무도 내가 잘못 가고있는 것을 볼 수 있습니까?