我想在VST插件中控制VST主机的传输(播放/停止)。很明显,sendVstEventsToHost方法提供了向主机发送命令的方法,但是这些方法是MIDI,并且据说是附加到轨道上。
有可能吗?有什么想法吗?
感谢。
答案 0 :(得分:2)
快速浏览SDK会发现操作码“audioMasterSetTime”,它可以设置主机节奏等等。所以答案是肯定的。坏消息是很少有主机支持它 - 比尔勒是我所知道的唯一一个。
答案 1 :(得分:1)
我认为不可能。 VST插件规范基于音频和midi处理。控制主机几乎是不可能的。我能想到的唯一例外是SetTimeInfo方法,它允许插件“请求”新的歌曲位置。但是这种方法在VST 2.4中已经过时了。
您可以创建虚拟midi端口的解决方法,并让主机同步到插件提供的外部源。没有想到这一点,所以不确定它是否会奏效。
答案 2 :(得分:1)
绝对不可能。即使VST协议允许插件向主机发送事件,大多数(如果不是全部?)主机也会忽略从插件发送给它们的速度和歌曲位置变化。
虽然让插件控制主机速度和位置会很酷,例如节拍计数插件,但这会打开许多可能令人讨厌的副作用的大门,例如插件意外地劫持主机速度,或者多个插件向主机发送冲突的速度/位置变化。
因此,这不是一个好主意,这就是为什么VST框架不能真正允许这个。
正如@obiwanjacobi建议的那样,控制主机速度的最佳方法是通过MIDI,这需要编写一个虚拟MIDI设备。不幸的是,这不会让你控制主机传输,因为没有(非sysex)MIDI协议消息这样做。