Four Steppers Make A Four-Voice MIDI Instrument

Any owner of a budget 3D printer will tell you that they can be pretty noisy devices, due to their combinations of stepper motors and drives chosen for cost rather than quiet. But what if the noise were an asset, could the annoying stepper sound be used as a musical instrument? It’s a question [David Scholten] has answered with the Stepper Synth, a device that takes an Arduino Uno and four stepper motors to create a four-voice MIDI synthesiser.

Hardware-wise it’s as simple as you’d expect, a box with four stepper motors each with a red 3D-printed flag on its shaft to show rotation. Underneath there is the Arduino, plus a robot control shield and a set of stepper driver boards. On the software side it uses MIDI-over-serial, so as a Windows user his instructions for the host are for that operating system only. The Arduino makes use of the Arduino MIDI library, and he shares tips on disabling the unused motors to stop overheating.

You can hear it in action in the video below the break, and we’re surprised to say it doesn’t sound too bad. There’s something almost reminiscent of a church organ in there somewhere, it would be interesting to refine it with an acoustic enclosure of some kind.

This isn’t the first such instrument we’ve brought you, for a particularly impressive example take a look at the Floppotron.

17 thoughts on “Four Steppers Make A Four-Voice MIDI Instrument

  1. the initial d track seemed out of tune, wonder what causes the issue, as i assume the code uses standard musical frequency scales. quality of music is compareable to an 80s microcomputer.

    1. It certainly sounds that way, but I found that it was just because the auxiliary bass tracks were overpowering the primary theme, making it seem off. When I duplicated the primary theme with 3 channels it sounded much better.

    2. It does I admit, but I promise you it’s because the bass tracks are overpowering the primary theme. When I duplicated the main theme to three channels (on the PC side) and only one for a bass track it sounds exactly like you’d expect.

      1. Now that wasn’t nice and most likely not very objective. If your experience with a stepper motor driver like the DRV8825 is that it skips steps, then perhaps your experience with steppers isn’t sufficient to understand the problem of why steps are being missed.

        I’ve been using these extremely small and cheap drivers in my home-made 3D printer and I never experienced problems with steps being missed (been using it for 5 years now). Now, it does require a fair bit of knowledge of your system (something you can work out via trail and error to seek the limits), but as long as you don’t want to accelerate “like a dragster racer” or want to travel at speeds that approach “ludricrous speed” you’ll be fine. Now it is important to add cooling (don’t ask me why this isn’t fitted standard, and I certainly will be the first to admit that adding heatsinks to an SMD device without proper metal tabs feels wrong. But although the additional (required) heatsink is way beyond my comfort level, it does seem to do the job.

        Anyway, I’m pretty sure there are better options these days, but the DRV8825 isn’t really that bad.

  2. At 1:17 there is a bass note playing, but the previously and subsequently used centre left servo that plays this note was not moving? Reminiscent of 80’s game console tunes, unsurprisingly most of this being in a minor key.

    1. Yep, it’s a resonance note! Instead of a horrible grinding sound I programmed the motors to oscillate in place at those frequencies. I’d change the coil current dynamically instead, but it’s not easily accessible with the arduino shield module I used. When a resonance note plays it will also change direction of the indicators 50% of the time for the following note.

  3. Needs some virtual “mass”. Scalable accel/decel for more natural resolution. Has anyone plotted the audible frequency range or limits of steppers by model? I’d imagine smaller motors could reproduce a tighter range of wave forms. This would have been interesting to see with four different sized motors.

    1. Yes for the multiple stepper sizes, but I just bought identical models in a set to save money.
      I did want to implement proper acceleration, but the way the old code was built didn’t really allow for it easily without redoing everything. Maybe next time?

  4. Not an enclosure but a soundboard. That is the thinking towards a louder acoustic sound. Spruce, maybe that thin hobby plywood but not plastic or a metal box. The magic of spruce is Mach10! The wave of vibration travels much faster than in air, thus propagates more.

    Epoxy those steppers to an old piano soundboard and the sound will amaze you. It will bring out the midrange tones over the zingy square wave harmonics. This is something like the Choracello, a turn of the last century attempt at “electronic” sounds before tube and loudspeaker tech.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.