2016-03-23 141 views
4

我最近開始使用jvstwrapper和juce框架。看起來VST SDK對於你的樂器有一些不同「程序」的概念。例如jvstwrapper和juce都有你爲了創建你的樂器而繼承的類。這些類需要實施多種方法。在這兩種情況下(並且在VST SDK中都有詳細說明),您必須實現「setProgram」,「getProgramName」,「setProgramName」,「getNumPrograms」等方法。我知道每個程序似乎都包含一些儀器設置。但是他們在什麼情況下實際使用?再加上應該有多少?什麼是VST樂器中的「程序」?

回答

3

VST程序類似於硬件ROM預設或MIDI程序更改消息。如果您熟悉舊的合成器,硬件比喻會更有意義,因爲舊的合成器常常提供可以「撥號」並隨後進行調整的工廠預設。有些主機會將程序列表顯示爲下拉菜單,以便用戶可以快速瀏覽工廠預設。

關於插件可以使用的程序數量,VST SDK使用VstInt32(32位整數)作爲程序索引。所以一個插件理論上可以有多達2147483647個可能的程序。實際上,大多數主機將其限制爲127(與MIDI程序更改消息兼容),因此公開超過127個程序是不明智的,否則主機可能在插件上出現問題。

恕我直言,VST程序的概念有點過時和過時。您的插件支持VST SDK的FXP/FXB功能使用戶可以從/向硬盤導入/導出補丁,這樣做更加合理。如你所料,Juce當然有hooks for loading and saving VST preset files

許多現代插件不支持VST程序,並且您的插件在getNumPrograms()調用中返回0是完全可以接受的。

+0

真棒回答謝謝。我懷疑這是一組預設,但我認爲「程序」是一個奇怪的選擇!希望有人像我一樣困惑,可以從中受益。 – Jonathan

相關問題