Best Way To Make A Vst Plugin

If you are serious about mixing, a compressor is an essential tool that you can’t be without. There are a variety of software compressors that you can get your hands on, each with a different specialty and its own way of reacting to signals.

Go to the 'Options' menu and select 'Preferences'. Under 'Preferences', select the 'File Folder' menu. Click the 'Browse' button next to 'VST Plug-In Custom Folder'. Select the folder you would like Ableton to use for VST Plug-Ins. Today, there are so many bass VST plugins in the market optimized to produce all kinds of low-end variations with plenty customization options. For example, there are multi-sampled instruments plugins, futuristic bass solutions, synth basses and more. Most of these base VST plugins. The 25 best VST/AU plugin synths in the world right now: all the best soft synths you need in your DAW. 5 ways to get great tone in AmpliTube 5 3.

You could go the digital route if you’re looking for a beautiful, clear tone and open-end parameters. There’s also compression plugins that emulate analog gear if it’s a classic, warm sound you’re after. No matter what sound you’re trying to achieve, you’ll find a compressor that can help you get there. To help narrow down your choices, we’ve put together a list of some of the best compressor plugins that are currently available.

Softube has decided to make modular synthesis a lot more approachable and it’s easily one of the best vst plugins of 2021. Modular works just like hardware Eurorack systems, right down to the voltage standards (you can even patch out of your computer using an interface with DC-coupled outputs and interact with hardware systems). Waves Audio make some great VST plugins. But their catalog is huge and there’s a lot of overlap. Which Waves compressor is the best? What about reverb or EQ? I created this blog post to review what I consider to be the must have Waves plugins. Waves Audio was founded in 1992. Since then they have released tons of VST/AU/AAX plugins.

9 Best Compressor VST Plugins

1. FabFilter Pro-C 2

If you’re looking for an incredibly versatile compressor, check out the FabFilter Pro-C 2. You’ll find all the features you would have with a traditional compressor along with many extras. The Pro-C 2 offers lookahead gain reduction, Stereo Link control, mid-side processing, 4x oversampling, and eight distinct compression algorithms, all on an amazing interface.

With the variety of compression algorithms to choose from, you can run the gamut of compression from clean to colored for all of your mixes. You can achieve a wide range of sounds from these unique algorithms, which include Bus, Pumping, Vocal, Mastering, and Punch.

FabFilter has updated their I/O metering and gain reduction capabilities to ensure that your mixes adhere to loudness standards. You’ll be happy with how fast the compressor works without overwhelming your CPU. The Pro-C 2 is a one-stop shop for all your compressor needs.

Pros

  • Helpful sidechain EQ
  • A wide variety of compression styles
  • Exciting interface

Cons

  • Colored compression styles don’t really match up to vintage compressor plugins

2. Softube Tube-Tech Complete Collection

The Softube Tube-Tech Complete Collection comes with two EQs and a compressor that will help you get the job done. The stand-out in the collection is the Tube-Tech CL 1B, a classic compressor emulation that mixing engineers are drawn to. It’s often used for mixing vocals, but its capabilities extend far beyond that. If you’re looking for super smooth compression with an impressively transparent tone, the CL 1B is where it’s at.

Softube has copied the features found in the original hardware, and they’ve also included some additional parameters. These include release, threshold, gain, ratio, and attack parameters in addition to a parallel compression parameter. This means you won’t need to make an extra aux track for parallel compression of your signal. You can also take advantage of its sidechain low cut switch.

The Soft Tube-Tech C1 1B should be at the top of your list if you are looking for a vintage tube compressor plugin that will give you smooth and transparent results.

Pros

  • Super flexible
  • Authentic vintage controls
  • External sidechaining capability

Cons

  • Pretty pricey for what you get
Plugins

3. Tokyo Dawn Labs TDR Kotelnikov GE

If you’re looking for an affordable software compressor that can give you wideband dynamic control, the TDR Kotelnikov from Tokyo Dawn Labs is perfect for you. You might be familiar with the TDR Kotelnikov Feedback Compressor, which was the inspiration for a number of the controls found on this VST plugin. The control scheme is user-friendly with a basic, intuitive interface. The peak and RMS content also feature individual release controls. Its precise algorithms are comparable to pricier compressor plugins you can buy today.

If you want to take it up a notch with some extra features, you can fork out a little more for the Gentleman’s Edition. One notable feature on this version is the ability to set the compression ratio based on the incoming frequencies. You’ll also find a sidechain high-pass filter to help you achieve more precise compression.

This plugin stands out because it doesn’t try to copy any particular type of compressor. It’s a great example of a moderately-priced digital compressor with modern sounds and excellent features.

Pros

  • Super affordable
  • Lots of interesting parameters
  • Transparent digital compression

Cons

  • Not the best option for characterized compression
  • Doesn’t have an auto release feature

4. PSP Audioware PSP VintageWarmer2

PSP Audioware has developed a great reputation based on the quality of their wide range of plugins. The PSP VintageWarmer 2 stands out among their VST plugins because of how authentically it mimics analog equipment. The VintageWarmer 2 has your mixing and mastering needs covered if you’re looking for warm analog saturation and compression.

You’ll have access to three different plugins, including the MicroWarmer. This is the most basic of the three with all the standard compression controls. This is an ideal option for beginners as it’s super user-friendly and ideal for adding compression and saturation to individual tracks. The next option is the VintageWarmer, which is perfect for brick wall limiting and multi-band compression. It comes with some additional release settings and EQ shelves for frequency selection. It also won’t take up a lot of CPU. Finally, there’s the VintageWarmer 2 with its exciting FAT mode, which double samples the audio input and gives you a fatter overall analog sound.

You can expect for the VintageWarmer 2 to exhibit tape when overloading. No, it’s not the best option for a clean sound. However, you should definitely pick up this plugin if you want to exhibit complete compression, coloration, and saturation to your mixes.

Pros

  • Ideal for mixing and mastering
  • Awesome auto-release mode
  • Gorgeous analog sound

Cons

  • Not backwards compatible
  • Not the best option for clean compression

5. iZotope Ozone 9

You may already be familiar with iZotope’s awesome collection of audio restoration and mastering plugins. They have developed a great reputation based on these high quality, intuitive plugins. With the Ozone 9, you get incredible dynamics plugins that will give you ultimate control over your sounds.

In the Dynamics section, you’ll find a limiter/compressor plugin that will give you the ability to perfectly craft your sounds. It’s primarily a mastering compressor, so this means you’ll have extra tools than what you would find on a standard compressor. These include mid-side processing, look-ahead times, and advanced metering.

One cool feature is the built-in detection filter. This will help you determine what impact the incoming signal will have on the compressor’s algorithm. You also have the option of utilizing the high-pass mode if you want to use the compressor only with signals above the cutoff point. Whatever you’re trying to achieve with a compressor plugin, the Ozone 9 can get you there.

Pros

  • Ideal for mixing or mastering
  • Great selection of advanced features
  • Very versatile

Cons

  • Might be too pricey if you’re just wanting a traditional compressor plugin

6. McDSP 6030 Ultimate Compressor

If you’re an indecisive mix engineer, the McDSP 6030 is a great set of compressors for you. You’ll get a total of 10 different compressors in a user-friendly, modular format. It’ll give you just what you want from dynamic range control technology. McDSP built some of these compressors from scratch, and the rest are emulations of the original hardware.

Beginners will have an easy time working with the 6030, and more advanced mix engineers will find all the functionality needed for their compression needs. Whether you are aiming for clear or colored compression, you’ll find plenty of options to work with in the McDSP 6030.

Producers and mixers will be happy to know that it won’t take up much CPU at all. It also gives you sidechain support as well as mono and stereo versions. So if you’re not sure which compression plugin to go with, the McDSP 6030 has pretty much all your bases covered in one bundle.

Pros

  • User-friendly interface
  • Huge assortment of compression types
  • Unique modular format

Cons

  • Ratios don’t level out from unit to unit
  • You won’t find a numeric dB read out on the output knob

7. Sonible smart:comp

AI plug-ins have gotten more and more popular recently, and for a good reason. Both beginner and advanced music producers can take advantage of all these plug-ins have to offer. One great example of a spectral compressor that benefits from AI technology is the Sonible smart:comp. Most of the compressor plug-ins in this arena will give you sticker shock, but this option is surprisingly affordable.

The smart:comp gives you a user-friendly interface and won’t overwhelm your CPU. You can choose from nine distinct AI processing types to meet all your compression goals. Especially if you’re a beginner, you’ll appreciate the spectral graph feature, which shows the compression in real-time. This will help you see how exactly the compression is affecting the audio.

You’ll get all the compression controls you would expect along with a sidechaining feature. If your goal is colored compression, you’ll have to look elsewhere. But this is an awesome option if you’re in the market for a compressor with AI technology and crystal clear sounds.

Pros

  • Great value
  • User-friendly design that’s perfect for beginners
  • Awesome AI Algorithms

Cons

  • Doesn’t have a lot of presets

8. Boz Digital Labs Manic Compressor

Boz Digital Labs has outdone themselves with the Manic Compressor. There’s tons of options to help shape your sound in a number of different ways. You’ll find six different compression types, which you can switch between seamlessly without changing the settings. This will help you to mix efficiently while maintaining your perspective.

The Manic Compressor features authentic parallel compression so that you can achieve a modern compressed tone. You’ll also have access to two EQ sections along with several Drive options to further shape your compressed signal. One cool feature is the three-position Beef switch, which gives you the ability to adjust how the compressor responds to the input signal. This lets you dial-in either a fatter or thinner sound.

You’ll also find a few additional parameters like the Tone Signal Application and the Mid-Side panner to give you additional control over your sound.

Pros

  • Tone shaping and sidechaining capabilities are built in
  • Impressive parallel compression
  • Six different compression types

Cons

  • EQ is not super precise
  • Other parts of the plugin don’t offer parallel compression

9. Waves CLA Classic Compressors

Waves collaborated with Chris Lord-Alge, a top mixing engineer in the rock industry, to give you access to some of the best sounding compressors in music history. CLA Classic Compressors includes the CLA-76 Blacky, CLA-76 Bluey, CLA-2A, and CLA-3A. These all get their inspiration from classic hardware pieces that are still utilized in professional studios worldwide.

The CLA-2A is modeled after the LA-2A optical compressor. It gives you incredibly smooth and transparent compression that works ideally with vocals or bass. The CLA-3A emulates the classic LA-3A solid state compressor, which was popular in the 70s. In addition to its transparent compression curve and speedy response time, it gives your signal some harmonic distortion. This is a perfect compressor plug-in for bass, electric guitars, and vocals.

Best Way To Make A Vst Plugins

Finally, the CLA-76 gets its inspiration from the 1176, an A line level limiting amplifier from the 60s. You can choose between the distinctive Blacky and Bluey versions. Both options offer modeled pre-amp distortion, fast attack times, and an awesome All-In mode if you want to take your compression to the extreme. They both work with almost any instrument you can think of, but they are particularly suited for drums.

If you want to have a selection of classic compressors at your fingertips without going over budget, the CLA Classic Compressors bundle is an impressive option.

Pros

  • Can be used with all types of instruments
  • Authentic vintage analog compression
  • Access to four distinct compressors

Cons

  • “Analog” hiss might get on your nerves
  • Lacks transparency

Compressing On

Compression is an indispensable tool for modern music mixers and producers. There is no shortage of compressor plug-ins out there with a wide range of features and functionalities to meet your every compression need. With options ranging from standard to multi-band to analog to digital, all your bases are covered.

There’s no such thing as too many compressors, so add a few of these to your collection to expand your mixing horizons.

Introduction

Microsoft announced that it would offer Visual Studio Express free of charge forever. Though the Express version of Visual C++ (hereafter referred to as VC++) has some limitations, it’s still a great tool and it’s nice to see Microsoft taking some steps to support the developers writing software for their platform. This document will describe how to get VC++ installed and building VST plugins. It assumes that you have prior experience developing VST plugins, and are familiar with the structure and layout of the VST SDK.

If you are trying to write VST’s in a language other than C++, than this guide is not for you. There are lots of other frameworks out there for developing VST plugins in other languages (such as C#, Java, Ruby and Python, just to name a few).

This tutorial will walk you through the process of installing and configuring the tools you’ll need to build your own VST plugins with Visual Studio, and creating a simple VST plugin with optional support for a VSTGUI frontend. This guide only covers building VST 2.x plugins, as the VST3 SDK is not very widely supported yet. Note that Steinberg’s website is a bit confusing and it is easy to accidentally download the wrong version of the SDK, so double-check to make sure that you have the 2.4 SDK.

Download required packages

  1. Steinberg’s VST SDK, which requires you to make a free Steinberg Developer account.
  2. Microsoft’s Visual C++. This guide uses the 2010 Express edition, as it was the latest version at time of writing.
  3. Libpng and zlib (optional)

Install Visual C++

If you already have a working installation of VC++, you can skip this step. Otherwise, download VC++ and install it. The standard installation should be OK, but you can choose to perform a custom installation if you don’t want documentation or other stuff installed with it. Before installing VC++, you must remove any other versions of VC++ on your computer.

Next, download and install the Platform SDK, which will provide you with the standard header files and libraries you’ll need to build software. You may choose to install VC++ anywhere on your hard drive, but the default location is C:Program FilesMicrosoft Visual Studio 10.0.

Creating your project

Create a new project of type “Class Library”, which we’ll call YourProjectName. In the rest of this tutorial, whenever you see YourProjectName, replace that text with the actual name of your project.

In Visual Studio 9, you’d make a new project with the wizard found at File -> New -> Project. Select Visual C++ -> Win32 Console Application, and choose a directory for your project. When the wizard opens, press “Next” and select DLL as the Application Type. Also check the “Empty Project” box.

If you prefer not to start with an empty project, then you can remove all of the files that VC++ creates for you, but keep the resource.h and YourProjectName.rc files, and remove any references to these files (such as YourProjectName.ico being listed in the resource file).

Add Source Code to the Project

If you already have source code for your plugin, simply add it to the project. Otherwise, you need to create the following files:

  • YourProjectName.cpp
  • YourProjectName.h
  • resource.h (Only needed if building a plugin GUI)
  • YourProjectName.rc (Only needed if building a plugin GUI)

You will also need to add the files from the VST SDK, which includes everything under the vstsdk2.4/public.sdk/source/vst2.x and vstsdk2.4/pluginterfaces/vst2.x directories. I usually prefer to manually make groups for these directories and drag the files to the groups from Explorer, as dragging the entire “vstsdk2.4” directory to VS can cause it to choke when it tries to add a bunch of unused files to the project.

To start out with, the plugin’s entry point header file (YourProjectName.h) should look something like this:

The accompanying class definition (YourProjectName.cpp) should look something like this:

Note that your project won’t compile just yet, but be patient!

The above code samples are simply blank entry points which don’t do anything exciting. The VST SDK offers lots of methods which you can override in order to do things like setting parameters, receiving MIDI messages, and so on. These things are beyond the scope of this tutorial; if you don’t know what code to put inside of processReplacing, try checking out the “again” example distributed within the VST SDK in the public.sdk/samples/vst2.x/again folder.

You must also create a module definition file for your project, named YourProjectName.def. Usually this file is placed in the same directory as the VC++ project file, but you may place it somewhere else so long as this definition matches the Module Definition File settings in the Linker section of the project preferences. This is just a plain-text file which should contain the following text:

Configure build settings

Best Way To Make A Vst Plugin

Go to the project settings either by right clicking on the project in the solution explorer and then selecting “Properties”. Make the following changes to the project for all build configurations:

  • General
    • Character Set: Not Set
    • Common Language Runtime Support: No Common Language Runtime Support
  • C/C++
    • General:
      • Additional Include Directories:
        1. (or wherever you put the VST SDK)
        2. Your source code directory
        3. Any other directories which you may have header files stored in Global SDK directories, such as
    • Preprocessor:
      • Preprocessor Definitions:
      • For Debug builds you may also wish to add
      • If you wish to use PNG graphics for a VSTGUI frontend, add
      • To avoid lots of compiler nags and warnings, define
      • In some cases, you may also need to define
    • Code Generation:
      • Runtime Library: Multi-threaded. Multi-threaded debug may be used for debug builds. This will build the VC++ common runtime library statically into your plugin, increasing its size by approximately 200Kb. If you choose to use the CRL as a dynamic library, then you must also distribute a copy of the CRL with your application, which complicates deployment and distribution.
    • Precompiled Headers:
      • Precompiled Header: Not Using Precompiled Headers. Yeah, this makes rebuilding a bit slower, but will avoid a bunch of weird errors as you are getting your project set up. Once you get the project building you can revisit this step.
  • Linker
    • General:
      • Additional Library Directories: Add any other library directories which your project depends on.
    • Input:
      • Additional Dependencies (for Release builds):
        • libcmt.lib
        • uuid.lib
        • shell32.lib
        • ole32.lib
        • gdi32.lib
        • User32.lib
        • advapi32.lib
        • zlib.lib (only if you are building with a GUI)
        • libpng.lib (only if you are building with a GUI)
      • Additional Dependencies (for Debug builds):
        • shell32.lib
        • msvcrtd.lib
        • ole32.lib
        • gdi32.lib
        • User32.lib
        • advapi32.lib
        • zlib.lib (only if you are building with a GUI)
        • libpng.lib (only if you are building with a GUI)
      • Ignore Specific Default Library (for Release builds):
        • msvcrt.lib
        • libc.lib
        • msvcrtd.lib
        • libcd.lib
        • libcmtd.lib
      • Ignore Specific Default Library (for Debug builds):
        • libcmt.lib
        • libcmtd.lib
        • msvcrt.lib
      • Module Definition File: YourProjectName.def

Adding support for VSTGUI (optional)

Include VSTGUI support in your plugin, simply add the VSTGUI files into your project in addition to your own editor class. At a very minimum, these are:

  • aeffguieditor.cpp
  • vstcontrols.cpp
  • vstgui.cpp

Adding support for PNG graphics (optional)

If you would like to use PNG’s in your plugin instead of BMP graphics, you will need to also build your own version of libpng and zlib. Download the source code for both libraries from the links given in the “Requirements” section of the document and place them in the same directory. There is a Visual Studio project for libpng which will also build zlib for you; it is located in the projectsvisualc71 directory. In order to get the projects to build correctly, you’ll need to rename the source code directories to simply “libpng” and “zlib”, removing the version numbers from the directory name.

When you open the project up, VC++ will run you through the project conversion wizard. Convert the project, and change the “Runtime Library” settings in both libpng and zlib to be Multi-Threaded, as described above. Unless this step is performed, the dependency on the CLR will be present in your project. Next, choose the LIB ASM Release or LIB Release build style and build the project; if you build the libraries as DLL’s, you will be unable to statically link them into your plugin. The project should build ok, but throw a few errors when attempting to run the pngtest files. You can ignore these problems, as the libraries will still be correctly compiled and can now be linked to your project.

Visual Studio doesn’t need to have the libraries within your actual project. Instead, place the libraries in a directory of your choosing and be sure to add this path to the list of “Additional Library Directories” in the Linker preferences for your project. You may choose to place the libraries in the same directory as the Microsoft Platform SDK stuff, but I personally prefer to keep them in a separate directory checked into version control. Also be sure to add references to libpng.lib and zlib.lib for your project in the “Additional Dependencies” section of your Linker preferences for the project.

The path must be relative to the location of the project file. Then, in resource.h, add the following preprocessor definitions:

Now you can use IDB_BITMAP1 (or any other name of your choosing) in your code when creating new CBitmap objects.

I have heard some reports of vstgui.cpp not compiling properly due to the missing symbol png_set_expand_gray_1_2_4_to_8. Changing png_set_gray_1_2_4_to_8 to png_set_expand_gray_1_2_4_to_8 in vstgui.cpp seems to fix this issue.

How To Make A Vst Plugin Folder

Final considerations

VC++ ships with an optimizing compiler, but sometimes the compiler will choke on certain files and optimization must be disabled. In particular, I have experienced this with Laurent de Soras’ FFTReal libraries, since they are written as template classes. In general, however, optimization is a good idea, as is “Eliminating Unreferenced Data” (in the linker settings). The “Whole Program Optimization” setting appears tempting, but usually results in dozens of build errors and problems, so it’s best to avoid this. Also, be sure to use the optimization features of this compiler and linker, as they can greatly boost runtime performance.

Create Vst Plugin

If you are developing on a multi-core machine, then you might need to disable parallel builds by setting the number of parallel builds to 1 under Tools -> Options -> Projects and Solutions -> Build and Run. In past verisons of VS, I noticed that the compiler does not always link projects in the order one would expect, which caused odd errors during linking about missing symbols. However, VS2010 users probably shouldn’t need worry about this setting. Free vst 64 bit drum kit.

Unresolved symbols when linking

Sometimes you may see errors like the following:

If you are getting errors in your build about missing symbols, make sure that you double- and triple-check the debug and release configurations for the library configuration above, since some of the libraries which are used in one build style are specifically excluded from the other. Also, when you close and re-open the project’s build properties, VS always “forgets” the last selected build style, so remember to check and set this appropriately.

Also, you should check to make sure that the Platform SDK was correctly installed on your system and that your project’s include and library paths are pointing to these directories.

Unresolved external symbols

If you are seeing errors like this:

Then this most likely means that the file which contains the given symbol is not correctly added to the VC++ solution.

Writing Vst Plugins

Linking errors with symbols defined multiple times

This is undoubtedly one of the most frustrating problems which can occur when building a VST in VC++. If you are seeing error messages like this, then it most likely means there is some problem with your library configuration:

How To Create A Vst

Most likely, the libcmt and msvcrt libraries are being included incorrectly in your build. Double-check the library list above, keeping in mind that the recommended configuration uses libcmt for release builds only, and msvcrtd for debug builds only.