Bra*_*rad 12
信不信由你,没有一些MIDI消息说"当前速度是120BPM".这种消息无论如何都不会非常有用,因为在大多数情况下,了解当前速度的原因是同步设备,是吗?你要做的是根据MIDI时钟信息的时间计算当前的速度.
MIDI时钟同步消息是由单个字节(或二进制)组成的系统实时消息.它们每四分音符从MIDI时钟源发送24次.0xFA1111 1000
如果你的BPM是120,那么每分钟你会看到2,880条消息,或者每秒48条消息.这意味着每个时钟消息将相隔20.8333毫秒.
1000 / ((BPM * 24) / 60) = MS_BETWEEN_MESSAGES
要从MIDI时钟计算BPM,您需要知道每个时钟消息之间的时间.一旦你知道了,这个公式也会倒退.假设我们知道我们的消息相差大约17.86毫秒:
(1000 / 17.86 / 24) * 60 = 139.978 BPM
现在,这里有一个很大的问题,实际上,你不会知道这些消息之间的确切时间.您将关闭的金额因系统而异,程序与程序不同,但会关闭.即使在完美的世界中,也有时间通过线路发送一个字节.我过去所做的是获取最后几条消息的平均时间.这导致更稳定的BPM测量,但并非没有结果.当BPM快速变化时,我们对它的测量将落后.你如何处理这取决于你的需求.
您现在要做的就是配置Ableton Live发送MIDI时钟信息.要执行此操作,请转到"首选项","MIDI",然后为所需的MIDI接口启用"同步".
| 归档时间: |
|
| 查看次数: |
3509 次 |
| 最近记录: |