我想知道如何将 MIDI 节拍转换为实际播放秒数。
例如,如果 MIDI PPQ(每四分音符的脉冲数)为 1120,我如何将其转换为真实世界的播放秒数?
公式是60000 / (BPM * PPQ)
(毫秒)。
其中 BPM 是曲目的速度(每分钟节拍)。
(即 120 BPM 音轨(60000 / (120 * 192))
对于 1 个滴答声的 MIDI 时间为 2.604 毫秒。
如果您不知道 BPM,那么您必须先确定它。MIDI 时间完全取决于轨道速度。
您需要两条信息:
刻度可以转换为播放秒数,如下所示:
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 以每四分之一微秒(一个周期)表示。