質問
MIDIのティックを実際の再生秒に変換する方法を知りたいです。
たとえば、MIDI PPQ(四半期あたりのパルス)が1120の場合、実際の再生秒にどのように変換しますか?
解決
式はです 60000 / (BPM * PPQ)
(ミリ秒)。
ここで、BPMはトラックのテンポです(1分あたりのビート)。
(つまり、120 bpmトラックにはMIDI時間があります (60000 / (120 * 192))
または1ティックで2.604 ms。
BPMがわからない場合は、最初にそれを決定する必要があります。 MIDIタイムは、トラックテンポに完全に依存しています。
他のヒント
2つの情報が必要です。
- ppq (四半期あたりのパルス)。これは、MIDIファイルのヘッダーで1回定義されています。
- テンポ (四半期あたりのマイクロ秒秒)、それによって定義されます 「セットテンポ」メタイベント 音楽の間に変わる可能性があります。
次のように、ティックは再生数に変換できます。
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(周波数)で表されますが、RAW MIDIは四半期あたりµs(期間)で表すことに注意してください。
所属していません StackOverflow