BackgroundThis is a software MIDI interface designed to accept serial data from an Arduino board and convert it into MIDI drum data in OS X. The application acts as a bridge between sensors connected to the Arduino board and applications such as GarageBand or Logic without requiring additional MIDI hardware. All data is transferred directly over the USB connection and no additional power source is needed.
The Ardrumo application has been an enormous success since its launch. To date this site has had tens of thousands of visits and the Ardrumo app has been downloaded almost 3500 times all across the world.
Ardrumo is free open source software, but please consider a small donation to keep the project going.
GarageBand. There are some great projects out there that describe how to output MIDI from an Arduino board (see References below), but these require additional hardware (e.g. MIDI modules, MIDI interface, etc). Since most people don't have extra MIDI hardware, I decided to just write some software to accept serial data from an Arduino board and make a virtual MIDI instrument that would be recognized by GarageBand. Here is the idea:
My SetupMy homemade drum kit is pictured below. Each pad is a circle of Duralar (i.e. thick mylar) sandwiched between two pieces of foam (from Pearl Art Store). Attached to the Duralar circle is a piezo sensor extracted from its plastic casing. Everything is then just glued together. Each pad cost about $3.00 to make.
VideoClick on the image below to see a video of Ardrumo in action:
Bill of Materials
WiringThe wiring is very similar to todbot's. I borrowed his image and modified it below (hope he doesn't mind). I didn't bother using a Zener diode as todbot suggests. It may be safer to do so, but I haven't blown out the Arduino board yet.
Mac OS X Universal ApplicationCompatible with OS X 10.4 (Tiger) - OS X 10.10 (Yosemite) (see below for troubleshooting). This software was written in Java, so newer versions of OS X will require Java to be downloaded. This should be automatic. This also assumes you have installed the Arduino drivers and have a working connection between your Mac and Arduino board (how else would you load the sketch below?). If you don't have an Arduino board, you can still run the application and click the on-screen triggers to see how it works. To use it, plug in your Ardruino board with drum triggers attached, start GarageBand (or another MIDI-compatible application), and launch Ardrumo.
Latest VersionDownloads require a quick registration. Registration lets me gauge how useful this software is to users. A link will be sent to your e-mail, but don't worry. I will not use your e-mail address for any other purposes and will never send you any other e-mails or spam.
Ardrumo (Universal) (beta v100.2)
Previous VersionsArdrumo (Universal) (beta v100.1) (November 8, 2007)
Source CodeSVN repository
Arduino Sketchardrumo.pde Load this sketch into your Arduino and connect up to 6 piezo sensors.
Because of security "improvements", OS X Gatekeeper may prevent Ardrumo from starting depending on the settings. Unfortunately, the error shown below implies the download is corrupt when, in fact, it isn't.
To resolve this, please launch OS X 'System Preferences' and adjust your 'Security & Privacy Settings' to allow apps downloaded from anywhere to run (see below). Now, try to launch the Ardrumo application. If successful, Ardrumo will continue to start correctly even if the security setting is changed back to a more restrictive setting, so go ahead and change it back to the original setting. For a more detailed explanation of this error, see here and here.
Other known issues
There are several known issues that will be addressed in the next release. Stay tuned! Planned features/bug fixes include:
- Bug: Correct double triggering
- Work in progress: the Threshold knob is not wired up yet
- Feature request: Save "scenes" feature
- Feature request: MIDI channel support
Under Finder click on the "Go" Menu Select "Go to Folder..." Type "/var/" Finder will open var folder. Right click on folder named "lock" and select "Get Info" (some users have reported a missing _lock_ directory. If it is missing, you will need to create it) Open drop arrow titled "Sharing & Permissions" Set all privileges to: "Read & Write" Close Get Info dialog Go to the Var folder on the finder and open the "spool" folder Right click on folder named "uucp" and select "Get info" Open drop arrow titled "Sharing & Permissions" Set all privileges to: "Read & Write" Close Get Info dialog(This information from (bacadd) here)
Java LibrariesArdrumo uses the following Java libraries. Many thanks to the developers!
ReferencesThis project was inspired by the following projects, especially todbot's: