2010-02-03 99 views
2

我想控制來自VST插件內的VST主機的傳輸(播放/停止)。很明顯,sendVstEventsToHost方法提供了向主機發送命令的意思,但是這些是MIDI,並且被稱爲附加到軌道。控制來自VST插件的VST主機傳輸

可能嗎?任何想法?

謝謝。

回答

1

我不認爲這是可能的。 VST插件規範基於音頻和MIDI處理。控制主機幾乎不可能。我能想到的唯一例外是SetTimeInfo方法,它允許插件'請求'新的歌曲位置。但是該方法在VST 2.4中已經被標記爲過時。

您可能可以使用虛擬MIDI端口創建解決方法,並讓主機同步到由插件提供的外部源。沒有想到這一點,所以不知道它會起作用。

1

這絕對不可能。即使VST協議允許插件向主機發送事件,大多數(如果不是全部的話)主機都會忽略從插件發送給它們的速度和歌曲位置更改。例如,如果插件控制主機速度和位置(例如節拍計數插件),雖然這會很酷,但這會帶來許多可能令人討厭的副作用,例如意外插入劫持主機節奏的插件,或多個插件向主機發送衝突的速度/位置變化。

因此,由於這個原因,這不是一個好主意,這就是爲什麼VST框架不會真的允許這樣做。

正如@obiwanjacobi所說,控制主機速度的最佳方法是通過MIDI,它需要編寫一個虛擬的MIDI設備。不幸的是,這不會讓你控制主機傳輸,因爲沒有(非sysex)MIDI協議消息來做這件事。

2

快速查看SDK會發現操作碼「audioMasterSetTime」,它可以設置主機節奏等等。所以答案是肯定的。壞消息是很少有主機支持它 - Bidule是我所知道的唯一一個。