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")
     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!
Empty

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