How to test VST/AU plugins using PluginDoctor
Have you ever wondered how exactly your favorite audio plugins process your sound? What effects do they give to your sound? Why they sound so good?
Many of us are looking on great UI and listen to the final sound that plugin produces. But behind all that there are math algorithms and a bunch of programming work. Of course, we couldn’t see the source code of audio plugins because they are packaged as a binary. But we can test them using a “black box” approach.
Short review of PluginDoctor
PluginDoctor is a simple cross-platform application that can analyze your VST and AU plugins. There are 2 versions of this application — demo and full. Demo version has the same tools as full, but sometimes it is blocked for 30 seconds and has limitation to load only 1 plugin at a time. The demo of PluginDoctor can be downloaded here.
Features (taken from official website) :
- Highest quality, double precision FFT engine, independent stereo channel analysis
- Linear analysis: magnitude and phase response using delta or random input signal
- Harmonic analysis: highly accurate frequency response analysis to a sinusoidal input signal. Input strength and frequency can be varied for THD/THD+N calculation. Switchable intermodular distortion modus.
- Oscilloscope: watch what happens to a sinusoidal input signal in real time.
- Dynamics: use a ramping signal to test compression or expansion, or an attack-release signal to check your compressor’s attack and decay curves.
- Performance: how many milliseconds are really spent in your plugin’s audio processing callback (as a function of buffer size)
- Freely resizable user interface
- Three quality settings, corresponding to three different FFT buffer sizes
- Storage option of curves in Linear and Harmonic analysis mode for easy comparison of settings or of different plugins
- Built-in screenshot function
- Comes as a 32 and a 64 bit executable
- Can load VST and (on Mac) AU effect plugins
Just for note — this plugin was made with JUCE framework 😁
Settings and plugin selection
At first, we need to set plugin settings. To do this just press settings button (yellow circle at the top right corner) and you’ll see a settings window. Make sure to set the quality to highest and also validate your audio hardware settings to use proper audio buffer size. I prefer to set it to 128 samples (2.9ms).
Let’s check other buttons at the top right corner:
- First one enables hardware analysis. This mode is enabled in the full version of this application.
- Shows a list of all available VST/AU plugins for testing
- Shows or hides the UI of the loaded plugin
- Takes a screenshot from the PluginDoctor
- Opens settings menu
Okay, the next step is to load your VST plugin into this plugin. Just press on the plugin selection button. If you don’t see any plugins in the list, just scan your computer to find them. Select CLA-2A Mono and click on Load Plugin button. If you don’t have CLA-2A installed, you can choose any other VST plugin you like.
Real-life test on CLA-2A from Waves
I chose Waves CLA-2A to test because I think that this compressor/limiter is a very good example for testing harmonics, dynamics and frequency response. Let’s load CLA-2A into PluginDoctor. This is a full reset state. As we can see CLA-2A already changes our signal even if we didn’t touch any knobs 😁.
PluginDoctor can analyze several characteristics of your plugin. They are:
- Linear Analysis — in other words, it shows you a frequency response like parametric EQs.
- Harmonic Analysis — this shows you how many harmonics you output signal contains
- Oscilloscope — a simple oscilloscope
- Dynamics — shows the relation between your input sound and output sound volume (compression or expansion curve)
- Performance — performance of your plugin
Linear analysis is the first view that shows you a graph with a blue line. It has 3 modes. You can also switch between Delta and Random signal. Let’s check Freq, Phase and IR for Delta signal. We didn’t change any parameters on CLA-2A.
- Delta — input signal is a full-scale Dirac Pulse, that contains all frequencies in a constant amplitude and is perfectly in phase
- Random — input signal’s frequency response is changed in time by a random values
Frequency view shows you a frequency response over all spectrum. Here you should see a similarity with graphics in other spectrum analyzers like Voxengo SPAN. When you change some parameters in your loaded plugin it will change the output’s signal frequency. This spectrum is helpful in cases when you want to know how your plugin changes the frequency of the signal.
As we can see CLA-2A changes low frequencies by High-Pass Filter on 20Hz and has some small attenuation on high frequencies near 15 kHz. Just for note that human listening range is from 20Hz to 20kHz, so HPF is OK.
- X-axis — frequency, from 20 Hz to 20kHz
- Y-axis — signal volume, from -10.0 dB to 10.0 dB
The second view is Phase. In this view, you can see the difference between phase and frequency. Who remembered math should know that 3.14 is the Pi number 😀. And that is the ratio of a circle’s circumference to its diameter. Why do we have it here? Phase is directly related to the sine wave. As we know all audio signals are compound from multiple sine waves. When the sound wave starts it should have some starting point. This starting point is defined by a phase value. For example, we all know that signals in phase have bigger volume output and signals out of phase are canceling by themselves. Additional reading is here .
For example, using this settings we can see that CLA-2A changes the phase in low frequencies up. But this is not a very big issue because this compressor is often used for vocals and we know that it is good to do a low-cut on vocals up to 80Hz 😁.
- X-axis — frequency, from 20 Hz to 20kHz
- Y-axis — phase, from -3.14 to 3.14
The third view shows you Impulse Response (IR). This shows an impulse that was produced in the output of this plugin. As we can see here there is no difference between input and the output so we can think that plugin doesn’t change IR timing. For example, this graph could be changed by the reverb of delay effects. For CLA-2A it is OK not to change the IR.
- X-axis — time, ms
- Y-axis — output signal amplitude, from -1.0 to 1.0
Harmonic Analysis view shows you a spectrum of the output signal. Generally speaking here you can see all harmonics that are present in the audio signal that was produced by compressor CLA-2A. As we can see the fundamental frequency for input signal is 1kHz and it contains harmonics till the end of the spectrum each with lower volume than previous. 
- X-axis — frequency, from 20 Hz to 20 kHz
- Y-axis — output signal volume, from -200.0 dB to 0.0 dB
Harmonics can be viewed in 2 modes — THD and IMD. First one is THD — total harmonic distortion — this is the ratio of all the harmonics to the fundamental frequency. THD is measured by one sinusoid. It shows you how all harmonics are distorted by the CLA-2A. If you look to the main harmonic at 1kHz, you’ll see a smaller amplitude peaks. And the same image around other harmonics. This means that they are distorted somehow. 
This view shows you an IMD — intermodulation distortion. This is a related measure of distortion. IMD is measured by using the sum of two or more sinusoids as an input signal. Typically, the frequencies combined in the input are not harmonically related. This is convenient because it allows for examination of many distortion components in a narrow bandwidth. 
Oscilloscope view just shows your sound wave produced by the CLA-2A in the time domain.
- X-axis — time, in milliseconds
- Y-axis — output signal amplitude, from -1.0 to 1.0
Dynamics shows you a dependency of input signal volume to output signal volume.
- X-axis — input signal volume, from -100.0 dB to 0.0 dB
- Y-axis — output signal volume, from -100.0 dB to 0.0 dB
The dashed line is the volume of the input signal over the time. The solid line is the volume of the produced signal by CLA-2A. As you can see there is a slope on the top is created because we changed some compression parameters.
Also, you can switch to a view of attenuation/release over time domain.
- X-axis — time, from 0.0 s to 4.0 s
- Y-axis — amplitude, from -1.1 to 1.1 (amplitude is somewhat equal volume)
Here you can see how this signal is modified in the time domain.
This performance view shows you the overall CLA-2A latency in processing from small to big buffers. On the graph below we can see a dependency of buffer size on processing time. That peak in the middle was produced at the moment when I took a screenshot 😄.
- X-axis — buffer size, from 327 to 65536
- Y-axis — overall latency from 0.0ms to 18.3 ms
Of course, PluginDoctor has some cons, for example, there is no bypass mode to compare the raw signal from input to the produced output signal by the loaded plugin. Also, spectrum view is not so contrast and it is hard to see signal lines over spectrum background. It would be great to have more fluid visual animations.
In any case, there are not so many tools like this on the market, so PluginDoctor can be a great tool to test and analyze your VST/AU plugins and understand better how they work, their characteristics and pros/cons. Knowing how they deform sound in the output you can create your own emulations of the tested plugin using other plugins 😁.
- Official website of PluginDoctor 
- Phase: Timing Difference or Polarity? 
- The Scientist and Engineer’s Guide to Digital Signal Processing. Chapter 11: Fourier Transform Pairs 
- Total harmonic distortion 
- CLA-2A Compressor / Limiter
- The Scientist and Engineer’s Guide to Digital Signal Processing. Chapter 22: Audio Processing. Nonlinear Audio Processing
- Voxengo SPAN
- Fundamental Frequency and Harmonics
- Review — PluginDoctor from DDMF
- VST Plugin Analyser by Christian Budde