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.
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.
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.