VST 3 Interfaces
VST 3.7
SDK for developing VST plug-in
|
How to better support remote (UI and hardware) for parameters.
Since VST 3.5, a new interface is provided: Steinberg::Vst::IXmlRepresentationController
Extended plug-in interface IEditController for a component: Vst::IXmlRepresentationController.
A representation based on XML is a way to export, structure, and group plug-ins parameters for a specific remote (hardware or software rack (such as quick controls)).
It allows to describe each parameter more precisely (what is the best matching to a knob, different title lengths matching limited remote display,...).
See an Example.
This representation is implemented as XML text following the Document Type Definition (DTD): http://dtd.steinberg.net/VST-Remote-1.1.dtd
Here an example of what should be passed in the stream of getXmlRepresentationStream:
See Steinberg::Vst::XmlRepresentationHelper.
When a host needs to use a VST XMLs representation (for internal use - like quick controls assignment to get the most important parameters sorted per page of a plug-in), the host will check the presence in a specific location for a given remote and for this given plug-in a representation XML file with the remote name as filename (check below about how the path is defined). If this is not found, the host will ask the plug-in by using Steinberg::Vst::IXmlRepresentationController (if implemented).
Explanation:
Prio | Type | Scope | Writable | Path | Comment |
---|---|---|---|---|---|
1 | User | User | X | Users/$USERNAME/Library/Audio/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | |
2 | User | User | X | Users/$USERNAME/Library/Audio/VST XMLs/$COMPANY/$PLUGIN-NAME/ | |
3 | Shared_Factory | Public | - | Library/Audio/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | Computer shared FactoryROM |
4 | Shared_Factory | Public | - | Library/Audio/VST XMLs/$COMPANY/$PLUGIN-NAME/ | Computer shared FactoryROM |
5 | App_Factory | Apps | - | [$APPFOLDER]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | Host Application (Cubase, ...) |
6 | App_Factory | Apps | - | [$APPFOLDER]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | Host Application (Cubase, ...) |
7 | App_Factory | Apps | - | $PLUGIN-PATH/Contents/Resources/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | Plugin Bundle |
8 | App_Factory | Apps | - | $PLUGIN-PATH/Contents/Resources/VST XMLs/$COMPANY/$PLUGIN-NAME/ | Plugin Bundle |
Prio | Type | Scope | Writable | Path | Comment |
---|---|---|---|---|---|
1 | User | User | X | [Users/$USERNAME/Documents]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | FOLDERID_Documents |
2 | User | User | X | [Users/$USERNAME/Documents]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | FOLDERID_Documents |
3 | User_Factory | User | X | [Users/$USERNAME/AppData/Roaming]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | FOLDERID_RoamingAppData |
4 | User_Factory | User | X | [Users/$USERNAME/AppData/Roaming]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | FOLDERID_RoamingAppData |
5 | Shared_Factory | Public | - | [ProgramData]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | FOLDERID_ProgramData |
6 | Shared_Factory | Public | - | [ProgramData]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | FOLDERID_ProgramData |
7 | App_Factory | Apps | - | [$APPFOLDER]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | Host Application (Cubase, ...) |
8 | App_Factory | Apps | - | [$APPFOLDER]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | Host Application (Cubase, ...) |
Prio | Type | Scope | Writable | Path | Comment |
---|---|---|---|---|---|
1 | User | User | X | [My Documents]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | CSIDL_PERSONAL |
2 | User | User | X | [My Documents]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | CSIDL_PERSONAL |
3 | User_Factory | User | X | [Documents and Settings/$USERNAME/Application Data]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | CSIDL_APPDATA |
4 | User_Factory | User | X | [Documents and Settings/$USERNAME/Application Data]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | CSIDL_APPDATA |
5 | Shared_Factory | Public | - | [Documents and Settings/$ALLUSERS/Application Data]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | CSIDL_COMMON_APPDATA |
6 | Shared_Factory | Public | - | [Documents and Settings/$ALLUSERS/Application Data]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | CSIDL_COMMON_APPDATA |
7 | App_Factory | Apps | - | [$APPFOLDER]/VST XMLs/$COMPANY/$PLUGIN-NAME/$UID/ | Host Application (Cubase, ...) |
8 | App_Factory | Apps | - | [$APPFOLDER]/VST XMLs/$COMPANY/$PLUGIN-NAME/ | Host Application (Cubase, ...) |
Back to Contents