Primary Features
- 2-voice digital synthesiser with true polyphony
- 5 oscillators with dedicated waveforms
- State-Varible-Filter with independent LP, HP, BP and Notch mix controls
- Amplitude and Filter ADSR envelopes
- Two modulation sources (LFO and keyboard velocity) with three destinations, each with independent bipolar depth controls
- Digital distortion FX
- Changeable scales on the keyboard
- ‘Vintage’ parameter for replicating old/broken analogue synth voices
- Full MIDI I/O integration
- Polyphonic Aftertouch expression (MIDI-out only)
- Charming miniature grand piano form
Development Specs
- The brain and sound engine of the synthesiser are seperate Linux applications running on a BeagleBone Black board (a requirement of the Element14 Design Challenge), 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 in the GitHub repo 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 in the GitHub repo for the keyboard and panel code.
- The keyboard mechanism uses homemade pressure sensors made out of Velostat.
- 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.
- Completely open-source.
For more info on the software architecture see here.
Videos
Project Outline
I’ve got a certain fascination with vintage wooden toy pianos - there’s something so aesthetically-pleasing and charming about the miniature form factor and clunky keyboard mechanism. Because of this I’ve ended up taking part in a number of different toy piano projects, therefore the Vintage Toy Synthesiser came about as an evolution from a number of past endeavours.
The roots of the project started with an experimental toy piano sampling project with my brother Ali Lacey, which eventually became the Impact Soundworks Curio: Cinematic Toy Piano Kontakt instrument; followed by a project I did at MIDI HACK 2015 where I turned a toy piano into a basic USB-MIDI controller. I felt like the next logical step in this series of projects would be to attempt to convert the piano into a standalone synthesiser; an idea inspired by my day job at Modal Electronics. One great thing about this particular project is that it allowed me to combine what I do at my day job with my ‘out of hours’ activities/identity as a music tech maker/hacker.
My main aim of the project was to allow the existing key mechanism and enclosure of a vintage wooden toy piano to act as a fully functional standalone digital synth. I didn’t set out to create anything revolutionary or premium in regards to the synthesis engine or control interface; in fact I wanted these elements to remain ‘vintage’ and fairly simple akin to the existing instrument - a classic subtractive synthesis engine with standard oscillator waveforms, using just regular dials and switches for controlling the parameters. My main focus was making sure that the synth would retain the existing charming aesthetics and physical character of the toy piano, carefully designing any new elements of the object around this goal, so this was just as much an art & design project as it was a music technology and engineering project.
Old objects like this are sometimes discarded or thrown away because their functionality is now seen as being inferior to their modern day versions, however there is a special quality of vintage and retro aesthetics that can't be matched by contemporary design. Therefore a big part of this project was about reviving a beautiful vintage product with modern, digital-age capabilities.
Problems that this Project Addresses
Piano keyboard interfaces on synthesisers are great. A familiar interface for playing music, they can be used to trigger any type of synthesised sound or audio sample, but sometimes these often-plastic devices can take away some of the fun and satisfying-feel of playing sounds that resemble that of an acoustic piano or traditional instrument. Playing an instrument is about a lot more than just the sound you create - the way you play it; the physical feedback; and the overall feel and aesthetics of the instrument also play a big role in the overall experience, with these elements also helping to nurture inspiration, and can even affect your perception of the sound created.
With this in mind, there are a two main problems that this project addresses and attempts to solve:
- Musicians, producers and performers are always on the lookout for new sounds, tools and gear for making music which allows them to stand out from the crowd, especially in this day and age where it is becoming increasing easy for anyone to produce and perform music. This project aims to solve this by offering a new sound engine with some less-common features such as the 'Vintage' parameter, 5 oscillators, State Variable Filter and a unique form factor.
- Musicians, producers and performers are always on the lookout for new tools for nurturing inspiration to write new and unique music. This project aims to solve this by offering inspiring features such as a unique form factor and changeable keyboard scales, as well as the features listed in the above point.
However a more general and widespread set of issues that this project attempts to address and solve are raw material availability, waste, recycling and reuse. There is only a finite amount of materials available for making new items, and more needs to be done in regards to recycling or reusing existing items to create new ones to prevent using up the limited supply of raw materials, and to prevent items just ending up in landfills. The project aims to show that modern and usable electronic devices can be made out of old things.
Open Source Licenses
The project is completely open source licensed under GPL, and uses the following open source software libraries:
- Maximilian C++ Audio and Music DSP Library licensed under GPL.
- The Ångström Linux Distribution licensed under GPL.
- Arduino core libraries licensed under LGPL.
- JUCE Library licensed under GPL.