At some point in the distant past, someone noticed that certain electric motors produce sounds that vary in frequency with their speed. And when the frequency of sound is variable, you know what that means: Musical notes! Since then, we’ve seen all sorts of musical motorized devices, including hard drives and floppy drives. Now, YouTuber Adam Zeloof, along with Matt Martone, have utilized the effect in a Stepper Music Box to play the Super Mario Bros. theme — and many others.
The music box is made up of three stepper motors, their drivers, an Arduino, and a power supply for all of that. The stepper motors also have a scientist (Einstein?) character and two disembodied hands mounted on top. They don’t affect the sound, but add a bit of visual flair.
Each of the three steppers is controlled independently, so three musical parts can be played simultaneously. The Arduino tells each one how fast to spin at a given moment, which produces a range of musical notes. Zeloof and Martone’s Arduino code takes MIDI signals, and converts them to the proper speed to play the given notes.
They don’t mention how exactly the desired note is translated into a speed, but there was probably some trial and error involved. But, the results speak for themselves, and the Stepper Music Box can faithfully play a variety of jingles from video games and movies.