Learning to read sheet music is a challenge for new musicians, so a group of Cornell students decided to make a robot do it instead. For their final project, they built a robotic sheet music reader (link warning: this page seems to automatically start a .mov file download when loaded).
As an input, the robot takes a piano roll. This is a long strip of paper with music printed on it, which can easily be fed through the reader. A rotational servo keeps the strip feeding at a constant speed, and passes it through the reader.
The reader is based on a Melexis MLX75306 linear optical array. This IC is a 142 x 1 array of photodiodes, which is designed for fuel quality sensing in cars. In this project, it’s been repurposed as a camera to read the music as it passes by. An array of LEDs illuminates the piano roll, providing a more accurate reading.
The components are connected to an Atmel ATmega1284P, which does all the required control and processing. It creates a MIDI output of the piano roll, which can be connected to any hardware or software synthesizer.