从VST插件控制VST主机传输

时间:2010-02-03 10:57:41

标签: plugins vst transport

我想在VST插件控制VST主机的传输(播放/停止)。很明显,sendVstEventsToHost方法提供了向主机发送命令的方法,但是这些方法是MIDI,并且据说是附加到轨道上。

有可能吗?有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:2)

快速浏览SDK会发现操作码“audioMasterSetTime”,它可以设置主机节奏等等。所以答案是肯定的。坏消息是很少有主机支持它 - 比尔勒是我所知道的唯一一个。

答案 1 :(得分:1)

我认为不可能。 VST插件规范基于音频和midi处理。控制主机几乎是不可能的。我能想到的唯一例外是SetTimeInfo方法,它允许插件“请求”新的歌曲位置。但是这种方法在VST 2.4中已经过时了。

您可以创建虚拟midi端口的解决方法,并让主机同步到插件提供的外部源。没有想到这一点,所以不确定它是否会奏效。

答案 2 :(得分:1)

绝对不可能。即使VST协议允许插件向主机发送事件,大多数(如果不是全部?)主机也会忽略从插件发送给它们的速度和歌曲位置变化。

虽然让插件控制主机速度和位置会很酷,例如节拍计数插件,但这会打开许多​​可能令人讨厌的副作用的大门,例如插件意外地劫持主机速度,或者多个插件向主机发送冲突的速度/位置变化。

因此,这不是一个好主意,这就是为什么VST框架不能真正允许这个。

正如@obiwanjacobi建议的那样,控制主机速度的最佳方法是通过MIDI,这需要编写一个虚拟MIDI设备。不幸的是,这不会让你控制主机传输,因为没有(非sysex)MIDI协议消息这样做。