MIDIティックを実際の再生秒数に変換する方法を知りたいです。
たとえば、MIDI PPQ(クォーターノートあたりのパルス数)が1120の場合、実際の再生秒数に変換するにはどうすればよいですか?
MIDIティックを実際の再生秒数に変換する方法を知りたいです。
たとえば、MIDI PPQ(クォーターノートあたりのパルス数)が1120の場合、実際の再生秒数に変換するにはどうすればよいですか?
式は60000 / (BPM * PPQ)
(ミリ秒)です。
ここで、BPMはトラックのテンポ(Beats Per Minute)です。
(つまり、120 BPMトラックのMIDI時間は(60000 / (120 * 192))
、1ティックで2.604ミリ秒です。
BPMがわからない場合は、最初にそれを決定する必要があります。MIDI時間は、トラックのテンポに完全に依存します。
2つの情報が必要です。
ティックは、次のように再生秒数に変換できます。
ticks_per_quarter = <PPQ from the header>
µs_per_quarter = <Tempo in latest Set Tempo event>
µs_per_tick = µs_per_quarter / ticks_per_quarter
seconds_per_tick = µs_per_tick / 1.000.000
seconds = ticks * seconds_per_tick
上記のリンク先のドキュメントでは、PPQは「除算」または「クォーターノートごとのティック」とも呼ばれることに注意してください。
テンポは通常BPM(周波数)で表されますが、生のMIDIは四半期あたりのマイクロ秒(周期)で表されることに注意してください。