the Compiled Drum Machine

Copyright (C) 2003 by Stefano Maini (a.k.a.Sty)

NEWS - September,17 2003

Drumpiler is now hosted on Sourceforge, please Visit our Project Page!


(Current version: 0.9.0 - Released February,13 2003)

Sources - Linux/Windows sources

Windows Binary - the core application
SDL library - keep it in the same directory of drumpiler.exe
Windows GUI - a very simple GUI interface

Compile the sources:

Windows MINGW+SDL:

Linux SDL: Linux OSS (preferred):

Write drum programs:

Let's start with a simple example!

; drum program example

$ andante 90

w B 64 000 bassdrum.wav
w S 60 000 snare.wav
w c 32 32L charleston.wav
w C 48 16R crash.wav


d 16
> S
* *
. 8
. 8
. 8
. 8


t $andante
d 8

l 4
> BSc C
. 8 8 8
. 8
. 88
. 8
. 8 8
. 8 8
> BC
. 88

That's it. You have to write a plain-standard-ASCII-text-file. This file is build up of commands (one command per line). this is only a comment, it is ignored by drumpiler. declare an integer constant value. load a new drum sample. [s] is a one-character symbol ID. [volume] integer number between 0 and 64. [panning] range from 64L (far left) to 64R (far right) zero means center. [filename] WAV-44100Khz-Stereo sample to load declare a function. Usually #main is the first function that drumpiler calls set tempo in bpm. You can use a declared constant also. set metric division. (4=quarts,8=octaves,.. etc). You can use a constant also. start a loop repeated 'value' times. You can use a constant also. loop ending set the column-sample associations. The ID list is a bunch of ASCII symbols declared by the 'w' command. play the samples at specified volume. You must place a number between 0 (mute) and 8 (maximum) in the right column. you place a * in the columns where samples must be chained. Chaining means that if a beat is still playing in this column, then it will be stopped before starting a new one. Calls a previously declared function. The state of tempo and chainlist are preserved when the call is returned.

Launch Drumpiler:

Syntax: drumpiler [-o output] [-p drmpath] [-f mainfunc] drumprg

-o output output your sound to a WAV file. If not specified, drumpiler will use the soundcard (default SDL audio device, or standard OSS /dev/dsp)

-p drmpath specify the full path were drum samples are stored. The ending '/' slash must be included. (default=current directory)

-f mainfunc specify the drum program starting function (default=main)

drmprg the file name of your drum program

Example: drumpiler -o mixed.wav -p /home/sty/drums/ -f begin cooljazz.txt


This software is distributed under GPL, use ad your own risk. E-mail me about anything that concernes drumpiler.
"Ask me, I wont't say no, how could I ?"

Copyright (C) 2003 by Stefano Maini (a.k.a.Sty)