Delphi ASIO VST 和 MiniHost 的 Midi 时序问题

Posted

技术标签:

【中文标题】Delphi ASIO VST 和 MiniHost 的 Midi 时序问题【英文标题】:Midi Timing Issues with Delphi ASIO VST and MiniHost 【发布时间】:2012-11-12 22:08:21 【问题描述】:

我来自使用 MSC* MidiSequencer 进行 Delphi XE2 项目的背景,并且本周末一直在玩 DelphiASIOVST,因为 MIDI 可能足够稳定,可以用作我的核心 MIDI 引擎,同时还允许我支持VST插件。我将 D16 主干从 SVN 上拉下来,经过一些路径调整后毫不费力地编译。

我了解我所看到的很多内容,但我想知道其他人是否在 MiniHost 示例应用程序中遇到过 MIDI 文件播放问题。特别是在单轨旋律演奏中,听起来好像音符被跳过和/或播放得比其他正在播放的音符稍晚一些。基本上,如果一个音符被弹奏,它只是命中或未命中。

我的机器上有许多专业音序器,MIDI 文件在那里很好。他们还支持 VST,几乎没有问题。我也知道 MIDI 最低级别的文件格式,并且知道文件结构是合理的。

TMidiFile 可以直接播放到计算机中的标准 MIDI 合成器吗?我试图通过直接连接到内置合成器来排除 VST 问题。除此之外,是否有人看到这些问题或知道使用组件集将 MIDI 文件转换为 VST 的更多/更好的示例?

【问题讨论】:

只是为了问一下,您是否尝试在其设置中增加VST的缓冲区大小以查看播放问题是否消失? 【参考方案1】:

我将 FL 工作室与我的 Midi 一起使用,并且很有可能您需要降低缓冲质量,以便几乎没有延迟。 它可能默认设置为大约中高范围,这意味着您几乎可以肯定会有 1 - 1.5 秒的延迟

不要把它调得太低,否则你会听到垃圾桶的声音,一切听起来都是空洞和机械的,但在调整设置时要不断敲击按键

【讨论】:

【参考方案2】:

字时钟是否正常工作?你有能力驱动另一个 MIDI 时钟源,只是为了测试?

虽然你说:“我的机器上有很多专业音序器,而且 MIDI 文件在那里很好”,你也可以尝试http://www.reaper.fm(适用于 Linux/BSD、Mac 和 Win)DAW 并将 MIDI 直接导入那,然后将您的默认 MIDI 设备设置为您想要测试的设备。

【讨论】:

【参考方案3】:
    检查 Midi 溢出设置。 确保您的每台 Midi 设备都有唯一的 ID。 获取 midi 吞吐量应用程序,例如 Midi-ox http://www.midiox.com/ 以查看实时消息和数据。看看事情的进展。

【讨论】:

【参考方案4】:

根据我们的要求进行设置时需要进行 Midi 工作流程检查。 使用您的 midi 溢出中指定的唯一 ID 设置所有设备。 Midi 吞吐量应用程序需要查看实时消息和实时数据。 用户必须看到他们要去什么地方的东西。

希望对你有所帮助...

【讨论】:

以上是关于Delphi ASIO VST 和 MiniHost 的 Midi 时序问题的主要内容,如果未能解决你的问题,请参考以下文章

NAudio Asio 录制和播放

Delphi 多声道声卡 (ASIO)

使用 VST 插件失真的音频

Monster Audio 使用教程基本注意事项 和 音轨的基本设置

monsteraudio缺点

VST SDK & VST 模块 SDK