VST 3 Interfaces
VST 3.6.14
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!