Deques: Sound Synthesizer

Deques is a sound synthesizer music player for Guitar Hero, developed as part of my computer science studies at Berkeley. This project combines my passion for music and technology, utilizing the Karplus-Strong algorithm and a custom double-ended queue API to simulate the sound of a plucked guitar string. The project features a graphical interface with a 37-note piano keyboard arrangement and extensive JUnit testing to ensure robustness. Explore the fascinating intersection between music and technology with Deques.

Deques: Sound Synthesizer Music Player for Guitar Hero

Technologies used: Java, custom Double-ended queue API, custom double-ended queue package, JUnit

Audio snippet (listen to the sounds produced!):

audio

Music has been a passion of mine since I was a child, and I’ve always been fascinated by the intersection between music and technology. As part of my computer science studies at Berkeley, I decided to take on a project that would allow me to explore this intersection further. The result was Deques, my sound synthesizer music player for Guitar Hero.

To begin, I implemented the Karplus-Strong algorithm using a custom double-ended queue API. This algorithm was perfect for simulating the sound of a plucked guitar string, and the custom double-ended queue API allowed for efficiency.

Next, I developed a graphical interface that would allow users to interactively play sounds using a piano keyboard arrangement with their keyboard input. I chose a 37-note layout that mimics the piano keyboard arrangement to give users plenty of options while still keeping the interface simple and intuitive.

To improve the modularity of the code, I created a private API and Python package with implementations of queues using arrays and lists. This allowed me to organize the code into logical modules, making it easier to read, maintain, and expand. It also made it easier to store and retrieve sound data, ensuring that the sound player was fast and responsive.

One of the most rigorous aspects of this project was conducting extensive JUnit testing. I wrote over 45 tests to ensure that the functionality was of high quality and to mitigate technical risks. This testing gave me the confidence to share my project with others, knowing that it was robust and reliable.

In conclusion, the Deques project was a labor of love that allowed me to explore my passions for music and technology. Creating a sound synthesizer music player for Guitar Hero was challenging, but the end result was incredibly rewarding. I hope that my project will inspire others to explore the intersection between music and technology and to create their own innovative tools.