Designing Vst Plugin In Visual Studio
ANTI TRANSPIRANT is a wonderful analogue sounding synth VST Instrument for. The latest VST3 SDK (3.6.9) provides instructions to build a VST that doesn't live inside the SDK itself which is a big enhancement from prior versions which did not provide this capability. That being said, the solution introduced is still backward in my mind: you need to tell the SDK where your plugin is. We create and brand your very own custom Drum VST/AU plugins. If you’re a producer, DJ, or company, looking to sell and distribute your very own VST/AU plug-ins, We are here to help you and the process is very easy, We have created a simple but yet effective GUI design for you to use. When you purchase one of our pre-define packages, You will. If your plugin fails validation, the compiler will NOT create the final VST plugin. This is generally good as a plugin that fails validation will likely crash the VST client which may result in it being black-listed from future loads! Kontakt’s huge collection of virtual instruments and effects is the gold standard when. Ready-made Xcode / Visual Studio Projects Create VST, AudioUnit, VST3 and RTAS formats from one codebase: Just choose the plugin format and click run! Create 32/64-Bit executables Make your plugin run as a standalone Win/Mac application.
Virtual studio technology (VST) is an audio plug-in software interface that integrates a software synthesizer and effects into digital audio workstations. It uses digital signal processing to simulate a traditional recording studio’s hardware in software.
There are both commercial and freeware versions of VST plug-ins available in the market.
A free MIDI Loop Generating Plugin with unlimited melodies, chord progressions, and drum loops. Choose from preset scales and rhythms available in 9 different octaves. Control your VST instruments and create randomized sequences. Tested and works with Ableton, FL Studio, Cubase, Reaper, and Studio 1. System Requirements and Compatibility.
Think of VST plugins as an affordable way of making your home studio sound like an expensive commercial studio setup.
Designing Vst Plugin In Visual Studio Tutorial
- 10 Best Opto Compressor Plugins (VST,AU,AAX) For Transparent Sound
- The 15 Best Delay Plugins For Mixing (VST, AU, AAX)
- The 33 Best WAVES Plugins Of 2020
- 29 Best Sound Design VST Plugins In 2020
- 17 Best Free EQ VST Plugins
What are the Best Tools to Develop VST Plug-ins?
I have listed a couple of libraries and frameworks that can handle most of the coding required in developing VST plug-ins.
JUCE Cross-Platform C++ Library
It is supported by the following platforms: OSX, Windows, Linux, iOS, and Android. It is free for non-commercial releases, but the commercial license works our best. It also covers 64bit systems.
Pricing of its commercial license
- Commercial license for a single product – $521
- Commercial license for any number of products – $912
- Upgrade from single-product version to unlimited version – $455
Despite the cost of the license for retail releases, it is the only library/framework option for a 64bit cross-platform.
Watch this video on how to create an awesome distortion VST/AU Plug-in using C++ / JUCE Framework
SynthEdit
SynthEdit is a framework and a visual circuit design that allows you to create your own synths with only drag & drop without programming. Therefore giving you the flexibility of using your DSP algorithms inside the modules.
At the time of writing this the 64-bit version is in Alpha and its creator Jeff McClintock is working on the ability to exporting it to AU. It’s got a ton of community-produced modules and works great with the 32-bit version. It is soft on your wallet – goes for $70.
Check out this video how SynthEdit work –
FL SynthMaker
FL SynthMaker aka flowstone comes free with FL studio.
It has a straightforward drag-and-drop graphical interface and a wide range of components. You can use it to code modules and DSP in Ruby and comes with loads of examples to get started quickly and its ability to assist you in creating a prototype within a short time is a plus.
How Are VST Plugins Made
You’ll be required to source for information from different sources depending on what your specific goals are.
For beginners, before learning how to code VST plugins, I would advise you to check out these environments:
- SynthEdit, SynthMaker, Reaktor, Max/MSP, PureData
- CSound, SuperCollider, Bidule, Usine
These environments allow you to build something unique without having to write low-level code which most people find difficult to master. You’ll be required to know different areas, and if you already have some, then you’ll only require to fill in the gaps.
Check out this video to learn how to build and design your VST Plugin using JUCE
Audio Basics
Understanding sound and its properties are essential before embarking on the development of VST plug-ins. I have outlined a couple of online resources you should go through them:
Fundamentals of Digital Audio Processing
The Scientist and Engineer’s Guide to Audio Signal Processing
Discrete-time systems, sampling theorem, audio DSP, maths, psychoacoustics, sound analysis, and sound modeling.
Signals, Sound, and Sensation by William M. Harmann
The book got an introductory text on psychoacoustics and the readers on a journey through the mathematics of signal and processing from its beginnings.
- 6 Best Passive EQ VST Plugins of 2020 (SPL, UAD, Waves, IK Multimedia)
- Top 6 Spectrum Analyzer Plugins Of 2020 – Spectral Analysis Tools
- 37 Best FREE VST Compressor Plugins For Mixing & Mastering
- 11 Best Granulizer Plugins 2020 for a Future Sound Design
- 10 Best Noise Gate Plugins (VST,AU, AAX) of 2020
Programming
Many professional VST plugins available on the market have been written in C++.
There are also several other languages you can use, but each got their pros and cons.

Learning how to develop VST Plug-ins as you’re learning to program isn’t easy. I usually recommend learning how to program before starting to create VST plug-ins.
The Audio Programming Book by Richard Boulanger – This book comes highly recommended for those who want to learn audio plug-ins.
BasicSynth by Daniel Mitchell – This one shows you how to create a custom synthesize in software using C++ programming language.
For more further information about VST development, you should definitely check these resources:
Audio Software (VST Plugin) Development with Practical Application
JUCE framework for VST-plugin development
Maths
You should have some basic engineering mathematics such as linear algebra, complex analysis, among others. Visit this website to get practical algebra lessons: www.purplemath.com.
Digital Signal Processing
You must know what an FFT routine is and why it is useful. Advanced content focusing on audio will usually require you to have at least a conversational level of DSP understanding.
Check out these resources on DSP:
Online and Free:
The Scientist & Engineer’s Guide to Digital Signal Processing
Print:
Understanding Digital Signal Processing by Richard G. Lyons
Audio Digital Signal Processing
Audio DSP extends on core DSP concepts to include the way digital signal processes apply to digital audio. It covers subjects such as audio filters, delays, and non-linear effects; think compression.
DAFX by Udo Zolzer is a book that comes highly recommended and covers many aspects of audio DSP technique.
Check out these online resources to get more info:
DSP Audio Classics
DSP Audio Algorithm Notes by XOXOS
Below are threads on VST Plug-ins I found from a couple of online discussion forums:
Advice for someone with ZERO experience
Developing a Vst Effect Plugin Where To Start?
What is your development setup?
Books
I have listed some books that can serve as a resource in your pursuit of learning how to make VST plug-ins. /basic-concert-piano-vst-free.html.
Check them here:
Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio Units
Audio Plug-ins frameworks
JUCE
JUCE is a highly recommended and all-encompassing C++ class library for developing cross-platform software. JUCE includes components for VST, AU, and RTAS. You should have at least a basic grasp of JUCE if you intend to use C++ for the development of your VST plug-in.
IPlug
This is a C++ framework for developing audio plug-ins and GUIs.
VST.NET
It allows VST Plugin developers to write Plugins in any .NET language. It also eases the transition between the C++ and .NET world and its framework built on top of the interop layer provide a clear and structured architecture. Feel free to check this Delphi library for creating VST plugins, VST hosts but also ASIO applications:
Delphi ASIO and VST
It also includes the algorithm for filters and dynamics.
- The 6 Best Ring Modulator VST Plugins in 2020 KiloHearts, Melda
- 7 Best Vari-Mu Compressor Plugins of 2020 Arturia, Manley, IK Multimedia
- 7 Best Autopan VST Plugins 2020 CableGuys, Melda, Waves, Soundtoys
- The 6 Best Frequency Shifter VST Plugins Of 2020
What is the best programming language for the VST plugin?
C++ is one of the best programming languages for creating VST Plug-ins, and the reason for this is that C++ has a wide range of frameworks and libraries that work so well in creating VSTs. Read more What’s the Best Way How To learn C++?
The WDL-OL library makes C++ an attractive programming language for VST plugins because it helps you with the following:
- Creating multiple formats (VST, AudioUnit, VST3, and RTAS) from one codebase: Just choose the plugin format and click “run.”
- Create both 32-Bit and 64-Bit executables.
- Run your plugin as a standalone application (Windows or Mac). It means you don’t technically need a DAW to use the plugin.
- Most GUI controls used in audio plugins (knobs, buttons, visuals).
Understanding what VST Plugins are and their role within the music production industry provides you with the knowledge of identifying the most effective tools for your music production outfit. It makes your music sound like it was produced in a million-dollar music studio.
In this post we’ll install the WDL-OL library and its dependencies. We will then run one of the demo projects to make sure everything’s working fine.
Most of this is also covered in the videos by Oli Larkin:
The following section is Mac-specific. The guide for Windows is below.
Setup on Mac OS X using Xcode 4
Before we can get started, we have to download and install a few things. This part is a little laborious, but you only have to do it once.
Prerequisites
- If you don’t have Xcode installed, download and install it.
- Download the VST3SDK. You will have to register for an account first.
- Download the Audio Tools for Xcode. In Xcode’s application menu, click Open Developer Tool → More Developer Tools… (or click here). Find Audio Tools for Xcode in the list, download and install it. There’s a different version for different OS X versions, make sure you get the right one.
- Download RtAudio (includes the ASIOSDK files we need).
- If you don’t have git, make sure you install it first. It’s worth it!
Downloading WDL-OL
Now open a Terminal. Type the following lines to create a new folder inside your home directory and go into it:
Let’s get WDL-OL:
You may want to copy & paste the last line. Don’t forget the dot at the end! It ensures that you’re using the same version of WDL‑OL that’s used for these tutorials. You should have a new subfolder called wdl-ol.
Adding the Dependencies
Go into ASIO_SDK and copy the .cpp/.h files from RtAudio’s include folder here. Unzip the VST3SDK, and copy the files aeffect.h and aeffectx.h from the folder pluginterfaces → vst2.x into WDL-OL’s VST_SDK subfolder. Apart from that, You only need the base/source, pluginterfaces and public.sdk/source folders for VST3. Copy them like this:
Note that you’ll have to create the public.sdk folder by hand. This is what your folder structure should look like:
Now open common.xcconfig (it should open in Xcode) and make the following changes:
You can also see that we’re going to use Mac OS X 10.5 as both BASE_SDK
and MACOSX_DEPLOYMENT_TARGET
. Music producers and especially recording studios are often very lazy about updating their operating system: They don’t need any new features, but having the studio disfunctional for a few days due to updating problems could cause big losses.
Actually, the deployment target is the version your users will need, but I prefer to set the base SDK to the same version as well.
The 10.5 SDK isn’t included with Xcode 4. If you already have it installed, skip to Running the Example Project. If you don’t have it, read on:
Installing the 10.5 SDK
To get the 10.5 SDK, you need to download Xcode 3.2.6. Once you have it downloaded, mount the .dmg file, open Terminal.app and enter:
A Finder window will open and there will be a file called MacOSX10.5.pkg. Double-click it. If you’re using OS X 10.8 or later, it’ll show a message saying that it can’t install software from an unidentified developer. In that case, right-click the file, choose Open in the menu, and confirm that you really want to install the software. When installing, choose change install location and option-click on the drive you want to install to, so that you can specify a folder. Install it to the Downloads folder inside your user folder, for example.
After that’s done, you’ll have a new folder called MacOSX10.5.sdk in the location you selected. In Terminal.app, type:
Again, a Finder window will open. Drag the MacOSX10.5.sdk folder in there. After restarting Xcode, you should now have the old SDK available in Xcode 4. Make sure you keep the MacOSX10.5.pkg around somewhere: If you update Xcode to a newer version, you’ll probably have to do this step again.
If you have any problems installing the 10.5 SDK, please leave a comment and I’ll be happy to help.
Running the Example Project
Back in your terminal, go to the examples folder:
Run the duplicate script to create your first plugin (replace YourName with your name):
You will notice that there’s a new folder MyFirstPlugin. Go into it and open MyFirstPlugin.xcodeproj. Select the APP Target:
Now there’s a small bug in WDL-OL where the standalone app doesn’t output any sound unless you choose a different audio input. Fortunately that’s easy to fix: In Xcode’s project navigator, open Other Sources → OSX App Wrapper → app_main.h. Change line 34 (the one with #define DEFAULT_INPUT_DEV
) to this:
Click Run. You will get a few linker errors:
These are easy to fix. Go to your project’s build setting (make sure you select your project, not a specific target) and set the value for Implicitly Link Objective-C Runtime Support to No:
Designing Vst Plugin In Visual Studio Plugin
Click Run again. After a few seconds, you should see your first plugin run as a standalone app:
Designing Vst Plugin In Visual Studio Software
Validating the AudioUnit version without Logic
If you don’t own Logic, you can use Apple’s free auval
tool to check whether your plugin’s AU version is working correctly. Make sure you’ve successfully built the AU target, open a Terminal and enter:
It should output a line similar to this one:
If it doesn’t give any output, try this.
Troubleshooting
Visual Studio Plugin Download
If Logic (or auval
) doesn’t find the AU version (and other hosts like REAPER see it): Go into the Build Settings, and make sure that the AU target is selected in the upper left. Search for “active arch”, and the list should only show one entry: Build Active Architecture Only, which has the value: <Multiple Values>. Change that to No. This way, 32- and 64-Bit will be compiled even in Debug mode. After that, run Product → Clean (Cmd+Shift+K), build again and it should work.
Setup on Windows using Visual C++ 2010 Express
First, install Visual C++ 2010 Express. Visual Studio 2012 has been reported to work, but I can’t test it on my system. After that, install Git for Windows, using the default settings. I used version 1.8.4. Run Start → Program Files → Git → Git Bash. A terminal window will open. In that window, run the following commands:
Studio One 4 Vst
To paste into the window, right-click the title bar and chosse Edit → Paste:
Now copy all the VST2/VST3/ASIOSDK files into the right folders, as described above. Install Python using the default settings. I used version 2.7.5.
To be able to build VST3 plugins, we have to create the VST3 folder. Run this command in the terminal:
Now (in the terminal), navigate to the IPlugExamples subfolder:
Run the duplicate script using the Python you just installed:
Best Plugins For Visual Studio
You’ll get a new folder MyFirstPlugin. Go into it and open MyFirstPlugin.sln. Ignore the warning, it just means that you can’t compile AAX and TDM formats. In the project explorer on the left, make sure MyFirstPlugin-app is shown bold:
If it isn’t, right-click it and choose Set as StartUp Project. Now press the F5 key, and you should see a window like this:
Lovely, right?

Troubleshooting
If you get a fatal error LNK1123 when building, you may have to disable incremental linking: Right-click the MyFirstPlugin-app project, click Properties and go to Configuration Properties → Linker (General) → Enable Incremental Linking → “No (/INCREMENTAL:NO)”.
If that doesn’t solve it, try installing Visual Studio 2010 SP1. You may also want the Compiler Update to get 64-Bit support.
If you get warnings that CreatePackage.bat […] exited with code 1, don’t worry about it (unless you want to build an AAX plugin). The warning just means that the AAXSDK isn’t there.
The warning Cannot open include file: ‘ForcedInclude.h’: No such file or directory means that the RTASSDK wasn’t found. If you’re not trying to build RTAS, you can ignore this.
If you have any other problems, feel free to leave a comment! Next time we’ll examine the code.