VST 3 Interfaces  VST 3.6.14
SDK for developing VST Plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
How to add/create your own VST 3 Plug-ins

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")
    2.2 When using CMake GUI App you can set by using the browser for the variable SMTG_MYPLUGINS_SRC_PATH your new location.
    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 
-4- Adapt the CMakeLists.txt files
    4.1 open the plug-in CMakeLists.txt file with a text editor:
    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:
    4.4 add this entry (your newly created folder):
-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!

Copyright ©2019 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.