के अंत के बाद दिखाई दे रहा है मैं MIDI फ़ाइल में पढ़ने के लिए कुछ फ़ंक्शन लिखने की कोशिश कर रहा हूं। मैं कई साइटों का जिक्र कर रहा हूं जो विनिर्देश देते हैं, लेकिन अधिकांशतः यह एक: http://www.sonicspot.com/guide/midifiles.htmlपढ़ना MIDI फ़ाइल (सी): 0x00 एक var-length मान
मैं इसे डाउनलोड करने वाले सुपर मारियो ब्रॉस थीम के लिए 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
से पहले सब कुछ सही है, तो यह वहाँ क्या कर रहा है? वीएलएन मान से पहले 01110001
का बाइनरी मान है और इसलिए वीएलएन मान का एक और हिस्सा अपेक्षित नहीं है, और इसलिए, AFAIK, एक ईवेंट प्रकार होना चाहिए। हालांकि 0x0
से जुड़े कोई ईवेंट प्रकार नहीं है। क्या कोई देख सकता है कि मैं कहां गलत हो रहा हूं?