Drum Master

DIY Electronic Drum Brain

Slave Software

The Drum Slave software is written in Python, and provides a pluggable program allowing multiple kit setups, sample mappings, 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 of the code which I have written is for the plugin based architecture, which allows end users (i.e., you) to add their own sample mappings, hardware kits, even the library used for sound playback, without modifying the rest of the software. Although it is currently command line based, I am planning on adding a GUI once I get the set working as I want it to.

I currently use pygame for the actual playing of drum samples. This is a cross platform library, and seems to include all the neccesary functions to control playback, such as playing multiple samples at once, stopping samples half way through (muting a cymbal, for instance), etc. As far as performance goes, it seems to work quite well, and does not seem to impose any latency on the playing of sounds. However, given the modular nature of the slave software, you can easily change your playback code to something different, if you wish to use a library which is closer to your OS's sound APIs.

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

You can access a snapshot from October 22 2008 here. (For older versions, change the version number, or view all here). Since this is currently in heavy development (and since I have not yet set up a publicly accessible GIT repository), please email me for the absolute latest software.

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 July 4th 2008. 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