0

我正在尝试从使用 JUCE 构建的 VST 插件中找到一种方法来控制 VST 主机的播放位置/速度。

我不确定这是否可能。

我在setPlayHead上找到了一个功能AudioProcessor,我想这可能就是我要找的。

https://www.juce.com/doc/classAudioProcessor#a9015f8476c07b173e3c9919b3036339d

但是在setPlayHead我正在阅读的文档中:

Tells the processor to use this playhead object.

所以谁能告诉我这是否应该意味着在 AudioProcessor 上设置的新 AudioPlayHead 将用于主机播放(zb Cubase),或者这是否意味着只有我的 VST 插件的 AudioProcessor 将使用这个 AudioPlayHead,并且主机的 AudioPlayHead 不受影响)

感谢您对此的任何帮助/输入。

4

1 回答 1

1

VST 插件无法以这种方式控制音序器。VST API 不允许这样的事情。您找到的方法实际上是 Juce API 的一部分,它允许音序器将播放头结构传递给插件。

公平地说,插件无法做到这一点没有技术原因。主机必须提供一个非官方的自定义操作码和一个与canDo该功能相关的操作码。但是,它不是 VST 标准的一部分,并且仅适用于该特定主机。

据我所知,没有主要的 VST 主机(包括 Ableton Live、Cubase 等)有机制允许这样做。从宿主的角度考虑,提供这样的机制有点疯狂。想象一下多个插件试图同时停止/播放主机的播放!

所以,是的,对不起,但这在你的想法中是不可能的。但是,VST 插件可以通过Ableton Link控制主机的速度(但不是播放状态) 。由于 Link 在本地网络套接字上工作,并且没有任何主/从概念,因此 VST 插件理论上可以以这种方式将速度更改发送到主机。

目前(“现在”== 2016 年 9 月),Ableton Live 是唯一支持 Link 的音序器,但 Ableton 表示他们正在与其他公司合作以帮助他们添加对 Link 的支持,所以如果在不久的将来,更多的音序器开始添加链接支持。

于 2016-09-13T15:35:05.940 回答