top of page
Audio Processing: Text
Circuit Board

Audio Processing Independent Study

Spring 2023, Self-Guided with Advice from Professor Maguire

Description:
After my Signals and Systems course in Fall 2022, I became interested in potential Digital Signal Processing applications in music. I brainstormed an interesting idea: what if I could use a mic, speakers, and a digital signal processor that would listen to me playing a solo instrument (the viola), then make it sound like an instrument an octave lower (in this case, a cello) was playing a harmony alongside me?

Audio Processing: About
Viola

Design and MATLAB code

   Before beginning any programming, I first determined what I wanted to do more specifically. To mimic a cello playing alongside me, I knew that I would need to:

  1. Perform one octave shift down in pitch on the incoming audio.

  2. Add an organic, variable delay simulating a person trying to follow my lead and the slightly longer attack time on a larger, deeper instrument.

  3. Add a slightly variable amplitude modification to the incoming audio simulating dynamic balancing and different positions with respect to the listener.

I implemented most of these in a MATLAB file for rapid prototyping on pre-recorded audio, but made sure to keep the algorithm causal so that it could be more easily translated into a real-time algorithm on the DSP board.

Audio Processing: Text
Image by Vishnu Mohanan

Some Software Engineering and C code on the DSP Board

   Once I was satisfied with the MATLAB algorithm, I set up the Analog Devices Blackfin 706 Digital Signal Processing board. This did not prove to be an easy task; after I described the process to my professor, he requested that I write it up into a lab assignment for other students; it would eventually come out to 10 pages or so! I had to fix a few driver issues (such as the clock being on the incorrect edge causing absurd gain issues) and work with a questionable reskin of eclipse requiring a paid short-term license- fortunately, a 6 month license came with the board. 

   Once these issues were resolved, the main challenge was converting from the MATLAB algorithm's continuous processing of a whole audio file to block processing of the input buffer. Adjusting the algorithm to combat these, I was able to produce a successful product. Once complete, I created a presentation for my class and even did a live demonstration with my viola. For more information on this project, see the presentation linked below:

​

https://docs.google.com/presentation/d/13qbg4wp4cxbfYGFNtoatuPzp08fMgcbe--1s-Vt8Duk/edit?usp=sharing

​

Audio Processing: Text
bottom of page