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