Last week-end was rainy so I took the time to turn an old phone into a digital instrument.
The old phone has a piano shape and 17 keys, black and white. One octave and a third.


The original phone keyboard has two functionalities : dialing phone number and playing cheap synth.
The synth isn’t working anymore and I don’t care about the phone function.
Only 11 keys are used for dialing but fortunately, all the keys are connected to a keypad array easily available on the PCB.
This is a 4×4 array plus 2 discrete switch circuits.

Keypad and Rpi

I sold an old flat cable found into a computer of the last century (less powerful than a Rpi :-) ) and plug it in directly on the GPIO header on the Raspberry Pi.

Thanks to the libbcm2835 and the liblo I wrote a small program that scans the keyboard and sends OSC data on a multicast group.
I receive those data in puredata. Multicast is useful to develop synth : the same patch runs on my notebook and on the Rpi without any change in the configuration.
I used the Miller’s Raspbian image (http://pd-la.info/pdpi/) and the simplepolysynth.pd patch.
I will add an LCD screen and some push buttons to choose the patch to load.

All sources files are available here : https://github.com/avilleret/pianophone