Unless you’re very new to the world of technology, you have no doubt heard the angry screech of a dot matrix printer spitting out a page of chunky text. One clever fellow has managed to re-purpose an old dot matrix printer to function as a MIDI-compatible sound generator. It’s capable of playing 21 notes with up to 16 simultaneous channels. The result is pretty cool.
So how’d he do it? An Atmega8 microcontroller is wired up to the main board of the printer. It accepts the incoming MIDI signal and a Xilinx Spartan-3E development board drives the stepper motors in the print head and paper feed. These are the same kind of motors used in old floppy disk drives, which is why they can also be tasked with playing music.
The original printer, before it got frankensteined, had a frequency response of about 1kHz. That means the pin would hit the paper as many as 1,000 times per second. The MIDI electronics push that up to 2kHz, which gives a wider range of frequencies, and thus notes. The original pulse width was 300µs, but that can be reduced by the modifications. Smaller pulse widths cause the pins to hit the paper move more slowly and the sound to get quieter, which is how the printer produces the illusion of multiple tracks playing in a complicated song.
Is that too much work to go to for a MIDI-enabled printer? No, because this is awesome.