/Vintage-Toy-Synthesiser

My project for the Element14 Music Tech Design Challenge

Primary LanguageC++

Vintage Toy Synthesiser

Vintage Toy Synthesiser was the winning project of the Element14 Music Tech Design Challenge where I converted a wooden vintage toy piano into a standalone digital synthesiser. See the project blog to see the full development process of the project.

alt vintage-toy-synthesiser

Project Proposal

The original project proposal specification was as follows:

  • Develop a digital synthesis engine that can generate and modify synthesised sounds
  • Modify the existing key mechanism so that it can trigger sounds and control velocity modulation on the synthesis engine
  • Add a set of potentiometers, switches and other controls to the existing piano enclosure for controlling the synthesis engine
  • Add an audio output for connecting the instrument to external speakers and recording equipment
  • Add MIDI I/O so that the instrument can be integrated into existing music production systems
  • Keep the existing aesthetic character of the vintage toy piano

For more info see the full project proposal.

Hardware/Software Architecture

The synthesiser uses a couple of different hardware software platforms:

  • The brain and sound engine of the synthesiser are seperate Linux applications running on a BeagleBone Black board, which communicate via software sockets. The brain application is developed in C, and the sound engine application is developed in C++ using the Maximilian Audio DSP library and RtAudio. See the BeagleBone Black directory for the code for these applications.
  • The keyboard and panel use Arduino Pro Mini boards for sensor/control scanning. The Arduinos communicate with the BeagleBone Black via serial. See the Arduino directory for the keyboard and panel code.
  • There is a Mac OS X editor application for saving and loading patches on the synth, written in C++ using the JUCE framework. See the VtsEditor directory for the code.

For more info on the software architecture see here.