Liam took a kids toy piano and turned it into a powerful music machine. One thing’s for sure - this isn’t a toy anymore!
Have you ever seen a used mechanical toy that’s been entirely gutted and redeveloped into a powerful synthesiser? With a sleek laser-cut top-panel, handmade velocity sensors, and a host of customisations, it looks truly amazing; and while the black keys might just be paint, that’s where the pretending stops.
We’ve seen plenty of retro computers, Game Boys and other vintage hardware converted into new things, but this is quite a unique idea because you’ve taken a kids toy piano and converted it using modern electronics. Did you find the toy or was it something you had growing up?
This particular toy piano was one I purchased off eBay a couple of years ago; however, I did have one when I was growing up, which was probably the root of my fascination with vintage toy pianos.
Ah, the old “childhood memory” throwback! As a kid, many of us dreamed of being superheros or rockstars while playing with toys, but what made you look at this piano and ask yourself, “how could this be more awesome?”
The main inspiration for this project came from a couple of existing toy piano projects I worked on.
FIRST... In 2012 my brother Ali and I embarked on an experimental toy piano project, where we recorded and sampled a vintage toy piano in many conventional and unconventional ways. The audio samples were eventually released as a commercial sample library, co-developed by Ali and Impact Soundworks.
THEN... In 2015 I undertook a second toy piano project, this time at a music technology hackathon in Berlin called MIDI HACK. Here, I converted the piano into a simple USB-MIDI controller. From this 24-hour project I was awarded a prize from one of the event sponsors, and this spurred me on to think about how I could extend the project into something more advanced.
In my day job I work for Modal Electronics (UK), who make hardware synthesisers, so the work I do with them ultimately inspired me to see if I could incorporate the same kind of ideas, but within an existing vintage toy piano.
ULTIMATELY... The main thing that pushed me to physically start the project was the announcement of the Element14 Music Tech Design Challenge. After submitting a project proposal I became 1 of 15 sponsored challengers, which gave me the perfect opportunity and platform for turning the project into a reality.
Some of the old electric toys we’ve seen used basic electronics, many of which were monophonic. Was the original toy polyphonic or did you have to modify it to make it work that way?
The existing toy had a full polyphonic keyboard mechanism, but it was purely mechanical. Each key had its own “hammer” and metal sound rod, so that when a key is pressed its hammer will strike its rod to create an independent sound/note. However, as I was turning this acoustic musical instrument into a purely digital one, I needed to remove the hammers and sound rods (as these were now redundant), and replace them with sensors for reading individual key interaction data in the digital domain.
So it worked rather like a real piano (but with rods instead of strings) - that’s quite cool. But converting from mechanical to electronic is rarely as easy as it seems. You added velocity sensitivity using velostat material. How difficult was it to create these sensors and integrate them into the project?
Possibly the most challenging part of the whole project was the development of the key mechanism. Allowing the existing toy piano keys to generate note messages in the digital domain was difficult because there was next to no existing examples of it being done.
For the key mechanism, I undertook a couple of design iterations before I settled on using Velostat-based sensors. For the previous USB-MIDI toy piano project, I’d used piezo sensors, where a strip of piezo sensors were placed inside the piano’s enclosure, so that the hammers of the keys would strike them and create a key press and velocity measurement. They were very easy to add to the piano; however, in practice they didn’t create consistent results (due to the hammers not always striking the sensors properly), and they couldn’t detect key release interactions.
The second iteration involved designing a “dual-switch” mechanism for each key, which is how most commercial keyboard mechanisms ensure velocity sensitivity. The way this works is that an initial key press opens one switch and starts a timer. Then, when the key is fully pressed, a second switch is closed, which stops the timer. This creates a velocity value based on the time value. This solution, however, didn’t work very well either, as the piano keys are light and flimsy and I wasn’t able to find a switch or mechanism that would stay “closed” just by the weight of an unpressed key.
Fortunately, in the process of trying to develop the above “dual-switch” solution, I discovered Velostat, which turned out to be a great sensor solution for the key mechanism. I used Velostat by attaching small squares of it to the underside of each key, which “hovered” above two contact points of a circuit, attached to an Arduino. This ensures that when a key is pressed, the Velostat completes/closes the circuit, sending a “press” reading for creating note-on messages. Then, when the key is released, it breaks the circuit and sends a “release” reading for creating note-off messages. However, as Velostat creates a variable analogue/resistance value - depending on how much pressure is being applied to it - this allowed me to just use this reading to create a velocity value for each key press, rather than having to use a second switch and a timer. Using Velostat also allowed me to implement polyphonic pressure sensitivity into the keyboard, meaning that after a key is initially pressed, a varying amount of pressure can be applied to it, to create an extra level of expression from the keyboard.
Creating the Velostat sensors and integrating them into the project was fairly easy. Velostat can be cut into any shape or size, which was very handy for this project as there wasn’t much space under each key to attach sensors. I had considered using FSRs (which are very similar to Velostat), but I couldn’t find any that were small enough to fit under the keys. So instead, I simply attached the sensors to the keys using double-sided tape, and a small layer of foam inbetween. This gave each key a bit of physical “sponginess” which is desirable for when varying amounts of pressure are applied, and it also eliminated the sound of the wooden keys striking the bottom of the enclosure. I didn’t need to attach any wires to the sensors because the pressing of the keys caused the sensors to join contact points of the circuit. Therefore, I didn’t have the struggle of trying to attach wires to this flexible material, which was great.
What's Polyphonic? “Polyphonic” essentially means something can produce more than one note at a time (such as a piano or an electric guitar). In contrast, “monophonic” is something that can only produce a single note at a time (such as a human voice or a frequency generator). In many ways even an orbital sander can be considered a sort of monophonic instrument. The “tone” of the sander changes with the speed of the sander, but it can’t emit “two tones” at once. Of course a sander isn’t considered a musical instrument, but there are plenty of bands out there using sanders, angle grinders, and other non-traditional items to create amazing music!
That’s a pretty awesome conversion. Velostat is so versatile for this application, definitely a great choice. We are equally impressed by your previous use of piezo for velocity sensing - that was some great thinking outside the square (even if it wasn’t 100% reliable, as you noted). Making the synth work as a standalone system is clearly a lot more work than simply making a MIDI-integrated synth (where the external MIDI synth does all the heavy lifting). Was making it work as a standalone unit, an important aspect to you in terms of functionality, or was is more of an exploratory drive (e.g. so you can say that you did it)?
I had already completed a MIDI toy piano project in the past, so with this project I mainly just wanted to expand on what I had already done and develop something more complex and interesting. The main technical requirement of the Element14 Music Tech Design Challenge was to use a BeagleBone Black single-board computer. While it could easily handle doing MIDI processing, I thought it would be good to use the full potential of the board and develop a more powerful system. I’m always keen to learn new skills, and developing a Linux-based audio synthesiser was something I had never done before so I thought it would be of great benefit to my professional career.
So it was definitely part “so you can say you did” then! It’s so great that you took the bounds of the Element14 challenge and pushed within them. How does this synth compare to commercial units? Is there something unique here (other than the fact that you built it, and it’s amazing)?
The voice engine of the synth is very similar to most subtractive-synthesis-based commercial synths. It has multiple oscillators with standard analogue-style wave shapes; a filter with frequency cutoff and resonance controls; 2 ADSR envelopes (one for amplitude and one for the filter); an LFO for modulation; modulations routings; digital distortion; and keyboard setup controls.
However, there are a few uncommon features of the synth's voice engine. It has a State Variable Filter, rather than a simple Lowpass Filter which is more common on commercial synths; the scale of notes on the keyboard can be changed (e.g. major, minor, blues) instead of just being statically chromatic; and the keyboard can send MIDI polyphonic aftertouch messages for applying per-note expression. However, the most unique feature is the ‘Vintage Amount’ parameter, which allows the synth to model/emulate old or even broken analogue synthesiser voices. I implemented this by doing what most “virtual analogue” synths do, which is to add random amounts of pitch offsets to each note. This said, I haven’t seen many (if any) commercial synths provide a control for setting the amount of this kind of behaviour.
The most unique thing about the Vintage Toy Synth is its form factor and design. Playing an instrument is about so much more than just the sound you create. The way you play it, the physical feedback, and the general feel and aesthetics of the instrument also play a big role in the overall experience. All these elements help to nurture inspiration, and can even affect your perception of the sound created. Vintage wooden toy pianos have such a uniquely enjoyable feel and aesthetic, with their clunky wooden keys and their charming miniature form, and I believe this can make a big difference as to what a musician can get out of an instrument like this.
There’s definitely something about playing music with different hardware. Playing drums with a mouse isn’t nearly the same as beating cow-skin with sticks - so we hear what you’re saying! Looking at the piano now, your acrylic panel is very slick. Did it take any trial and error to get the laser-cutting / laser-engraving right? Or were you happy with the first output?
It took two attempts to make a laser-cut panel that I was happy with. For this project I wanted to retain as much of the original toy piano’s enclosure and physical character as possible; in fact, I had originally planned to attach the controls to the piano’s existing wooden panel. However, after realising that the panel was too thick and brittle to work with, I started thinking about creating a new custom panel for it.
My first custom panel was laser-cut out of 3mm birch plywood, and the plan was to paint it and label all the controls myself. I chose to use plywood due to it being a similar material to that of the rest of the piano’s enclosure. As this was the first time I’d built something with plywood I wasn’t aware of its susceptibility to warping. I soon found out though, because after applying paint, it ended up considerably warping, to the point that it was actually unusable.
So, I got a second and final panel laser-cut, this time out of 3mm black acrylic. Acrylic isn’t susceptible to warping, and by using gloss-black acrylic I didn’t even need to paint it! Using acrylic also enabled me to get the control labels laser-engraved, which produced a professional-looking frosted white text, rather than painting on labels by hand. Overall I was very happy with the final panel - it looked a lot better than I imagined it would.
We’re huge fans of timber, any sort of timber, but that gloss acrylic is something amazing. It makes it look even less like a toy, and more like a grand piano. Well... one with loads of knobs coming out of it! Maybe a full-scale model is on the cards - we could put it in our Super Size Me section of the mag? We’re joking of course. What unexpected challenges did you face with this project?
The biggest unexpected challenge I faced was the development of the panel electronics. The panel circuit required a lot of soldering, but when it comes to electronics I’m very much at a hobbyist level, so my soldering wasn’t always good enough. This resulted in me needing to replace quite a lot of the pots before I had a fully working panel. Also I wasn’t aware how much pot jitter and interference I would get from having so many pots within a single circuit; so I had to play around a lot in software to help prevent this.
Another big unexpected challenge was settling on a voice engine design, that would run on the BeagleBone Black without any processing issues or overloads. I ended up having to scale back my original voice engine design quite a lot, as it was too CPU-intensive for the BBB. So I had to spend a lot of time testing different parts of Maximilian - the C++ synthesis library I used - and redesigning the voice engine from the ground up, based on the performance of Maximilian and the BBB.
As I mentioned previously, the production of the synth’s panel was also an unexpected challenge, due to issues with the first laser-cut panel; however, I also originally planned to use second-hand “vintage” knob caps, but they proved to be difficult to find within my size and budget constraints.
For someone claiming hobby-level electronics, you’ve done extremely well to integrate the skills you have into physical hardware. It’s certainly not the most elegant wiring job we’ve seen, but it clearly works! You’ve received two awards via the Element14 Community Awards. Did you set out to enter these or was it something you had been developing already?
I had the idea for this project not long after completing my original USB-MIDI toy piano project in 2015; however, it wasn’t until the Element14 Music Tech Design Challenge was announced that I actually decided to attempt it. Therefore, I specifically started this project to attempt to win the Music Tech Design Challenge, but the “Project of the Year” award from the Element14 Community Awards 2016 was just due to having the project documented on their website.
A bonus award - even better! If you had your time over, or if you were creating a v2.0 of this project, what might you change?
There are a number of things I would change if I was to do this project again:
• I’d try using a more powerful Linux-based microprocessor than the BBB, such as the Raspberry Pi 3, to create a more powerful and complex synthesis engine. The main reason I used a BBB was due to it being one of the Design Challenges requirements; but it was also a really good option for what I needed to do.
• I’d experiment with using other synthesis libraries for developing the synthesis engine. I chose to use Maximilian as it looked easy to use and provided me with all the synthesis components I needed. But as it is still quite new compared to other synthesis libraries out there (e.g. Pure Data, Csound, STK), I might have been able to get better performance out of another library, allowing me to run a more complex synthesis engine on an embedded Linux platform.
• I’d redesign the panel circuit to help prevent pot jitter and interference, and I’d build it as a custom PCB, rather than as a maze of hand-soldered wires!
• I’d implement built-in patch saving and load, rather than needing to use an external computer to do this.
Sounds like v2.0 of the toy piano would be a sight to behold if you ever do take it on. You clearly had significant knowledge about synthesisers before tackling this project. For someone who doesn’t have that background knowledge but would like to be able to put their electronics interests to use in synthesisers and digital audio, are there any resources or tips for where to start learning about them?
The best resource is the "Computer Music Tutorial” book by Curtis Roads, which is considered as a reference “bible” in the field of digital audio and related subjects. Another resource I thoroughly recommended, especially if you are not a coder, is Max, or its free alternative Pure Data. These software applications are graphical programming languages and environments for developing audio applications (as well as other multimedia applications) fairly easily.
They are particular useful for beginners as there are loads of official and unofficial tutorials, which help teach the fundamentals of audio synthesis in a practical way.
On the other hand if you’re interested in building analogue synthesisers, which obviously involve a lot more electronics, one of the best resources is the “Music From Outer Space” website, from which the highly-recommended “Make: Analog Synthesisers” book was born.
Thanks for the resources Liam, we’re sure our readers will appreciate them. What are you working on now, and is there anything else you’d like to share?
Aside from my work at Modal Electronics, my main project at the moment is helping out Moldover with one of his projects. Moldover is a San Fransisco-based musician and musical instrument maker, also known as “The Godfather of Controllerism”. I’m currently helping him develop the firmware for a new version of his augmented-microphone controller called the MC1. I’ve been following his work for many years now, so it’s a very exciting project to be working on. I’ve also been slowly working on some DIY guitar pedals, but I’ve got a long list of music-related projects that I’m hoping to work on when I have the time or opportunity.
Microphone controllers? Guitar pedals? We can’t wait to see what you come up with!