VST 3 Interfaces
VST 3.6.14
SDK for developing VST Plug-in
|
Formats definition of a VST 3 Plug-in and its preset and where they are located on different platforms.
On the macOS platform, VST 3 Plug-in is a standard macOS bundle, its file extension is ".vst3" and has the following folder structure:
MyPlugin.vst3/Contents/Resources/ => folder contains all additional resource files useful for the Plug-in MyPlugin.vst3/Contents/MacOS/ => folder contains the Plug-in’s macOS universal binary (Mach-O) MyPlugin.vst3/Contents/Info.plist => the Plug-in’s property list MyPlugin.vst3/Contents/PkgInfo => specifies the type and creator codes of the bundle (optionnal)
On the Windows platform a VST 3 Plug-in is organized as a bundle like package format (simple folder), its file extension is ".vst3" and has the following folder structure:
MyPlugin.vst3/Contents/Resources/ => folder can contain resource files useful for the Plug-in MyPlugin.vst3/Contents/x86-win/MyPlugin.vst3 => folder contains the Plug-in binary (32 bit dll for the i386 architecture) MyPlugin.vst3/Contents/x86_64-win/MyPlugin.vst3 => folder contains the Plug-in binary (64 bit dll for the x86_64 architecture) MyPlugin.vst3/Contents/arm-win/MyPlugin.vst3 => Proposal: folder contains the Plug-in binary (32 bit dll for the arm architecture) MyPlugin.vst3/Contents/arm_64-win/MyPlugin.vst3 => Proposal: folder contains the Plug-in binary (64 bit dll for the arm64 architecture)
MyPlugin.vst3/desktop.ini => used to set custom icon in Windows Explorer MyPlugin.vst3/Plugin.ico => customized Plug-in icon
In previous SDK's the VST 3 Plug-in was defined as a single dll file with the vst3 extension. This is deprecated since VST 3.6.10.
The file desktop.ini should contain:
[.ShellClassInfo] IconResource=Plugin.ico,0
and you should then change their attributes with this command line (s for system to make sure that Windows will use it for the folder/bundle, r for read-only and h for hidden (optional)):
attrib +s +r +h desktop.ini attrib +r +h Plugin.ico
On Linux a VST 3 Plug-in is organized as a bundle like package format, its file extension is ".vst3", it follows this folder structure:
MyPlugin.vst3/Contents/Resources => folder contains all additional resource files useful for the Plug-in MyPlugin.vst3/Contents/i386-linux => folder contains the Plug-in binary (32 bit shared library .so for Kernel Architecture i386) MyPlugin.vst3/Contents/x86_64-linux => folder contains the Plug-in binary (64 bit shared library .so for Kernel Architecture x86_64) MyPlugin.vst3/Contents/XXXX-linux => with XXXX the architecture name (based on the RPM Terminology + "-linux"), for example armv3l-linux, armv4b-linux, armv4l-linux, armv5tel-linux, armv5tejl-linux, armv6l-linux, armv7l-linux, armv8l-linux,
Since VST 3.6.10 a VST3 bundle can contain prerendered snapshot images for a VST3 host as a visual representation of the Plug-in UI.
This snapshots must have a predefined format and filename so that a host can recognize it.
Note that all the bundles could be merged to one.
For example:
MyPlugin.vst3/ |_ Contents/ | |__ Resources/ | | |__ Snapshots/ | | | |__ 84E8DE5F92554F5396FAE4133C935A18_snapshot.png | | | |__ 84E8DE5F92554F5396FAE4133C935A18_snapshot_2.0x.png | | |__ Documentation/ | | | |__ Manual.pdf | | | |__ WhatsNew.pdf | | |__ Help/ | | |__ helpdoc.xml | | |__ MyPlugin.srf | | | |__ armv7l-linux/ | | |__ MyPlugin.so | | | |__ i686-linux/ | | |__ MyPlugin.so | | | |__ i386-linux/ | | |__ MyPlugin.so | | | |__ x86_64-linux/ | | |__ MyPlugin.so | | | |__ MacOS/ | | |__ MyPlugin | | | |__ x86-win/ | | |__ MyPlugin.vst3 | | | |__ x86_64-win/ | | |__ MyPlugin.vst3 | | | |__ Info.plist (macOS Only) | |__ PkgInfo (macOS Only) | |____desktop.ini (Windows only) |___ Plugin.ico (Windows only)
On the macOS platform, the host application expects VST 3 Plug-ins to be located in:
------------------------------------------------------------------------------------------------------------------- Priority Location Path ------------------------------------------------------------------------------------------------------------------- 1 User /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ 2 Global /Library/Audio/Plug-ins/VST3/ 3 Global /Network/Library/Audio/Plug-ins/VST3/ 4 Application $APPFOLDER/Contents/VST3/ -------------------------------------------------------------------------------------------------------------------
Note: The host recursively scans these folders at startup in this order (User/Global/Application).
On the Windows platform, the host application expects VST 3 Plug-ins to be located in:
------------------------------------------------------------------------------------------------------------------- Priority Location Path Comment ------------------------------------------------------------------------------------------------------------------- 1 Global /Program Files/Common Files/VST3/ native bitdepth: 32bit Plug-in on 32bit OS, 64bit on 64bit OS 1 Global /Program Files (x86)/Common Files/VST3/ 32bit Plug-ins on 64bit Windows 2 Application $APPFOLDER/VST3/ -------------------------------------------------------------------------------------------------------------------
Note: The host recursively scans these folders at startup in this order (Global/Application).
On the Linux platform, the host application expects VST 3 Plug-ins to be located in:
------------------------------------------------------------------------------------------------------------------- Priority Location Path Comment ------------------------------------------------------------------------------------------------------------------- 1 User $HOME/.vst3/ 2 Global /usr/lib/vst3/ native bitdepth: 32bit Plug-in on 32bit OS, 64bit on 64bit OS 2 Global /usr/lib32/vst3/ 32bit Plug-ins on 64bit OS 3 Global /usr/local/lib/vst3/ native bitdepth: 32bit Plug-in on 32bit OS, 64bit on 64bit OS 3 Global /usr/local/lib32/vst3/ 32bit Plug-ins on 64bit OS 4 Application $APPFOLDER/vst3/ -------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------- Prio Type Scope Writable Path Comment -------------------------------------------------------------------------------------------------------------------------- 1 User User X Users/$USERNAME/Library/Audio/Presets/$COMPANY/$PLUGIN-NAME/ 2 Shared_Factory Public - Library/Audio/Presets/$COMPANY/$PLUGIN-NAME/ Computer shared FactoryROM 3 Shared_Factory Public - Network/Library/Audio/Presets/$COMPANY/$PLUGIN-NAME/ Network shared FactoryROM 4 App_Factory Apps - [$APPFOLDER]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ Host Application (Cubase, ...) --------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------- Prio Type Scope Writable Path Comment ----------------------------------------------------------------------------------------------------------------------------------------- 1 User User X [My Documents]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ CSIDL_PERSONAL 2 User_Factory User X [Documents and Settings/$USERNAME/Application Data]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ CSIDL_APPDATA 3 Shared_Factory Public - [Documents and Settings/$ALLUSERS/Application Data]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ CSIDL_COMMON_APPDATA 4 App_Factory Apps - [$APPFOLDER]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ Host Application (Cubase, ...) -----------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------ Prio Type Scope Writable Path Comment ------------------------------------------------------------------------------------------------------------------------------ 1 User User X [Users/$USERNAME/Documents]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ FOLDERID_Documents 2 User_Factory User X [Users/$USERNAME/AppData/Roaming]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ FOLDERID_RoamingAppData 3 Shared_Factory Public - [ProgramData]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ FOLDERID_ProgramData 4 App_Factory Apps - [$APPFOLDER]/VST3 Presets/$COMPANY/$PLUGIN-NAME/ Host Application (Cubase, ...) ------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------- Prio Type Scope Writable Path Comment -------------------------------------------------------------------------------------------------------------------------- 1 User User X $HOME/.vst3/presets/$COMPANY/$PLUGIN-NAME/ 2 Global Public - /usr/share/vst3/presets/$COMPANY/$PLUGIN-NAME/ 3 Shared_Factory Public - /usr/local/share/vst3/presets/$COMPANY/$PLUGIN-NAME/ 4 App_Factory Apps - [$APPFOLDER]/vst3/presets/$COMPANY/$PLUGIN-NAME/ Host Application --------------------------------------------------------------------------------------------------------------------------
See Remote Representation of Parameters Support
Back to Contents