我已经在我的代码中设置了一个midi输入端口,并附加了一个回调来读取收到的midi数据。这一切都运行得很好。我正在读取Midi时间码,并在我的回调中解析它。我注意到的是,根据我启动应用程序的时间,我可能会比传输MTC的设备延迟1秒。有时它是一个框架在后面。无论如何,这是不一致和令人沮丧的。我没有在我的readProc中做任何阻塞或Obj-C调用。我甚至不厌其烦地在运行我的应用程序后断开了我的usb设备,看看是否有任何奇怪的IOKit东西在发生。我真的需要一些帮助,甚至是狂热的理论?我觉得好像Midi TimeStamps是无用的,因为没有客观的参考来比较它们。
发布于 2012-07-03 11:16:16
我假设你知道你在这里做什么,意思是实际的MIDI时间码,而不是MIDI时钟,这是两种同步方法中更常见的一种。无论如何,MIDI很慢,您需要向客户端提供一个偏移量(可能以毫秒为单位),以便它可以做出相应的反应。例如,看看Ableton Live是如何做到的:

我意识到上面的截图是针对MIDI时钟的,但同样的情况也应该适用于MTC。您可能需要提供某种类型的UI来确定偏移量,因为您已经发现,延迟会根据运行时条件的不同而变化。
https://stackoverflow.com/questions/11254456
复制相似问题