VST 仪器中的"programs"是什么?

What are "programs" in a VST instrument?

本文关键字:programs 是什么 仪器 VST      更新时间:2023-10-16

我最近开始使用jvstwrapper和juce框架。VST SDK似乎对您的仪器有一些不同"程序"的概念。例如,jvstwrapper和juce都有您继承的类,以便创建您的乐器。这些类需要实现许多方法。在这两种情况下(在VST SDK中有详细说明),您必须实现方法"setProgram"、"getProgramName"、"setProgramName"answers"getNumPrograms"等。我知道每个程序似乎都有一组仪器的设置。但在什么情况下,它们被实际使用?再加上应该有多少?

VST程序类似于硬件ROM预设或MIDI程序更改消息。如果你熟悉老式合成器,硬件类比更有意义,因为它们通常提供出厂预设,可以"拨号",然后进行相应调整。一些主机会以下拉菜单的形式显示程序列表,以便用户可以快速浏览出厂预设。

关于插件可能拥有的程序数量,VST SDK使用VstInt32(32位整数)作为程序索引。因此,一个插件理论上可以有多达2147483647个可能的程序。在实践中,大多数主机将其限制为127(以与MIDI程序更改消息兼容),因此公开超过127个程序是不明智的,否则主机可能会对您的插件产生问题。

IMHO VST程序的概念有点过时了。您的插件支持VST SDK的FXP/FXB功能更有意义,这样用户就可以从硬盘导入/导出补丁。正如您所料,Juce当然有用于加载和保存VST预设文件的钩子。

许多现代插件不支持VST程序,您的插件在getNumPrograms()调用中返回0是完全可以接受的。