Inspiration

I'm an active guitarist in a local band, and I wanted complete control over my sound. I love experimenting with audio waves and have always wanted to visualize them.

What it does

This program takes input from any microphone or audio source and displays the digitized waveform on the screen. Multiple audio effects can be applied instantly with low latency.

How I built it

I built this using Python, the Sounddevice library, Matplotlib, and NumPy. I coded all the effects from scratch and used discrete mathematics for high-speed digital signal processing.

Challenges I ran into

Achieving low latency and configuring Windows audio drivers were extremely difficult. Mac would have been way easier.

Accomplishments that I'm proud of

I successfully created five digital audio effects from scratch: volume manipulation, distortion, reverb, delay, and bit crushing. All effects can be mixed and matched, meaning the possibilities for sound manipulation are virtually endless.

What I learned

I learned so much! I figured out how to digitize continuous audio signals and work with sample rates and buffers. I also discovered that Python functions can be compiled to assembly for faster computation. I had to carefully consider function complexity to ensure quick processing times. Additionally, I learned that Windows' default audio processing software is absolutely evil and extremely difficult to work with.

What's next for Python Guitar Pedal

Originally, I wanted to integrate this into a browser-based application, but due to issues with default audio drivers, this is basically impossible. However, I can turn my effects into an audio plugin compatible with DAWs like FL Studio, Logic, Ableton, or GarageBand.

Built With

Share this project:

Updates