Air Guitar
Gesture-controlled virtual guitar using MPU6050 and Karplus-Strong sound synthesis.
How I got this idea
I wanted to bridge the gap between physical motion and digital sound synthesis without using pre-recorded samples, making it feel more like a real instrument.
Problem
- Digital instruments often feel disconnected from physical strumming
- High latency in gesture-based audio
- Need for realistic timbre without large audio libraries
Solution
- Used MPU6050 (IMU) to track wrist tilt for string selection and flicking for strumming
- Developed a Python audio engine using the Karplus-Strong Algorithm to synthesize strings in real-time
- Implemented low-latency Serial communication (115200 baud) between Arduino and Python
- Applied velocity-sensitive logic based on acceleration magnitude
PythonArduinoMPU6050NumPyKarplus-Strong SynthesisSerial Communication
Hardest Technical Challenge
Implementing the Karplus-Strong algorithm in a real-time thread-safe audio callback while maintaining sub-10ms latency for a responsive 'strum' feel.
Demo
[ Demo Video / Screenshots to be added ]
What I learned
- ●Sound can be simulated as a physical system (buffers and averaging)
- ●Thread locking is critical when mixing audio dynamically
- ●Serial data jitter can be mitigated with calibration and delta-based checks