Creating a plug-in with VST 3 SDK as an external project
On this page:
Related pages:
Goal
This is a simple Hello World VST 3 FX plug-in to demonstrate how to use the VST 3 SDK as an external project.
This plug-in was generated with the VST 3 Project Generator and it is available here https://github.com/steinbergmedia/vst3_example_plugin_hello_world
Part 1: How to clone and build
Open a command prompt and do the following:
git clone https://github.com/steinbergmedia/vst3_example_plugin_hello_world.git
mkdir build
cd build
cmake ../vst3_example_plugin_hello_world
cmake --build .
Part 2: Adapting the helloworld example
-
This example is there mainly to demonstrate how to use VST 3 SDK as an external project, we highly recommand to use the Project Generator to start from scratch.
-
In the following explaination we try to show you how to modify the source code to build your plug-in on the helloworld example.
-
Now you have to adapt some uids and naming to make your plug-in unique (and not a duplicate of helloworld!)
-
Rename all strings for your plug-in from HelloWorld to MyDelay (for example):
- HelloWorldProcessor::HelloWorldProcessor to MyDelayProcessor::MyDelayProcessor
-
Open the file vst3_example_plugin_hello_world/include/helloworldcids.h and create new uids for processor and for controller: you can use GUID creator tools like https://www.guidgenerator.com:
static const FUID kHelloWorldProcessorUID (0x2A0CC26C, 0xBF88964C, 0xB0BFFCB0, 0x554AF523); static const FUID kHelloWorldControllerUID (0xB9DBBD64, 0xF7C40A4C, 0x9C8BFB33, 0x8761E244);
- Open the file version.h and adapt the strings in the following way:
#define stringOriginalFilename "MyDelay.vst3" #define stringFileDescription "MyDelay VST3"
- Open the file helloworldentry.cpp and adapt string:
#define stringPluginName "My First Delay"
-
-
Now you can start to code for your effect/instrument (see Code your first plug-in for a step-by-step explanation)
- Add parameters in helloworldcontroller.cpp
- Adapt your process algorithm in helloworldprocessor.cpp
- Add persistence in helloworldprocessor.cpp
- Add UI (check SDK examples using VSTGUI)
-
Happy coding!