Hardware Synthesiser

Description

A four person group project with the objective of creating the software of a digital synthesiser. We were provided with some hardware connected to an STM32 board with only the base libraries available, from there we had to build out the system using concurrent programming practices to make the synthesiser fully functional with extra special features.

A Full list of features can be found on the Github Page

Details

Skills: Concurrent Programming Embedded Systems C++
Scope: University
Date: March 2023

Responsibilities

My work involved implementing several key features, including:

  • Creating an OOP basis for hardware inputs, allowing for extensibility in usage of the knobs, keyboard and handshake signals.
  • Implementing note switch activation and creating a Speaker class using an interrupt service to drive the speaker, allowing for notes to play the right sound and for multiple notes to be played concurrently
  • Adding automatic synthesiser connection configuration, allowing you to simply plug additional synthesiser boards into whichever is being used. The whole system will still be controlled by the central board, but additional boards will contribute additional keys.