Preparing the VST3 SDK 3.6.7 for use with RackAFX 6.8.1.6 (and greater) and the VST3 Synth Book Projects

 
 

What changed in 3.6.7 that requires me to “prepare” the SDK?

 

Prior to v3.6.7, the SDK contained several Visual Studio (Windows) and XCode (MacOS) projects. These consisted of:
 

– sample vst3 plugins
– a vst3 validator project
 

Each project consisted of source code and compiler-setup files for both Visual Studio and XCode. Each project was stand-alone and could be compiled and tested individually. In addition, the projects could be compiled for 32-bit or 64-bit targets from the same Visual Studio or XCode project. For both Windows and MacOS, a base library was compiled first, as part of the plugin project, and this base also had its own compiler-setup files.
 

For the 3.6.7 SDK, the developers combined all the sample projects, the validator, and a new editorhost (sample GUI hosting application) into one gigantic project. This consolidated the projects into one single solution rather than individual, distinct ones. The base library project is still compiled as usual and is still part of the plugin development system.
 

However, the VST3 engineers removed all the existing Visual Studio and XCode project files for the individual projects as well as the base library project. They also did NOT include the needed project files for the new gigantic all-in-one project. I do understand the motivation for removing the project files – it is a real pain to need to keep up with every compiler update from Microsoft and Apple, and in some cases, provide separate compiler-setup files for the various flavors of Visual Studio and XCode.
 

In order to generate the missing files, the user must run an application called CMake (https://cmake.org/download/). This utility software creates the compiler-setup files based on the compiler you choose to target, as well as the bit-depth of the resulting plugins and applications (for Visual Studio only). More importantly, it creates the base library compiler-setup files that VST3 developers need to use, even if they don’t care about compiling Steinberg’s sample code or applications. Unfortunately, many new programmers are not familiar with CMake.
 

THE GOOD NEWS FOR YOU:

In order to use RackAFX’s Make VST function (RAFX v6.8.1.6 and later), or to build the Synth Book projects, you do NOT need to run CMake. Instead, you can use the project files I’ve generated for you by simply copying them into the base library folder. In addition to being easy, the way I’ve done this will not interfere with CMake, should you decide to run it and check out the new all-in-one projects.
 

What Compilers are supported?

The VST SDK 3.6.7 requires Visual Studio 2013 or Visual Studio 2015 for Windows, and XCode6 or XCode7 for MacOS. Be sure you have one of these installed first.
 

Steps to prepare the SDK:

1. Download and install the VST3 SDK 3.6.7 folder to your disk drive from https://www.steinberg.net/en/company/developers.html. You may install the included folders anywhere you like but you will need to remember this location and, as with the previous SDKs, your projects will reside four layers deep inside the SDK (explained in more detail below).
 

The VST3_SDK has four components inside:
VST2_SDK
VST3_SDK
copy_vst2_to_vst3_sdk.bat (for Windows)
copy_vst2_to_vst3_sdk.sh (for MacOS)
 

2. Download the VST3SDK3.6.7 FIXIT files from www.willpirkle.com/Downloads/VST3SDK3.6.7 FIXIT.zip
 

For Windows OS:

 

3a. Install the VST2 subfolders so that the VST2 wrapper will compile and work properly. Navigate to the VST3_SDK folder that contains copy_vst2_to_vst3_sdk.bat, then, double-click on the copy_vst2_to_vst3_sdk.bat file to run the copy mechanism.
 

4a. Inside the VST3SDK3.6.7 FIXIT folder you will see the Windows subfolder. Inside of it are the base library project files for VS2013 and VS2015, each inside its own subfolder. The folder you want to copy is the one named win inside the VS2013 or VS2015 folder – pick the one that matches your compiler.
 

5a. Navigate to the ..\VST3_SDK\base folder. Inside it you will see one subfolder named source. Copy the win subfolder into the base folder so that it resides along with the source folder. Your folder should now contain the two subfolders source and win like this:
 

..\VST3_SDK\base
source
win
 

6a. That’s all that needs to be done for the SDK; you now need to create your 4-layer deep heirarchy for you Make VST or Synth Book projects. To do this, create the following folder hierarchy inside the SDK’s public.sdk folder. You can name the sub-folders as you like, for example:
 

..\VST3_SDK\public.sdk\My Projects\VST Plugins\Windows
 

Then, place your Make VST and/or Synth Book project folders inside the Windows folder above. For example, the MiniSynth project folder would be at:
 

..\VST3_SDK\public.sdk\My Projects\VST Plugins\Windows\MiniSynth
 
 

For MacOS:

 

3b. Install the VST2 subfolders so that the VST2 wrapper will compile and work properly. Open a Terminal window and navigate to the VST3_SDK folder that contains the copy_vst2_to_vst3_sdk.sh file. Drag and drop the copy_vst2_to_vst3_sdk.sh file into Terminal. This will run the copy mechanism.
 

4b. Inside the VST3SDK3.6.7 FIXIT folder you will see the MacOS subfolder. Inside of it is a single folder called mac and this is the folder you will copy. It should work for both XCode6 and XCode7.
 

5b. Navigate to the ..\VST3_SDK\base folder. Inside it you will see the subfolder named source. Copy the mac subfolder into the base folder so that it resides along with the source folder. Your folder should now contain the subfolders source and mac like this:
 

..\VST3_SDK\base
source
mac
 

6a. That’s all that needs to be done for the SDK; you now need to create your 4-layer deep heirarchy for you Make VST or Synth Book projects. To do this, create the following folder hierarchy inside the SDK’s public.sdk folder. You can name the sub-folders as you like, for example:
 

..\VST3_SDK\public.sdk\My Projects\VST Plugins\MacOS
 

Then, place your Make VST and/or Synth Book project folders inside the Windows folder above. For example, the MiniSynth project folder would be at:
 

..\VST3_SDK\public.sdk\My Projects\VST Plugins\MacOS\MiniSynth
 
 

NO INTERFERENCE WITH CMAKE

The files you copied to prepare the SDK will not interfere with CMake, nor will they be modified or overwritten.
 

If you want to run CMake, then you will need to do some work. For Windows you need to run it from the command prompt, and for MacOS, you need to use Terminal. This means you will need to install CMake and go through the process of adding it to your system path so that you can run it from any directory. That process is slightly different for Windows vs. MacOS. Running CMake places the compiler-setup files inside of an inner folder that you must create named build and you can get the instructions for running CMake on the SDK at https://github.com/steinbergmedia/vst3sdk/wiki/Get-Started
 

One thing you should remember if you are using Windows & Visual Studio: when you run CMake, you provide it with both the compiler type, version, and target configuration bit-depth, for example:
 

cmake.exe -G”Visual Studio 14 2015 Win64″ ../
 

This will effectively bind your compiler-setup files to the bit-depth of the target VST3 plugins you will make. When you open the all-in-one Visual Studio project named vstsdk.sln, you will only see the configuration that you chose; here that would be x64. In order to make Win32 plugins, you would need to run CMake again, this time without the “Win64” and it will create new compiler-setup files for Win32 only, overwriting your existing compiler files. If you want to create both 32 and 64 bit plugins, you would really need to create two separate VST3_SDK folders – one for each bit-depth, or you would need to manually combine the compiler-setup files into one — if you do not have experience modifying these files, then don’t do it – you can easily wind up with a compiler file that will not run properly.
 

What I did was to manually combine both 32 and 64-bit configurations into the single .vcxproj file for the base library. Your Make VST or Synth Book projects already contain both 32 and 64-bit configurations, so you only need one VST3_SDK folder and one base library.