Signal Processing and Audio Engineering

Engineering Projects

A large part of my engineering education has been focused on Signal Processing and Audio Engineering. Combining music and engineering has been truly interesting and a perfect blend of my interests. These projects include embedded digital signal processing applications and electroacoustic/algorithmic compositions. Please check out a few of my engineering projects below!

Pandemic!: Data Sonification Composition

Pandemic! was designed as an innovative way of showcasing the rate of spread of the COVID-19 disease. This is an algorithmic composition that uses the SuperCollider environment to sonify the confirmed cases data of the United States, Brazil, China, Italy, Iran, and India. These countries are represented by the notes D, E, C, A, G, F respectively. The amplitudes of the tones are proportional to the number of cases, as specified by the following formula:

decibelLevel = (((numCases/1158040) * 42) - 45)

Granular synthesis was also used to modify the tones to add a sense of chaos to the composition. The durations of the grains are changed exponentially based on the number of confirmed cases, based on the following formula:

duration = ((3**(1/numCases)-1)/(3-1))*(3-0.01)+0.01)

The SuperCollider code used in the composition of this piece can be found here. While algorithmic composition is the basis of the whole piece, there is also an artistic element to the composition. An explanation of the electroacoustic composition techniques that were used and the artistic goals of the piece can be found at the Music Page. Please listen to the full composition below!


Self Harmonizing Android App

This project was my final project for Embedded Digital Signal Processing (ECE 420) and was inspired by my love for A Cappella. As a large part of A Cappella music is building chords, this application makes it easy to write harmonies into new arrangements.

The project is an Android application that generates a tone that harmonizes with the user as they sing into a microphone as a real-time audio input. We utilized a modified autocorrelation method using clipping to recognize the frequency of the user’s voice and the Time-Domain Pitch Synchronous Overlap-Add (TD-PSOLA) algorithm to output shifted frequency in real time. The use also has multiple options for the number of harmonies to be outputted and the size of the interval between harmonies.

The code for the project can be found here. Please check out a short demo video of the app in action!