我想知道如何将MIDI tick转换为实际的播放秒。

例如,如果MIDI PPQ(每季度脉冲音符)为1120,我将如何将其转换为现实世界播放秒?

有帮助吗?

解决方案

公式是 60000 / (BPM * PPQ) (毫秒)。

bpm是赛道的节奏(每分钟节拍)。

(即120 bpm轨道的MIDI时间为 (60000 / (120 * 192)) 或2.604毫秒1个滴答。

如果您不知道BPM,则必须先确定。中间时间完全取决于轨道节奏。

其他提示

您需要两个信息:

  • ppq (每季度脉冲每季度),在MIDI文件的标题中定义一次。
  • 速度 (以每季度的微秒为单位),这是由 “ SET TEMPO”元活动 并可以在音乐作品期间改变。

tick可以转换为播放秒,如下所示:

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以每季度(一个周期)为代表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top