将动画与 MIDI 数据同步

Synchronising animation with midi data

我正在开发一个生成动画的小程序,并且在大多数情况下,它都按预期工作。我遇到问题的唯一地方是 midi 开始的持续时间非常短,然后我的动画极度不同步。

我的流程的基本概要是这样的:

  1. 找出当前开始与随后的开始之间的差异(以秒为单位)。

  2. 为当前起始点生成n帧,其中n为圆形(差值*帧率)

但是当太多的小持续时间一起播放时,它后面的整个动画就会不同步,因为所有最小时间延迟导致步骤 2 中的舍入 n 总结。

有没有更好的方法来解决这个问题,无论起始的变化如何,我的动画都会同步?

在第1步中,差异是根据未舍入的时间计算的。但是你必须使用当前开始变得可见时的实际时间。这是所有先前 n 的总和除以帧速率。