As far as giving mechanical instruments electronic control goes, drums are probably the best candidate for conversion; learning to play them is challenging and loud for a human, but they’re a straightforward matter for a microcontroller. [Jeremy Cook]’s latest project takes this approach by using an Arduino Opta to play a tongue drum.
[Jeremy]’s design far the drum controller was inspired by the ring-shaped arrangement of the Cray 2 supercomputer. A laser-cut MDF frame forms a C-shape around the tongue drum, and holds eight camera mount friction arms. Each friction arm holds a solenoid above a different point on the drum head, making it easy to position them. A few supports were 3D-printed, and some sections of PVC tubing form pivots to close the ring frame. [Jeremy] found that the the bare metal tips of the solenoids made a harsh sound against the drum, so he covered the tips of six solenoids with plastic caps, while the other two uncoated tips provide an auditory contrast.
The Arduino Opta is an open-source programmable logic controller normally intended for industrial automation. Here, its silent solid-state relays drive the solenoids, as [Jeremy]’s done before in an earlier experiment. The Opta is programmed to accept MIDI input, which [Jeremy] provided from two of the MIDI controllers which we’ve seen him build previously. He was able to get it working in time for the 2024 Orlando Maker Faire, which was the major time constraint.
Of course, for a project like this you need a MIDI controller, and we’ve previously seen [Jeremy] convert a kalimba into such a controller. We’ve seen this kind of drum machine at least once before, but it’s more common to see a purely electronic implementation.
Giving A Drum MIDI Input With Lots Of Solenoids

all that building, then no proper demo of it working…
Yeah, I probably should have shown it playing more/better. Maybe I’ll do a followup.
Reminds me of Animusic’s Pipe Dream, and the Intel real life version I saw at a MakerFaire.
iNtel’s balls didn’t always hit the drain pipes …
Thanks for the writeup!