VST 3.7.8 SDK Released

Dear VST Developers,

Steinberg Media Technologies today releases the VST SDK 3.7.8

Here’s a brief overview of changes:


Version 3.7.8 (2023/05/15)

  • Interface changes:

    • :warning: Breaking Change: the moduleinfo.json file, introduced in the VST 3.7.5, is now located in the Contents/Resources folder in order to be compliant with code signing on macOS.
    • Add new Microsoft unified Arm64X binary definition for VST 3 plug-ins.
    • New category: kFxVocals for tools dedicated to vocals.
    • New Flags/Enums:
      • New predefined Ambisonics speaker arrangements:
        • kAmbi4thOrderACN with new speakers: kSpeakerACN16 to kSpeakerACN24,
        • kAmbi5thOrderACN, kAmbi6thOrderACN, kAmbi7thOrderACN: breaking speaker-bit compability by starting from index 0. Including some helper functions to map speaker index between order 1 to 4 and order 5 to 7 (convertSpeaker_Ambi_1234Order_to_Ambi567Order and convertSpeaker_Ambi_567Order_to_Ambi1234Order).
  • VSTGUI Version 4.12.3

  • cmake

    • Fix “When vst3sdk is a submodule, example plugins are not built - a switch to choose would be very useful” (Issue#94).
    • Fix CMake fails with bad $-escape (Issue#100).
    • :warning: Breaking Change: options renamed to more meaningful words:
      • SMTG_ADD_VST3_HOSTING_SAMPLES => SMTG_ENABLE_VST3_HOSTING_EXAMPLES
      • SMTG_ADD_VST3_PLUGINS_SAMPLES => SMTG_ENABLE_VST3_PLUGIN_EXAMPLES
      • SMTG_ADD_VSTGUI => SMTG_ENABLE_VSTGUI_SUPPORT
  • Plug-in Wrappers:

    • Audio Unit:
      • AUv3Wrapper:
        • Remove duplicate -loadAudioFile: method declaration (PR#46).
        • Fix iOS build errors (PR#47)
        • Fix resets all parameter values when restartComponent (kParamTitlesChanged) is called (Issue#45)
      • AUv2Wrapper:
        • Fix “AUv2 editor does not always work” (Issues#108)
        • Fix endless SMTG_AUView setFrame recursion call in AUv2 Wrapper
  • Examples:

    • Improve silence flag handling in some plug-ins examples.
    • Hello World VST 3 plug-in example is moved to github!
  • Helpers classes:

    • Fix Build error on Linux with gcc 12 (moduleinfoparser.cpp) (PR#49).
    • Fix cannot fully build on linux due to missing Steinberg::SystemClipboard::copyTextToClipboard() implementation (Issue#102).
    • Fix Controller CID output from validator cut on non-Windows platform (Issue#109).
    • Add security check (PR#51).
    • Fix moduleinfotool.exe with UTF8 Normalization issue on Windows.
    • Improve robustness of FStreamer::readString8 (PR#5).
    • Fix warning: loop variable ‘flag’ binds to a temporary value produced by a range of type ‘std::optionalJSON::Object::value_type’
    • Fix warnings that cannot be silenced on MinGW 8.1 (PR#14).
    • Remove warnings that cannot be silenced on Linux (PR#6).
    • Fix language standard check in module_linux.cpp (PR#53).
    • Fix Qualify std::move call in module.cpp to silence a -Wunqualified-std-cast-call warning (PR#53).
    • Fix Include in moduleinfo.h to ensure that sized int types are visible (PR#53).
  • Validator:

    • Add info when a unit has too many parameters
  • VST3PluginTestHost v3.5:

    • New Native Arm64EC version for Windows on Arm: allowing to load VST3 Plug-ins built for Arm64EC.
    • New Windows built-in ASIO Driver for x64 and Arm64EC.

The SDK can be downloaded here:

Online documentation available under:
VST - VST 3 Developer Portal (steinbergmedia.github.io)

Your Steinberg Team

2 Likes

I see mention of an AU wrapper… i’ve never heard about this. Is this something developers should implement for? I have a lot of au plugins that do not have a vst3 version, i’d love to have a Native au wrapper in N12.

Hello,
it appears SMTG_MYPLUGINS_SRC_PATH was removed.

currently I have my dirs organized like this:

  • VST3dev
    • vst3sdk (cloned from github)
    • build
    • vst3projectgenerator (cloned from github)
    • proj (where I want to put my plugins)

When I do cmake ../vst3sdk -DSMTG_MYPLUGINS_SRC_PATH=../proj from the build dir, it tells me:

CMake Warning:
  Manually-specified variables were not used by the project:

    SMTG_MYPLUGINS_SRC_PATH

I’m on linux and want to keep my plugins outside the VST3SDK dir so it can be updated easily with git pull.
Currently I can only build the examples.
What are we supposed to do?

I’ll ask again: what’s the recommended project structure on linux, now that SMTG_MYPLUGINS_SRC_PATH is gone?

Did you check the hello world example? GitHub - steinbergmedia/vst3_example_plugin_hello_world: Hello World VST 3 example plug-in
it should help.

thank you, I already solved it like this:

the solution is to reference an existing distribution of vst3sdk, the trade-off is that each project builds its own copy of the vst3sdk
turns out the project generator works fine on linux, just sans GUI