|
VST 3 Interfaces
VST 3.6.12
SDK for developing VST Plug-in
|
The SDK provides a HelloWorld example, you can start from this example to create a new VST 3 Plug-in:
-1- Just copy the folder VST_SDK/my_plugins containing the HelloWorld example into your wanted folder for developing:
for example:
copy VST_SDK/my_plugins to D:/Users/Me/Desktop/development/my_plugins-2- Now you have to indicate cmake to add this new location to the projects, there is 3 possibilities:
2.1 Search in VST3_SDK/CMakeLists.txt the comment "# Here you can add Your VST3 plug-ins folder" and
set the path according to the folder location, for example:
set(SMTG_MYPLUGINS_SRC_PATH "D:/Users/Me/Desktop/development/my_plugins")
or
2.2 When using CMake GUI App you can set by using the browser for the variable SMTG_MYPLUGINS_SRC_PATH your new location.
or
2.3 Call cmake with the option -DSMTG_MYPLUGINS_SRC_PATH=D:/Users/Me/Desktop/development/my_plugins-3- You can duplicate the helloworld folder for your plug-in
for example:
copy D:/Users/Me/Desktop/development/my_plugins/helloworld
to
D:/Users/Me/Desktop/development/my_plugins/MyDelayPlugin-4- Adapt the CMakeLists.txt files
4.1 open the plug-in CMakeLists.txt file with a text editor:
D:/Users/Me/Desktop/development/my_plugins/MyDelayPlugin/CMakeLists.txt 4.2 change the target name:
set(target helloworld) => set(target MyDelay) 4.3 open the folder CMakeLists.txt file located in my_plugins with a text editor in order to add your plug-in to the project:
D:/Users/Me/Desktop/development/my_plugins/CMakeLists.txt 4.4 add this entry (your newly created folder):
add_subdirectory(MyDelayPlugin)-5- Generate the project by using the command line or the cmake editor (cmake-gui) like described here:
How to use cmake for Building VST 3 Plug-ins. Your new plug-in should appear in the project afterwards.-6- Now you have to adapt some uids and naming to make your plug-in unique (and not a duplicate of helloworld!)
6.1 Rename all strings for your plug-in from HelloWorld to MyDelay
for example: HelloWorldProcessor::HelloWorldProcessor to MyDelayProcessor::MyDelayProcessor 6.2 Open the file MyDelayPlugin/include/plugids.h and create new uids for processor and for controller:
you can use GUID creator tools like https://www.guidgenerator.com/ :
static const FUID MyProcessorUID (0x2A0CC26C, 0xBF88964C, 0xB0BFFCB0, 0x554AF523);
static const FUID MyControllerUID (0xB9DBBD64, 0xF7C40A4C, 0x9C8BFB33, 0x8761E244); 6.3 Open the file version.h and adapt the strings like this:
#define stringPluginName "My First Delay"
#define stringOriginalFilename "MyDelay.vst3" 6.4 adapt my_plugins/MyDelayPlugin/resource/info.plist by renaming:
<string>helloworld</string> => <string>mydelay</string>
<string>com.steinberg.vst3.helloworld</string> => <string>com.steinberg.vst3.mydelay</string>-7- Now you could really start to code for your Effect/Instrument
7.1 add parameters in plugcontroller.cpp
7.2 adapt your process algo in plugprocessor.cpp
7.3 add persistence in plugprocessor.cpp
7.4 add UI (check SDK examples using VSTGUI)
7.5 happing coding!