VST 3.7.4 SDK Released

Dear VST Developers,

Steinberg Media Technologies today releases the VST SDK 3.7.4

Here’s a brief overview of changes

Version 3.7.4 (2021/12/14)

  • Interface changes:
    • Add support of _M_ARM64EC on Windows
    • New defines: SMTG_CPU_ARM_64EC, SMTG_CPP14 and SMTG_CPP17
    • New VST3 plug-in location user local on Windows: %LOCALAPPDATA%/Programs/Common/VST3/
    • Use SMTG_CONSTEXPR where needed
  • VSTGUI 4.10.3
    • different fixes
  • Licensing has changed to version 2.2.2! Please read the new license agreement VST 3 Licensing Issues. (if you have already signed the version 2.0 of the license agreement you do not have to sign it again).
  • cmake:
    • Refactoring: rename function/macro by adding target when target is used: i.e. smtg_run_vst_validator => smtg_target_run_vst_validator
    • :warning:Breaking Change: change smtg_add_vst3_resource to smtg_target_add_plugin_resources allowing to add multiple resources in a call
    • :warning:Breaking Change: change smtg_add_vst3_snapshot to smtg_target_add_plugin_snapshots allowing to add multiple resources in a call
    • make Universal Binary on Mac default ON when Xcode12
    • Add support of new VST3 Location on Windows: new option SMTG_PLUGIN_TARGET_USER_PROGRAM_FILES_COMMON
    • Fix some code Signing issue with XCode
  • Plug-in Wrappers:
    • VST2 Wrapper:
      • Fix termination of objects might still need data destroyed in _DeinitModule()
    • Audio Unit:
      • Update AU SDK as external (version 1.1)
      • Fix offline rendering info for AUWrapper
  • Samples:
    • Add to validator self-tests
    • Add to validator a new function addErrorWarningTextToOutput
  • Helpers classes:
    • New file pluginterfaces/base/funknownimpl.h (C++11 required): it provides classes for working with FUnknown.
    • Add Unitests for all hosting helpers classes
    • Show example const_exp (C++17) in plugin factory: public.sdk/source/main/pluginfactory_constexpr.h
    • Add documentation to mpeprocessor classes
  • VST3PluginTestHost v3.2.20:
    • Adapted to scan the new VST3 plug-in location on Windows
    • This is the last version supporting 32bits plug-ins on Windows. The next update will support only 64bits plug-ins.
  • VST3 Project Generator v2021.12:
    • Add platform Architecture setting (cmake) in project generator on Windows

The SDK can be downloaded here:

Online documentation available under:
https://developer.steinberg.help/display/VST

Your Steinberg Team

1 Like

I see this change " New VST3 plug-in location user local on Windows"? A few releases back, there was a change on Windows as well to use a bundle format instead of a DLL.

I am just curious what you think the expectations are for these kind of changes: on one side, they are unlikely going to be supported by all DAWs that support VST3 in the immediate future. On the other side, developers who have written VST3 plugins using the DLL format or have released versions of their plugins with an installer that install in the “old” location are also very unlikely to upgrade to 3.7.4 just so that they can provide a new bundle format and/or installer. This means that DAWs now have to support the old DLL format, the new bundle format, the old location, the new location, etc…

So what is your thinking there? Are you considering these kind of scenarios when you make these kind of changes? And what is your anticipation for the migration?

Thanks for the work Steinberg Team!

Hi
We are aware that such changes are critical:

  • for bundle on Windows we have checked with the main VST3 DAWs the compatibility => it was Ok. If you know some hosts having problems with bundle/folder VST3 on Windows, please inform us and them.
  • for the new location (user common program) on Windows, we will communicate to the major VST3 hosts to implement it. This location is mainly for developing condition with no Admin right access, but nevertheless it could be useful for computer with multiple users. (Already supported by Cubase 11 and higher)
1 Like

Thank you for clarifying. I guess one thing to never forget is that these kind of changes are part of the “API” between the DAW and the plugin. And if a DAW wants to support VST3, they have to implement the old way (DLL/old location) and the new way (bundle/new location) for the foreseeable future…

2 posts were split to a new topic: Can’t reach the online documentation

And what happens when there is a conflict; the same plugin is available in the old and the new location?
Examples: Developer releases a new version that installs in the new location but there is an old version installed in the old location.
Dev wants to be on the safe side and installs the plugin in both, the old and the new, location?

If there’a a conflict then the plug-in with the higher version is used. But normally the new location should only be used for development. Manufactures should install the plug-in for all users of a machine.