c语言怎么解析midi文件,c – 无法读取midi文件? [扩展规格?]
我正在嘗試用C語言讀取midi文件而且我遇到了一個錯誤,這個錯誤似乎是標準midi規范中未定義的事件(從許多站點檢索到包括此:
http://www.sonicspot.com/guide/midifiles.html)
我在HEX編輯器中打開了midi并確定了錯誤.它發生在第一個“注意事件”事件之前.該文件是使用Sibelius 6軟件生成的,我想知道如果我在這里發布文件部分,有人會幫我解決這個問題.
這是第三首曲目的開頭:
4D 54 72 6B (MTrk magic number)
00 00 1F F5 (track size in bytes - 8181)
00 FF 03 04 (4 bytes follows) (track sequence name)
00 FF 04 0B (11 bytes follows) (instrument name)
00 C0 34 (program change event)
00 B0 79 00 (controller event)
00 5B
它不能是delta刻度,因為第一個值是00(沒有MSB設置為1),它也不是可識別的事件. 10個字節后我識別出“note on”事件
它會:
00 5B 30 00 40 00 00 07 64 00 0A 10 00 90 3E 47< - 注意 我不知道“note on”之前的那12個字節代表什么,因此無法讀取文件.我知道第一個音符很長很可能是因為這個原因.我也注意到我找不到代表“酒吧”停頓的事件.也許那是條形長度的代碼?我應該把它們看作蜱嗎?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的c语言怎么解析midi文件,c – 无法读取midi文件? [扩展规格?]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言 10以内加法,求助 给小学生出题
- 下一篇: Android控件扫光动画,完美起航-A