题
我想知道如何将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以每季度(一个周期)为代表。
不隶属于 StackOverflow