【发布时间】:2018-08-26 01:57:35
【问题描述】:
我正在使用 Scala 开发一个音乐应用程序,用于实时生成 MIDI 序列。 MIDI 消息被发送到另一个应用程序(Ableton DAW),甚至可能是外部硬件。对于这个用例来说,准确的计时非常重要,否则生成的音乐会听起来很不合时宜。
我尝试使用java.util.Timer 来安排不同序列的注释,但显然该计时器可能会漂移数百毫秒。
在 Scala(或 Java)中使用的最准确的 Timer 是什么?这甚至是尝试在 JVM 上完成的合理任务吗?或者,也许我做错了?
【问题讨论】:
-
实际的 MIDI 合成不是由下游音序器处理的吗?将其解读为:在特定时间发送单独的“指令”听起来并不有趣,而发送具有逻辑时序的流(并让“其他东西”,例如本机操作系统驱动程序)处理到硬件的转换是完全可行的,但这不需要严格的“定时器”使用..
-
我认为你是对的。我目前发送的是单独的 MIDI 消息(即:Note On、Note Off)并希望我的 DAW 立即播放它们。我可能需要重新考虑我的方法。
标签: java scala timer midi ableton-live