|
|
digg this!
Background
This 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.
Concept
I wanted to make an inexpensive electronic drum setup that could be used with 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:![]()
Implementation
My 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.![]()
Click on the image below to see a video of Ardrumo in action:![]()
Pad Construction
Bill of Materials
- Arduino prototype board $35
- pad materials x 6 $6
- piezo transducer (1500-3000Hz) x 6 (Radio Shack part #273-073) $12
Total $53Assembly Instructions
![]()
Wiring
The 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.![]()
Download
Mac OS X Universal Application
Compatible with OS X 10.4 (Tiger) and 10.5 (Leopard) (see below for troubleshooting). 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.Screenshot
![]()
Latest Version
Ardrumo (Universal) (beta v100.2) (February, 16, 2008)
- Updates RXTX Java library. Thanks to Jenna Fox for suggesting the solution to the permissions issues mentioned in Troubleshooting section below. With the latest RXTX library, these permissions corrections should not be needed.
Previous Versions
Ardrumo (Universal) (beta v100.1) (November 8, 2007)Ardrumo (beta v100.0) (November 2, 2007)
- Fixes problems with PowerPC machines.
- Initial release.
Source Code
SVN repository
- NetBeans-compatible Java project directory
Arduino Sketch
ardrumo.pde Load this sketch into your Arduino and connect up to 6 piezo sensors.
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
Acknowledgements
Java Libraries
Ardrumo uses the following Java libraries. Many thanks to the developers!
References
This project was inspired by the following projects, especially todbot's:
Troubleshooting
Ardrumo has been tested with Mac OS X 10.4.8 (Tiger) and 10.5 (Leopard) on both PowerPC and Intel-based Macs.
Users who run into unrecognized serial port errors should correct permissions by doing the following:
- 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"
- I set all privileges to: "Read & Write"
- Close Info
- 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"
- I set all privileges to: "Read & Write"
- Close Info
- DONE
(This information from (bacadd) here)
Support
If you use Ardrumo and like it, please drop me a line: mschaff<AT>gmail<DOT>com I'm happy to answer questions or take suggestions for improvements.
For feature requests or general Ardrumo/Arduino community discussion, please post a message here.

