Summary of Convert a toy piano to work as a midi device and use it with Synthesia
This project transforms a low-cost toy piano into a functional MIDI controller compatible with Synthesia and other software. By extracting button signals from the piano's internal circuitry, an Arduino Mega reads keystrokes and transmits serial MIDI data to a PC. A virtual MIDI port setup connects this data to Synthesia via MIDI Yoke, enabling digital music interaction without physical hardware bridges.
Parts used in the Toy Piano MIDI Conversion:
- Toy piano
- Arduino mega (or Arduino uno with line decoder)
- Flat ribbon cable (from old pc)
- Connectors (1 for piano and 1 for arduino)
- Soldering iron
- Desoldering pump or wick
- Ohmmeter
- Hot glue or any other strong glue
Goal of this project:
Convert a cheap toy piano to work as a midi device and use it with Synthesia (http://www.synthesiagame.com/)
Other programs that use midi inputs can also be used.

Approach:
The pushbuttons of the piano are used to make a simple pull-down circuit for the arduino mega. The arduino interprets the keystrokes and sends serial midi data to the pc. Then this data is send to a virtual midi port with “serial-midi converter”. This midi port is connected to Synthesia via “MIDI Yoke”. MIDI Yoke is a driver that creates virtual ports. Each port has an input and an output which are connected. With MIDI Yoke you can couple different midi programs without any physical hardware.
Step 1: Parts and tools
List of the parts needed for this project:
– Toy piano
– Arduino mega (This project van also be done with an arduino uno but you should use an line decoder to expand your arduinos inputs.)
– Flat ribbon cable (from old pc)
– Connectors (1 for piano and 1 for arduino)
List of tools needed:
– Soldering iron
– Desoldering pump or wick
– Ohmmeter
– Hot glue or any other strong glue
Step 2: Hardware
The pushbuttons of the piano keys are used to make simple pull down circuits. The internal pull-up resistors in the atmega IC are used so we don’t need extra external pull-up resistors.
– Open the toy piano and locate the pushbuttons corresponding to the piano keys.
– Check if all the buttons have a common line. This is the ground line.
– Locate and remove the main IC. Solder wires to all leads going to the buttons including the ground wire.
– Check you didn’t make any shorts while soldering. (ohmmeter)
– Solder the other ends to the connector for the flat ribbon cable.
– Make a cutout in the housing of the piano for the connector.
– Reassemble the piano.
For more detail: Convert a toy piano to work as a midi device and use it with Synthesia
- How can I convert a toy piano to work as a MIDI device?
Use pushbuttons to create pull-down circuits connected to an Arduino that sends serial MIDI data to a PC. - Can I use an Arduino Uno instead of an Arduino Mega?
Yes, but you must use a line decoder to expand your Arduino inputs if using an Uno. - What software is required to connect the Arduino to Synthesia?
You need a serial-midi converter and MIDI Yoke driver to couple different MIDI programs. - Do I need external pull-up resistors for the circuit?
No, the internal pull-up resistors in the atmega IC are used so extra external resistors are not needed. - How do I identify the ground line on the piano buttons?
Open the piano and check if all buttons share a common line which serves as the ground. - What tool is used to verify there are no shorts after soldering?
An ohmmeter is used to check that no shorts were made while soldering wires to the leads. - How does MIDI Yoke facilitate the connection?
MIDI Yoke creates virtual ports with input and output connections to couple different MIDI programs without physical hardware. - What is the purpose of the flat ribbon cable in this project?
The flat ribbon cable connects the soldered wires from the piano buttons to the connector for the Arduino.

