My wife recently asked me for a way to ease the handling of all the piano notes that started to pile up. I immediately thought about scanning the notes and using a monitor to present them. But then when it comes to turning the scanned pages on the monitor it would be hard to use a keyboard or even the mouse. So your feet are the third hand in this case. I already have seen elusive constructions that turn paper pages with a foot switch. But of course the digital way is much easier to achieve nowadays. So I sat down and constructed a digital foot switch.
How it works
The Yamaha piano has a middle pedal which is used only for special purpose (and actually it has been unused all time). So I simply thought of a switch being glued on top of it which can be interrogated and depending on the time of pressure it should turn the pages.
- Short press (less than 0.5 sec): turn to next page
- Long press (up to 1.5 sec): turn to previous page
- Very long press (longer than 1.5 sec): close view
I had a spare MacMini where the music notes should be managed in an application, It's a very simple application that stores scanned notes (PDF format) with title, composer and genre so one can easily filter and find the notes. Selection is done with normal keyboard and mouse operation and the selected notes are viewed in full screen with double side display. Now while playing them, the next (and eventually previous) page can be selected by pressing the middle pedal of the keyboard. The switch will be monitored by a little Attiny that sends the key-press time over USB to the Mac application which then can turn the notes.
Step 1: The Foot Switch
As you can see in the construction above, the switch is a simple industrial one which is used in many machines as end switch or the like. The litte roll attached to a flexible metal stripe allows a wide range as to where the switch can operate safely. I constructed a small housing made from Plexiglas around it. This is because I did not want to open the Piano to attach the switch inside and since its operated by feet I thought that a protection would be a good idea. The housing itself is simply attached with two sided foam tape to the piano (see picture in the intro).
The construction above shows a channel to guide the cable down. This has not been realized in the casing you seen in the intro.
Step 2: The USB Connection
This is a really simple one. I used an Attiny (actually I had a 85 and not the 13 as in the schematics, but that does not matter here). The 5-pin connector is directly attached to a USB-TTL converter. The one I linked has 6 bend connector legs which I desoldered. The PCB created from the schematics can be attached piggyback using short copper pins (see pictures). For my Mac I needed to instal the CP2102 driver. Once done the device appears as /dev/tty.SLAB* and can be used to communicate at the appropriate baud rate (I used 1200 since the Attiny is not the fastest one and this is no time critical application at all).
I tested the switch manually by pressing the switch and it worked like a charm. In the moment when the switch is closed the Attiny sends the character 'P' (for pressed) immediately over the serial live. Actually I do no use this information in my Mac application, but I think it might be useful in other apps later. When the switch is released the text 'Tmillis' is sent over the serial where millis is the actual milliseconds the switch was closed. Now in my app I just check the time for the last switch close and turn the page accordingly.
Step 3: Close and Connect
Now that everything worked perfect, I just needed to seal the USB device with some shrink tube so it looks like above.
Of course Murphy is present everywhere. While I tested I press/released to simulate the pedal press. But - when mounted, the pedal permanently closes the switch and a pedal press will temporarily open the switch which is vice versa logic and the pages did not turn. Watching the serial output immediately showed where my error was. So: cut the shrink tube, remove the Attiny, reflash, back to socket and shrink again. Done :-)
Remember: when testing, you need to think about this and eventually you have to solder the switch connection from the normal open to the normal closed side to invert operation - or (as I did) to change the code logic.
I did not attach the Mac Application since I think there are not so many people having a spare Mac for this. Plus the app is only localized in German. Anyhow, if you like to have it, let me know.