我正在用C#和.NET 4.x编写一个简单的MIDI应用程序,供我自己使用。
我假设商业DAWs (在Windows平台上)使用Windows多媒体定时器来计时MIDI数据的回放时间。但我无法证实这一点,因为商业资料是封闭来源的。
我希望有人在这方面有知识,并能告诉我是否我的假设是正确的。或者,这些DAWs是否使用了我不知道的计时器?我想确保没有任何更合适的东西是我忽略的。
发布于 2021-04-16 00:56:38
虽然我没有专门为商业DAW项目编写代码的特权,但我确实有为事件的准确时机(包括MIDI处理/路由)进行编码的经验。
你的假设是正确的。编码良好的MIDI排序器使用Windows多媒体定时器来调度MIDI消息的发送到MIDI设备。
微软的多媒体计时器参考实际上是提及 MIDI测序,举个例子:
这些计时器服务对于需要高分辨率定时的应用程序非常有用。例如,MIDI排序器需要一个高分辨率的定时器,因为它必须将MIDI事件的速度保持在1毫秒的分辨率内。
如何使用定时器是另一个主题,我将不谈这个问题。但我想指出几点:
timeBeginPeriod之前,您仍然应该调用timeBeginPeriod来确认。https://stackoverflow.com/questions/67030753
复制相似问题