Plugins 从VST插件控制VST主机传输

Plugins 从VST插件控制VST主机传输,plugins,vst,transport,Plugins,Vst,Transport,我想从VST插件中控制VST主机的传输(播放/停止)。很明显,sendVstEventsToHost方法提供了向主机发送命令的方法,但这些命令是MIDI,据说是附加到曲目的 可能吗?有什么想法吗 谢谢。我认为这是不可能的。VST插件规范基于音频和midi处理。控制主机几乎是不可能的。我能想到的唯一例外是SetTimeInfo方法,它允许插件“请求”新的歌曲位置。但该方法在VST2.4中已被标记为过时 您可能可以创建一个虚拟midi端口的解决方案,并允许主机同步到插件提供的外部源。我还没有想清楚这

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

可能吗?有什么想法吗


谢谢。

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


您可能可以创建一个虚拟midi端口的解决方案,并允许主机同步到插件提供的外部源。我还没有想清楚这一点,所以不确定它是否有效。

这绝对是不可能的。尽管VST协议允许插件向主机发送事件,但大多数(如果不是全部的话)主机都会忽略插件发送给它们的节奏和歌曲位置更改

虽然让插件控制主机的节奏和位置会很酷,比如节拍计数插件,但这会带来很多潜在的不良副作用,比如插件意外劫持主机节奏,或者多个插件向主机发送冲突的节奏/位置更改

因此,这不是一个好主意,这就是为什么VST框架不允许这样做的原因


正如@obiwanjacobi所建议的,控制主机速度的最佳方法是通过MIDI,这需要编写一个虚拟MIDI设备。不幸的是,这将不允许您控制主机传输,因为没有(非sysex)MIDI协议消息用于此操作。

快速查看SDK会发现操作码“audioMasterSetTime”,它可以设置主机速度等。因此答案是肯定的。坏消息是很少有主持人支持它——Bidule是我所知道的唯一一个