从 JUCE 音频 VST 插件控制主机播放
Posted
技术标签:
【中文标题】从 JUCE 音频 VST 插件控制主机播放【英文标题】:Control Host playback from JUCE audio VST plugin 【发布时间】:2016-09-13 01:31:24 【问题描述】:我正在尝试从使用 JUCE 构建的 VST 插件中找到一种方法来控制 VST 主机的播放位置/速度。
我不确定这是否可能。
我在AudioProcessor
上找到了setPlayHead
函数,我想这可能就是我要找的。p>
https://www.juce.com/doc/classAudioProcessor#a9015f8476c07b173e3c9919b3036339d
但在setPlayHead
的文档上,我正在阅读:
Tells the processor to use this playhead object.
那么谁能告诉我这是否意味着设置在 AudioProcessor 上的新 AudioPlayHead 将用于主机播放(z.b. Cubase),还是意味着只有我的 VST 插件的 AudioProcessor 将使用这个AudioPlayHead,并且Host的AudioPlayHead不受影响)
感谢您对此的任何帮助/意见。
【问题讨论】:
【参考方案1】:VST 插件无法以这种方式控制音序器。 VST API 不允许这样的事情。您发现的方法实际上是 Juce API 的一部分,它允许音序器将播放头结构 传递给 插件。
公平地说,插件无法做到这一点没有技术原因。主机必须为该功能提供一个非官方的自定义操作码和关联的canDo
。但是,它不是 VST 标准的一部分,并且仅适用于该特定主机。
据我所知,没有主要的 VST 主机(包括 Ableton Live、Cubase 等)有机制允许这样做。从宿主的角度考虑,提供这样的机制有点疯狂。试想一下,多个插件试图同时停止/播放主机的播放!
所以,是的,抱歉,但按照您的想法,这实际上是不可能的。但是,VST 插件可以通过Ableton Link 控制主机的速度(但不是播放状态)。由于 Link 在本地网络套接字上工作,并且没有任何主/从概念,因此 VST 插件理论上可以通过这种方式将速度更改发送到主机。
目前(“现在”== 2016 年 9 月),Ableton Live 是唯一支持 Link 的音序器,但 Ableton 表示他们正在与其他公司合作以帮助他们增加对 Link 的支持,所以我不会如果在不久的将来更多的音序器开始添加 Link 支持,您会感到惊讶。
【讨论】:
感谢您的回答。不是我一直在寻找的答案,但对我来说很有意义。在这里发布问题是我最后的手段,但我已经认为这不会成功。以上是关于从 JUCE 音频 VST 插件控制主机播放的主要内容,如果未能解决你的问题,请参考以下文章