0
我需要在播放之前獲取midi文件的信息,但我需要使用文件bpm的替代bpms來執行此操作。java沒有音序器如何改變midi文件的速度?
那麼有沒有辦法設置midi文件的bpm並因此影響相應的時間事件?
我需要在播放之前獲取midi文件的信息,但我需要使用文件bpm的替代bpms來執行此操作。java沒有音序器如何改變midi文件的速度?
那麼有沒有辦法設置midi文件的bpm並因此影響相應的時間事件?
您可以使用此庫讀取MIDI文件,然後過濾出Tempo事件並應用您自己的需要。這聽起來像是你對每個事件的實時感興趣(而不是他們的MIDI tick),所以你仍然必須自己計算。 (但我相信你這麼做了,反正,因爲MIDI文件不跟蹤真實發生的時間。)
嘛,問題是我不知道的公式來制定出新基於新節奏值的時間戳。任何人都有一個公式呢? – JavaTime 2012-02-05 11:22:15
此鏈接有公式:http://stackoverflow.com/questions/2038313/midi-ticks-to-actual-playback-seconds-midi-music但是,如果MIDI文件有多個速度變化,則計算變得更加困難實時。有幾種策略可以這樣做,但基本上你必須記錄每段不斷節奏的時間間隔,並從你感興趣的記錄中倒退。不是微不足道的。 – LeffelMania 2012-02-05 21:12:51
是的,我認爲它會涉及很多工作,但此刻並不重要,我可能不會處理目前有很多速度變化的MIDI文件。感謝您的鏈接,我如何找出ppq值? – JavaTime 2012-02-05 21:18:09