Drumpiler
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!
Download:
(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:
- gcc -D USESDL -I c:\mingw\include\SDL -o drumpiler.exe -lmingw32 -lSDLmain -lSDL drumpiler.c
Linux SDL:
- gcc -D USESDL -o drumpiler `sdl-config --cflags --libs` drumpiler.c
Linux OSS (preferred):
- gcc drumpiler.c -o drumpiler
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
#fill
d 16
> S
* *
. 8
. 8
. 8
. 8
#main
t $andante
d 8
l 4
> BSc C
. 8 8 8
. 8
. 88
. 8
. 8 8
. 8 8
-fill
e
> 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.
- w s volume panning filename
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
Conclusions:
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)