Date of Defense

4-22-2016

Date of Graduation

4-2016

Department

Music

First Advisor

Richard Johnson

Second Advisor

Matthew Layher

Third Advisor

Matthew Layher

Abstract

Audio engineers around the world routinely utilize small pieces of software, known as “plugins,” to help shape the sound of the media they are working with. These plugins are inserted into a digital audio workstation (DAW) and contain digital signal processing (DSP) algorithms that can affect audio in a number of ways limited only by the creativity of the software developer. Common implementations of plugins include equalizers, compressors and limiters, gain, phase rotation or polarity inversion algorithms, reverb and delay, and emulation of the non-linearities of analog audio equipment. The intent of this thesis project is to design and produce a number of useful audio plugins culminating in a small library released as open-source software.

Several libraries are available for use in the creation of audio plugins, but the cheapest and easiest option to gain access to is the Virtual Studio Technology (VST) SDK, created by Steinberg Media Technologies GmbH and distributed under the GNU General Public License. The VST SDK is a library developed in C++ that provides the application programming interface (API) necessary to design and implement VST plugins for use in DAWs. The VST SDK is, however, markedly complicated to configure even for basic use, which makes experimentation for the purpose of developing DSP algorithms much more difficult than necessary. To solve this issue, JUCE, an application which encapsulates and generates the basic API for VST development automatically based on a number of input parameters, will be implemented.

The DSP algorithms that form the heart of audio plugins draw their roots from the mathematical modeling used by electrical engineers to create analog filters on circuit boards for use in audio processing hardware. Digital processing, however, offers substantial improvements over the abilities of analog circuits, especially in the time domain. While an analog circuit must take in an input voltage and produce an output voltage in real time with no noticeable latency, a digital processor can look ahead in the digital audio stream and/or buffer input samples in order to predict what processing must be done in advance. This enables software plugins to avoid many technical compromises inherent in the analog domain. Plugins created during this project require investigation, understanding, design, and implementation of these models in the digital domain using lines of code instead of resistor and capacitor networks.

Access Setting

Honors Thesis-Open Access

Share

COinS