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.