20

MIDIティックを実際の再生秒数に変換する方法を知りたいです。

たとえば、MIDI PPQ(クォーターノートあたりのパルス数)が1120の場合、実際の再生秒数に変換するにはどうすればよいですか?

4

2 に答える 2

27

式は60000 / (BPM * PPQ)(ミリ秒)です。

ここで、BPMはトラックのテンポ(Beats Per Minute)です。

(つまり、120 BPMトラックのMIDI時間は(60000 / (120 * 192))、1ティックで2.604ミリ秒です。

BPMがわからない場合は、最初にそれを決定する必要があります。MIDI時間は、トラックのテンポに完全に依存します。

于 2010-01-10T19:56:41.050 に答える
16

2つの情報が必要です。

  • MIDIファイルのヘッダーで1回定義されるPPQ (クォーターノートあたりのパルス数)。
  • テンポ(四分音符あたりのマイクロ秒単位)。「テンポの設定」メタイベントによって定義され、曲の途中で変更される可能性があります。

ティックは、次のように再生秒数に変換できます。

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は四半期あたりのマイクロ秒(周期)で表されることに注意してください。

于 2019-02-18T20:01:46.783 に答える