我想制作一个简单的 VST 插件来执行以下操作:

  1. 分析音频流(音量、节拍等...)
  2. 在分析仪的输出上有触发器(例如当音量 > 阈值时执行某些操作)
  3. 根据触发器生成 MIDI 事件

这是为了能够链接插件,即使它们不是为此设计的。例如,我可以通过音频流的包络来控制压缩器的增益,只需将插件的 MIDI OUT 连接到压缩器增益按钮的 MIDI IN 即可。

问题是我不知道该怎么做。VST 中是否支持像这样的直接 MIDI 连接?或者也许我需要某种“虚拟 MIDI 设备”来互连?

有帮助吗?

解决方案

您的预感可能是正确的;通过编写虚拟 MIDI 设备而不是 VST 插件,可以更轻松地完成此任务。可以使用 sendVstEventsToHost() 调用将 MIDI 事件发送到音序器,但问题是文档从未指定如何 主持人 需要对这些事件做出反应。许多主机只是忽略它们,我当然想不出一个可以轻松地从插件路由到 MIDI 通道(也许是 plogue bidule?)。

您也许可以使用带有 kAudioUnitType_Generator 插件类型的音频单元来完成此任务...尽管我从未编写过这样的插件,但我的印象是,这就是您用来为主机生成 MIDI 的插件。但同样,这里的问题是我不确定主机如何允许您将音频路由到插件并从中接受 MIDI。

无论如何,当您想要标准化最广泛使用的定序器的行为时,作为插件实现的想法将是最难实现的。我认为,实现您想要的目标的一种更简单的方法是创建一个虚拟 MIDI 设备,正如您已经想到的那样,然后使用重新连线将输入信号路由到您的程序。

编辑:以下是一些有关为各种系统编写 MIDI 驱动程序的资源:

其他提示

VST 插件不支持直接 MIDI 连接,它们只能有 MIDI 输入/输出端口。

不过,仍然可以做到这一点,您只需要一台支持将 MIDI 从一个插件路由到另一个插件的主机。EnergyXT、Bidule、AudioMulch 和 Console 等模块化主机在这方面表现出色。它们都允许音频和 MIDI 信号自由路由(除了没有反馈路径)。但在具有更“传统”混音器风格 vst 机架的主机中也有可能。(例如,AFAIK Reaper 会将任何 MIDI 从一个插件转发到下一个插件。)

如果您想在 .NET 中构建插件,请查看 伟仕网络

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top