我的目標是從標準MIDI文件中檢索精確的音符開/關時序。 該文件是類型1(它有幾個軌道)和定時模式是每季度滴答。將MIDI-deltatimes轉換爲秒
我的方法:
我搜索setTempo事件在每個軌道,並把它們全部放入一個列表。我還在我的列表中存儲後續setTempo事件之間的滴答數量。
然後我將每個事件的所有deltaTime加起來,並獲得相對於每個事件的零點滴答的絕對滴答數。
最後我計算時間以秒爲蜱的絕對數量和包含拍子
那是從一個MIDI文件獲得音符的聲母一個正確的方法,或做名單我也必須考慮時間簽名? - setTempo事件的數據是微秒/四分之一還是微秒/節拍?
另一個問題: 假設我有一個文件有兩個軌道。跟蹤二隻在文件的最後有一個事件,可以說deltatime = 1000。跟蹤一個有兩個setTempo事件,一個deltatime = 0,另一個deltatime = 500。
哪個節奏用於等待第二軌中的1000個節拍 - 第一個節奏,第二個還是兩個?