Music Synthesizer

Project information

Wrote the embedded software for a music synthesizer keyboard in a team of 4. Supported a variety of features, including:

  • Playing up to 10 notes simultaneously from a range of octaves spanning the human hearing spectrum.
  • Automatically configuring multiple keyboards, which can be attached and detached from one another to play notes together.
  • Supporting two different sound waves, triangular and sinusoidal.

All tasks were assigned to threads or interrupts depending on priority, and thread safe implementation was designed through the use of mutexes, semaphores and critical sections. Tasks with strict performance requirements were profiled and optimised to ensure all functions were executed within their maximum time intervals.