我希望从VST插件中控制VST主机的传输 (play/stop) 。很明显,sendVstEventsToHost方法提供了向主机发送命令的方法,但是这些命令是MIDI,据说是附加在轨道上的。
有可能吗?有什么想法吗?
谢谢。
发布于 2010-08-04 23:17:45
快速查看一下SDK就会发现操作码"audioMasterSetTime",它可以设置主机的速度等等,所以答案是肯定的。坏消息是很少有主持人支持它--比杜尔是我唯一知道的人。
发布于 2010-02-04 09:17:33
我认为这是不可能的。VST插件规范基于音频和midi处理。控制主机几乎完全不是所有者。我能想到的唯一例外是允许插件“请求”一个新歌曲位置的SetTimeInfo方法。但该方法在VST2.4中已被标记为过时。
您可以使用虚拟midi端口创建工作,并允许主机同步到由您的插件提供的外部源。还没想清楚,所以不确定能不能用。
发布于 2010-06-10 09:24:53
这绝对不可能。尽管VST协议允许插件向主机发送事件,但大多数(如果不是全部?)主机忽略速度和歌曲位置的变化发送给他们从插件。
尽管让插件控制主机的速度和位置(比如节拍插件)是很酷的,但这会为许多潜在的不良副作用打开大门,比如插件不小心劫持了主机的速度,或者多个插件向主机发送了相互冲突的速度/位置更改。
因此,这不是一个好主意,这就是为什么VST框架不允许这样做的原因。
正如@obiwanjacobi建议的那样,控制主机速度的最佳方法是通过MIDI,这需要编写一个虚拟MIDI设备。不幸的是,这将不允许您控制主机传输,因为没有(非同性) MIDI协议消息来进行此操作。
https://stackoverflow.com/questions/2191348
复制相似问题