vst3sdk

VST3 Plug-In SDK
Log | Files | Refs | Submodules | README

commit 79750cb3e56f3988f33bc178884962cc3f4c3eb9
parent ef0a70df2f82a3c218abaca0dbfbb66ae6c61025
Author: ygrabit <ygrabit@users.noreply.github.com>
Date:   Mon, 16 Nov 2020 16:56:22 +0100

VST SDK 3.7.1

Diffstat:
MCMakeLists.txt | 70+++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
MREADME.md | 30+++++++++++++++---------------
MVST3_License_Agreement.pdf | 0
MVST3_Usage_Guidelines.pdf | 0
4 files changed, 68 insertions(+), 32 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -2,6 +2,15 @@ cmake_minimum_required (VERSION 3.4.3) #------------------------------------------------------------------------------- +# Options +#------------------------------------------------------------------------------- +# Add VST3 Plug-ins Samples +option(SMTG_ADD_VST3_PLUGINS_SAMPLES "Add VST3 Plug-ins Samples to the solution" ON) + +# Add and use VSTGUI (enable VST3 Plug-ins Samples using VSTGUI) +option(SMTG_ADD_VSTGUI "Add VSTGUI Support" ON) + +#------------------------------------------------------------------------------- # Includes #------------------------------------------------------------------------------- @@ -14,7 +23,7 @@ include(SMTG_VST3_SDK) #------------------------------------------------------------------------------- project(vstsdk) -setupPlatformToolset() +smtg_setup_platform_toolset() set(ROOT "${CMAKE_CURRENT_SOURCE_DIR}") @@ -23,10 +32,19 @@ set(SDK_ROOT "${ROOT}") set(public_sdk_SOURCE_DIR ${SDK_ROOT}/public.sdk) set(pluginterfaces_SOURCE_DIR ${SDK_ROOT}/pluginterfaces) +# Disable all VST3 samples when using SDK as subdirectory +if(NOT ${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_CURRENT_LIST_DIR}) + set(SMTG_ADD_VST3_PLUGINS_SAMPLES OFF) + set(SMTG_ADD_VST3_HOSTING_SAMPLES OFF) + set(SMTG_ADD_MYPLUGINS_SRC_PATH OFF) +else() + set(SMTG_ADD_MYPLUGINS_SRC_PATH ON) +endif() + # Here you can define where the VSTGUI is located if(SMTG_ADD_VSTGUI) - set(VSTGUI_ROOT "${ROOT}") - setupVstGuiSupport() + set(SMTG_VSTGUI_ROOT "${ROOT}") + smtg_enable_vstgui_support() endif() include_directories(${ROOT} ${SDK_ROOT}) @@ -40,38 +58,54 @@ include_directories(${ROOT} ${SDK_ROOT}) setupCoreAudioSupport() setupAaxSupport() - #------------------------------------------------------------------------------- # Projects #------------------------------------------------------------------------------- set(SDK_IDE_LIBS_FOLDER FOLDER "Libraries") #---Add base libraries--------------------------- -set(VST_SDK TRUE) # used for Base module which provides only a subset of Base for VST-SDK +set(VST_SDK TRUE) # used for pluginterfaces and public.sdk modules which provides only a subset of them for VST-SDK add_subdirectory(pluginterfaces) add_subdirectory(base) add_subdirectory(public.sdk) add_subdirectory(public.sdk/source/vst/interappaudio) #---Add Wrappers (AU, AAX)----------------------- -if (SMTG_COREAUDIO_SDK_PATH) +if(SMTG_COREAUDIO_SDK_PATH) add_subdirectory(public.sdk/source/vst/auwrapper) endif() if(SMTG_AAX_SDK_PATH) add_subdirectory(public.sdk/source/vst/aaxwrapper) - set_target_properties(aaxwrapper PROPERTIES ${SDK_IDE_LIBS_FOLDER}) + set_target_properties(aaxwrapper + PROPERTIES + ${SDK_IDE_LIBS_FOLDER} + ) endif() +# Add hosting examples, it includes the validator (must be done before any plug-ins to support running the validator after building) +set(SDK_IDE_HOSTING_EXAMPLES_FOLDER FOLDER "HostingExamples") +add_subdirectory(public.sdk/samples/vst-hosting) + #------------------------------------------------------------------------------- -# Here is added your own plugins folder location +# Here is added your own plug-ins folder location +# (by default we add the HelloWorld included in my_plugins folder) #------------------------------------------------------------------------------- -set(SDK_IDE_MYPLUGINS_FOLDER FOLDER "MyPlugIns") -if(EXISTS ${SMTG_MYPLUGINS_SRC_PATH}) - set(SMTG_MYPLUGINS_BIN_PATH "${SMTG_MYPLUGINS_SRC_PATH}/build") - add_subdirectory(${SMTG_MYPLUGINS_SRC_PATH} ${SMTG_MYPLUGINS_BIN_PATH}) -endif() +if(SMTG_ADD_MYPLUGINS_SRC_PATH) + set(SMTG_MYPLUGINS_SRC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../my_plugins" CACHE PATH "Here you can add Your VST3 Plug-ins folder") + + if(EXISTS ${SMTG_MYPLUGINS_SRC_PATH}) + message(STATUS "SMTG_MYPLUGINS_SRC_PATH is set to : " ${SMTG_MYPLUGINS_SRC_PATH}) + else() + message(STATUS "SMTG_MYPLUGINS_SRC_PATH is not set. If you want to add your own Plug-ins folder, specify it!") + endif() + set(SDK_IDE_MYPLUGINS_FOLDER FOLDER "MyPlugIns") + if(EXISTS ${SMTG_MYPLUGINS_SRC_PATH}) + set(SMTG_MYPLUGINS_BIN_PATH "${SMTG_MYPLUGINS_SRC_PATH}/build") + add_subdirectory(${SMTG_MYPLUGINS_SRC_PATH} ${SMTG_MYPLUGINS_BIN_PATH}) + endif() +endif() #---Add VST3 examples (plug-ins and hosting)----- if(SMTG_ADD_VST3_PLUGINS_SAMPLES) @@ -81,14 +115,12 @@ if(SMTG_ADD_VST3_PLUGINS_SAMPLES) add_subdirectory(public.sdk/source/vst/auv3wrapper) endif() -# Add hosting examples, it includes the validator -set(SDK_IDE_HOSTING_EXAMPLES_FOLDER FOLDER "HostingExamples") -add_subdirectory(public.sdk/samples/vst-hosting) - #------------------------------------------------------------------------------- # IDE sorting #------------------------------------------------------------------------------- set_target_properties(sdk PROPERTIES ${SDK_IDE_LIBS_FOLDER}) +set_target_properties(sdk_common PROPERTIES ${SDK_IDE_LIBS_FOLDER}) +set_target_properties(sdk_hosting PROPERTIES ${SDK_IDE_LIBS_FOLDER}) set_target_properties(base PROPERTIES ${SDK_IDE_LIBS_FOLDER}) set_target_properties(pluginterfaces PROPERTIES ${SDK_IDE_LIBS_FOLDER}) if(TARGET base_ios) @@ -105,3 +137,6 @@ if(SMTG_ADD_VSTGUI) set_target_properties(vstgui_standalone PROPERTIES ${SDK_IDE_LIBS_FOLDER}) endif() endif() + +include(SMTG_CustomModuleTarget) +set_target_properties(cmake_modules PROPERTIES ${SDK_IDE_LIBS_FOLDER}) +\ No newline at end of file diff --git a/README.md b/README.md @@ -31,18 +31,17 @@ The full VST 3 SDK is available [here!](https://www.steinberg.net/en/company/dev ## System requirements -Supported OS: - -- Microsoft Windows 7-10 -- Apple OSX 10.9-10.15 -- Apple iOS 8-13 -- Linux (Beta version) - -Supported IDE: - -- Visual Studio 2015/2017/2019 -- minimum Xcode 7 -- Qt Creator +Supported Platforms: + +| Operating System|Architecture|Compiler | Notes| +| :------------- | :----------: | -----------: |-----------:| +|Windows 10 |x86, x86_64 |MSVC 2019, MSVC 2017 | | +|Windows 8.1 |x86, x86_64 |MSVC 2019, MSVC 2017 | | +|macOS 10.13, 10.14, 10.15 |x86, x86_64, Apple Silicon |Xcode 7, 8, 9, 10, 11 || +|iOS 13, iOS 14 | arm64 |Xcode 11| | +|Linux - Raspberry Pi OS (Buster) |arm32 |GCC 8.3 and higher|Visual Studio Code| +|Linux - Ubuntu 18.04 LTS |x86, x86_64 |GCC 8.3 and higher|Visual Studio Code, Qt Creator| +|Linux - Ubuntu 20.04 LTS |x86, x86_64 |GCC 8.3 and higher|Visual Studio Code, Qt Creator| --- <div id='300'/> @@ -60,7 +59,7 @@ The source code of a VST plug-in is platform independent, but the delivery syste - On **Linux**, a VST plug-in is a package To learn more about VST you can: -- check the [VST portal](https://developer.steinberg.help/display/VST) dedicated to developers of VST 3 plug-ins and VST 3 hosts + - subscribe to the [VST Developer Forum](https://sdk.steinberg.net) - check the 3rd Party Developer Support section at [www.steinberg.net](https://www.steinberg.net/en/company/developers.html) - check the online documentation under: [steinbergmedia.github.io/vst3_doc]( @@ -87,7 +86,7 @@ VST 3 also features vastly improved parameter automation with sample accuracy an ### 4. Logical Parameter Organization -The VST 3 plug-in parameters are displayed in a tree structure. Parameters are grouped into sections which represent the structure of the plug-in. plug-ins can communicate their internal structure for the purpose of overview, but also for some associated functionality (eg. program-lists). +The VST 3 plug-in parameters are displayed in a tree structure. Parameters are grouped into sections which represent the structure of the plug-in. Plug-ins can communicate their internal structure for the purpose of overview, but also for some associated functionality (eg. program-lists). ### 5. Resizeable UI Editor @@ -103,7 +102,7 @@ VST 3 defines a way to allow the host to add its own entries in the plug-in cont ### 8. Channel Context Information -A VST 3 plug-in could access some channel information where it is instantiated: name, color,... +A VST 3 plug-in could access some channel information where it is instantiated: name, color, ... ### 9. Note Expression @@ -167,6 +166,7 @@ copy_vst2_to_vst3_sdk.bat ### Build the examples on Linux +- Install the required packages [Package Requirements](https://developer.steinberg.help/display/VST/How+to+set+up+my+system+for+VST+3#HowtosetupmysystemforVST3-ForLinux) - Create a folder for the build and move to this folder (using cd): <pre> diff --git a/VST3_License_Agreement.pdf b/VST3_License_Agreement.pdf Binary files differ. diff --git a/VST3_Usage_Guidelines.pdf b/VST3_Usage_Guidelines.pdf Binary files differ.