What is “Duimdla”?
“Duimdla” is the name of a MIDI instrument I designed and created. It is based roughly off of the African Thumb Piano and it’s many incarnations. Instead of having many different prongs each producing a note, I designed it so that it is one prong producing a variety of notes. This was my Senior Thesis project for my BFA in Multimedia at the University of the Arts.
Why make this instrument?
The idea was to create a MIDI instrument that is both easy to play and easy to learn. The project originally started with my intention to build a MIDI Kalimba based off of this design:
In the early stages of the research for this, it became clear that this may be too large an undertaking for the time period I had (a little over a semester). So I redesigned it around one prong and 3 buttons.
Long story short, after doing extensive reading and ergonomics and designing with users in mind, I came to this design:
Check these posts if you want to see more pictures related to Duimdla. Many of those pictures follow the development of the project, so they may be good to look at if you would like to make a similar project.
How do you play this instrument?
The instrument is designed to be easy to play, as well as to be easy to learn. Click on the pictures to see a detailed description of what everything does.
How does this instrument work?
The inner workings of this instrument are not so simple. I’ll let the pictures do the talking here. Click on them for more info.
The Goods
Here is the source code for the project.
Download
Contents of this file:
- Instrument Arduino sketch
- Circuit schematic
- README file
- LICENSE file (Outlines the GPL)
- Peak Analyzer Arduino sketch
- Peak Analyzer Processing sketch
Besides the instrument firmware and the schematic, I am including the Peak Analyzer I wrote for calibrating the circuit. I’m sure this could be very useful for tweaking the resistor values for the preamp. Just a warning: the Peak Analyzer code is not commented yet. It’s not an overly complicated program, but nonetheless, it is not exactly the most readable code.
As for the instrument firmware, it is still a little inaccurate in how it reads the prong. The preamp still needs some more calibrating and the firmware itself could be a bit more efficient. If anyone makes adjustments to the code for this, please let me know. I’m not asking that you ask for my permission, but rather that I am genuinely curious as to what projects people can derive from this. Also, any improvements and optimizations to the code are welcome.
The Future
Future
Future
Right now, this iteration of “Duimdla” meets its goals of being easy to learn and easy to play. However, I want to include a level of depth to it that once the instrument is mastered, it keeps people coming back to it. The idea is to keep the instrument easy to learn at first, but then to allow the musician to explore more complicated facets of the instrument once they’ve mastered the more simple functions.
The idea I came up with is to add a 5-position toggle switch right above the two octave buttons. Each position of the switch will represent a preset. The first preset allows the instrument to play a single note at a time. The other four presets will allow the instrument to play chords built off of the note being played.
Finally, for even more depth, I was thinking of adding a button above the sustain button. When held down, it allows the player to write a new chord to a selected preset. What would happen is that the first note the player plays while holding down the button is seen as the root of the chord. All notes played after that note while the button is held down are saved as notes in the chord relative to the root. In other words, the distance the notes are from the root is saved. Once the button is released, the chord can now be accessed from that preset position. Every note played will come out as the custom chord with the current note as the root.
That’s my plan. Anyone who wants to give this a try on their own is more than welcome. But please keep me in the loop, as I would like to see how you accomplish this.
Additional Resources
Some websites I recommend for the brave souls who would like to make an instrument similar to mine:
- FET Guitar Preamp – For those who would like to attempt a FET-based Preamp instead of an OpAmp-based Preamp.
- MIDI Output – Tom Igoe shows how to get an Arduino to output to MIDI. I used a large chunk of this in “Duimdla”.
- The Secrets of Electric Guitar Pickups – This is a good article just for information on how the guitar pickup functions and some of the principles behind it.
- Understanding Guitar Wiring – Another good resource just as far as guitar pickups go.
- My First Homemade Pickup – A complete tutorial (with pictures) of how to create a guitar pickup. I recommend reading this before trying to build the magnetic pickup for “Duimdla”.
Some books I recommend for anyone looking to design an instrument or anything for that matter:
- The Design of Everyday Things by Donald Norman
- Emotional Design: Why We Love (or Hate) Everyday Things by Donald Norman
- The Biomechanical Basis of Ergonomics: Anatomy Applied to the Design of Work Situations by E. R. Tichauer
- Ergonomics for Beginners: A Quick Reference Guide by Jan Dul and Bernard Weerdmeester
- Physical Computing by Dan O’Sullivan and Tom Igoe
- Getting Started in Electronics by Forrest M. Mims III






0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment