Theo Verelst Drum and Sequencing Home page
The efforts on this page have thus far culminated in a
functional drum track generator module based on a Bwise
block for graphical entry, and a program to generate
.WAV files with the drum track from the graphical description.
Generating a drum track sample
As an excercise to deal with sequencing, sampling, and
drum sound synthesis, I wrote a small program to generate a
few seconds of (loopable in the future) drum track. It generates
a mono 44.1 kHz .wav sample of a few seconds containing the
mixed down drum samples.
Currently this program (
this
is a previous version)
generates two second (120 Beats per Minute) of loop-able drum track:
8 closed high-hat pulses (exponentially
damped slightly filtered white noise) three bass drum hits
(exp. damped distorted sine), an extended open high hat
(two phase eponentially damped noise) and a snare drum stand in,
composed of a amplitede distorted sine with amplitude and phase
noise. There are procedures to generate
a sample of given lenght at a certain time, and I'll probably
make a file input with a format ameanable to more sequencer like
behaviour.
(
this
is the latest source code, not matching the C code from above).
The idea is that the samples are completely
synthetical, that is mathematically generated, which off course
leaves one with a lot of parameters (see source). Maybe I'll
make a tcltk graphical UI wrapper around this and some other
programs when I have time.
Here
is a version 0 drum track with a bass drum and a closed
high-hat sound.
The above sound file can be graphically represented as:
where the two types of samples and their distribution in
time is clearly visible, and I've included 2 FFT graphs
(thanks to Wavelab).
The latest source code produces
this sound
.
Interface and coupling
I've made a ascii command line version of the drum track generator,
and an encapsulated tcl/tk script to feed it with the right
commands. Iv linked this up with another tcl interpreter, running
the bwise graphical editor, which now also has a drum track
generator and editor block, as shown here:
Combining the Bwise interface with the drum generator program
The Bwise block shown above can store the graphical representation
of the drum track, but needs a (C coded) program to actually
create it. The version of Bwise contained in
this
archive has a button that automatically creates a soundfile
from the current graphical representation: built your own
drum track samples! The drumi.exe program reads commands
from its standard input to create any drum track, and takes
only a few seconds (on a 100 MHz Pentium) to complete the task,
something tcl probably couldn't do.