Drum Master

DIY Electronic Drum Brain

 

Slave Software

The Drum Slave software is written in Java, and provides a pluggable platform allowing for multiple sample mappings, easily configurable kit setup, etc. In essense, this software reads a hit from the serial port, and plays a sound correlating to that sensor. It sounds simple, right?

Actually, it is simple. Most configuration functions can be accessed via GUI configuration screens, and the logic is modular enough to let you add / modify your own classes with relative ease.

I use JOAL (a Java implementation of OpenAL) for sample playback, (and I have also implemented a semi-functional proof of concept Sample implementation using the Java media framework). If you have a favourite sound library you wish to use, however, it is quite easy to make your own implementation - just implement the Sample abstract class.

Serial communications are handled by RXTX, a cross platform JNI implementation of Serial communctions for Java.

In order to run this software, you will need the following:

You can download snapshots below. In general, you will likely want to download the most recent version, unless you have a specific reason to do otherwise.

I have also released a few samples whose licenses allow it. These samples are copyright the original authors, and are released under the terms listed by the author. A readme file is in each folder, describing the samples, the author, and where I got them from. If any of the authors has a problem with me redistributing them, please let me know and I will remove them. Included in this sample pack are some TR 808 samples, various drums, and some cymbals.

Screenshots

Below are some screenshots, as of June 26th 2009. There are four main windows in the Drum Slave software. First, we can see the main window, which includes per-pad volume adjustment:
Main window

Next we can see the hardware configuration screen. Here you map logical names to each of the Drum Master's analog (0-31) and digital (0-7) channels:
Hardware configuration window

Next we have the logic screen, where you can assign python functions and set mapameters for each of the pads.
Logic configuration window

Finally we can see the sample assignment screen. This allows you to assign samples to each of the pads. The first pulldown correlates to folder names in the samples folder; the second pulldown correlates to file names.

Samples configuration window

Python version

When I first started this project, I was using Python as the slave software, because of the simplicity in talking to a serial port in Python. However, in May 2009, when I was working on improving my drum set by using a rack mount system, I decided to do a complete re-write of the slave software. As discussed above, I am now using Java instead of Python (mostly because of my familiarity with Java - Python is a great language, but I am far better at programming in Java). For information about, and downloads of, the original software, please see the Drum Slave version 1 archived page.