Digital Synth
Digital Synth using Arm M4
This project mainly focused on low-level multithreaded programming in Embedded C to create a digital synthesizer. In our group of 4 people, I focused mainly on creating concurrent threads and ISR functions to enable increasing capabilities of the digital synthesizer. Some of the key functionalities I implemented include:
- Polyphony across multiple keyboards (compounding multiple key frequencies)
- Modular keyboards with Auto Detect (enable connection/disconnection of modules in any order or time)
- Stereo Sound (Sound is played across all available speakers)
A key part of this project was ensuring thread safety and that each thread meets it’s required deadlines. To verify this I implemented a configurable test suite using C directives.


Left: Single synth module. Right: Thread and ISR functions.