Reading piano rolls without a player piano

detection-example

A while back, [Jacob] played around with a player piano. After feeding a roll into the machine and trying to figure out how a fifty year old machine using hundred year old technology can replicate a skilled pianist, he decided to take a crack at decoding piano rolls for himself. He came up with a clever way of doing it over Christmas break, using a camera and a few bits of OpenCV.

The old-school mechanics of a player piano use a bellows and valve system to suck air through dozens of holes, making the action hit a string whenever a hole is present in the piano roll. To bring this mechanism into the modern age, [Jacob] pointed a video camera at the active part of the piano roll and used OpenCV to translate holes in a piece of paper to a MIDI file.

The synthesized version sounds just as good as the original paper scroll-based version, as seen in the video after the break. There are a few sync issues in the video and the resulting MIDI file isn’t in the right key, but that’s easily fixed by anyone willing to replicate this project.

[Read more...]

Digitizing player piano rolls

What do you do with 100 player piano rolls but no player piano? You come up with a way to digitize the information for MIDI playback. The rolls have 90 columns worth of holes, 88 for the keys and two more for pedals. Voids in the paper cause a note or pedal to be played, so an optical sensor can be used to transform the analog data into digital information. Simple enough, you’ll just need 90 sensors. But this brings up quite an alignment issue. The solution is to use fiber optic cable to position the IR light source in a hand-made 0.2″ spaced jig. At least the spacing meshes nicely with standard 0.1″ protoboard, which is what was used for mounting the sensors.

[Thanks Mike]

Follow

Get every new post delivered to your Inbox.

Join 96,725 other followers