VST 3 Interfaces  VST 3.6.14
SDK for developing VST Plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
VST 3 Locations / Format

Formats definition of a VST 3 Plug-in and its preset and where they are located on different platforms.

Plug-in Format

For the macOS platform

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)



For the Windows platform

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



For the Linux platform

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,



Snapshots

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.

  • The image format must be PNG
  • The image needs to be located inside the bundle directory in the folder Resources/Snapshots/
  • The filename must start with the unique ID of the audio processor printed in the form 84E8DE5F92554F5396FAE4133C935A18 followed by the string _snapshot and optionally followed by the HiDPI scale factor _2.0x and ending with the file extension .png.
    • For example again's snapshot must be named:
      • 84E8DE5F92554F5396FAE4133C935A18_snapshot.png
      • 84E8DE5F92554F5396FAE4133C935A18_snapshot_2.0x.png for the 2x scaled HiDPI variant.
    • If the HiDPI scale factor is omitted, a scale factor of 1 is used.

Merged Bundle

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)



Plug-in Locations

  • VST 3 doesn't require a Plug-in registration like it is used with DirectX.
  • A Plug-in should be installed at specific folder location (links, shortcuts could be used too); see below for different predefined locations.



For the macOS platform

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).

For the Windows platform

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).

For Linux platform

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/
-------------------------------------------------------------------------------------------------------------------



Preset Format

  • The file extension has to be ".vstpreset".
  • Specification of a VST 3 Preset file
    preset_file_format.jpg

  • Check Steinberg::Vst::PresetFile source code which allow to read and write such preset.

Preset Locations

  • $COMPANY and $PLUGIN-NAME folder names contain only allowed characters for file naming (replace characters "\\*?/:<>|\" by "_").
    Note: Each path defined below should be scanned in the given priority, presets extracted and added to the preset list.

For Mac platform

--------------------------------------------------------------------------------------------------------------------------
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, ...)
--------------------------------------------------------------------------------------------------------------------------



For Windows XP/2000 platform

-----------------------------------------------------------------------------------------------------------------------------------------
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, ...)
-----------------------------------------------------------------------------------------------------------------------------------------



For Windows Vista/7/8/10 platform

------------------------------------------------------------------------------------------------------------------------------
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, ...)
------------------------------------------------------------------------------------------------------------------------------



For Linux platform

--------------------------------------------------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------------------------------------------------



Remote Representation Locations

See Remote Representation of Parameters Support

Back to Contents

Empty

Copyright ©2019 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.