Digital Signal Processing and VST Creation

My high school senior year independent study.


In my senior year of high school, I conducted an independent study on digital signal processing and VST creation. As part of the project, I wrote two papers on the discrete Fourier transform (DFT), the Nyquist-Shannon sampling theorem / the Nyquist limit, digital-analog conversion and aliasing, sample / bit rate, and the fast Fourier transform (FFT), among other topics.

I also developed a small suite of VST3 plugins using the JUCE framework and C++, and used it to produce a brief snippet of music in Ableton Live (a cover of Chocolate Matter by Sweet Trip, which was my favorite song at the time). The plugin suite contained the following:

  1. MIDI arpeggiator
  2. bitcrusher
  3. soft clipper
  4. delay
  5. filter
  6. gain
  7. MIDI humanizer
  8. panner
  9. reverb
  10. sample and hold
  11. spectrum analyzer
  12. MIDI velocity editor
  13. stereo width

I’ve unfortunately lost the final paper, but I have some remnants of the project below, mostly of the Nyquist-Shannon / aliasing / Fourier transform parts of the project.

demos

Video demonstration of the Nyquist-Shannon sampling theorem; the red wave is the incoming signal, the blue wave is its digital discretization, and the black wave is the converted analog signal
Visualization of the DFT with a low sample rate; aliasing artifacts bleed into the frequency spectrum of a harmonic signal
Visualization of the DFT with a low sample rate; aliasing artifacts bleed into the frequency spectrum of a harmonic signal
Reflection of a sawtooth wave over the Nyquist limit by aliasing
Reflection of a sawtooth wave over the Nyquist limit by aliasing

Below is my cover of a section of Chocolate Matter, made entirely with Ableton Live stock instruments and mixed entirely with my suite of VST3 plugins. The first file is before any mixing, and the second uses only the plugins I created.

before:

after: