Drum machines are ubiquitous in modern music, but playing them live presents a challenge. When playing electronic rhythms live, whether using a drum machine or a laptop, it can often appear that a musician is simply pressing "play" on a backing track, removing much of the perceived spontaneity of a live performance.
My drum machine, DrumKid, aims to tackle this problem by using a variety of controls to alter a drumbeat live, using randomly generated drum hits which augment the original beat. Rather than being designed as a pre-programmed backing instrument, DrumKid aims to be a playable instrument in its own right, with continuously adjustable controls that work well in a live setting. My intention was to create an engaging, interactive device that, like any musical instrument, can be mastered over time with practice.
DrumKid has the following features:
- 4 real-time control knobs
- 20 controllable parameters
- Save/load function
- Tap tempo
- 3.5mm line/headphone output
- Lo-fi mono 8-bit sound
- Powered by 3xAA batteries
DrumKid is an open-source, hackable product based around an ATmega328 chip, as found in an Arduino Uno. The final product features a minimalist design consisting of a single PCB with buttons, knobs, and LEDs mounted on one side, and all other components mounted on the other side. Two laser-cut sections are used to protect the electronics.
I have made several identical fully working prototypes of DrumKid, and I am happy with the audio quality, playability, aesthetics, durability, reliability, and battery life. These prototypes have been distributed to musicians in the UK who have been giving me feedback on the current design. I am currently using this feedback to tweak the firmware and PCB layout for what I hope will be the final design. DrumKid should be available to buy soon - you can sign up to my mailing list if you want to be kept up to date.
DrumKid can also be constructed as a breadboard/stripboard project using an Arduino Uno - see the build instructions for details.
All necessary files can be found on this page and/or the DrumKid GitHub repository.