DrumReplacer

<< Back
Drumreplacer was developed as a (somewhat primitive) Linux alternative to Drumagog. It is a JACK-enabled tool which sends a MIDI note when an audio peak is detected.

Triggering a MIDI note on audio peaks permits you to control a sampler, which in turn can play all kinds of sounds when the audio peak is detected. The typical application for this is to replace or enhance drum sounds of recordings- most importantly in a studio setting.

Example: Enhancing the drums of a recording.
The following is an example of sample-enhanced drums. I used an existing, mixed down stereo track; it is easier to replace drums in a multi-track studio setting as the various parts of the drum kit are likely to be isolated from each other and the rest of the sound.

Crushing Day- partially drum enhanced

The file starts with about a minute worth of audio where drums were enhanced using DrumReplacer. After that, the MIDI drums are disabled in the audio track, and only the original audio is played back (which sounds much more bland). Another few switches between enhanced and original are done for demonstrational purposes.

These steps were followed to get the result:

  • Load an audio file into a MIDI sequencer such as Rosegarden.
  • Create a tempo track which allows a metronome to be in sync with the audio track.
  • You'll probably want to perform some filtering to distinguish between kick drum and snare drum, for example. DrumReplacer currently doesn't have filtering built-in, but you can use another JACK client for that. I used Jack-Rack for the below example.
  • Route the sequencer audio to the filter, and start up DrumReplacer. Route the filter output to DrumReplacer.
  • You'll probably want to be able to perform *some* editing in the resulting MIDI, so route the MIDI output of DrumReplacer to the sequencer and record the resulting MIDI. Shift it forward a bit (to compensate for the added latency) and quantize as desired.
  • Perform whatever editing you need to, and route the MIDI output of the sequencer to a sampler (for instance, the excellent drum computer 'Hydrogen').



DrumReplacer has a little GUI which allows controlling its parameters in real time.
In the UNIX spirit, DrumReplacer is most useful when combined with other programs, in this case via JACK. An audio signal may be processed by other Jack applications before offering it to DrumReplacer, possibly making it suitable to extract drums from existing audio tracks (your success rate may vary). The MIDI notes sent out by DrumReplacer may be sent directly to a MIDI port, to a software synthesizer or to a sequencer such as Rosegarden or drum machine such as Hydrogen.

DrumReplacer currently compiles only on Linux. It requires the Jack Audio Connection Kit and FLTK.
 
 
Screenshots

A 1-track version existed before. That version is now officially obsolete and unsupported. The current version uses less CPU, is more accurate and allows for multi-track operation. It is basically operational. Here is a screenshot:

Version 0.2.0beta features the rotary knob widget from zynaddsubfx (thanks go out to Paul Nasca) which offers a lot more precision than the default FLTK rotary knob. As a result, drumreplacer now offers more precise control than ever before.

Current status

The application is operational. Any suggestions are welcome.

Donations

If the program is useful to you, consider a donation. A separate paypal button will be available soon; until then you can use the left-side buttons on the HD24tools page.

Downloads

Select the version for your platform:
Platform Version Size File
Linux (source) 0.2.1 beta 1,193,973 bytes Drumreplacer 0.2.1 beta
0.2.0 was not /bin/sh compatible, which causes a problem in ubuntu. 0.2.1 beta is the same program as 0.2.0 but it uses bash as the default shell and assumes linux-only compilation- so that it will actually build again.
Linux (source) 0.2.0 beta 1,194,849 bytes Drumreplacer 0.2.0 beta
Linux (source) 0.1.0 beta 1,193,183 bytes Drumreplacer 0.1.0 beta

Contact me

All help, suggestions and feedback are welcome and encouraged. Contact me for feature requests. Send them to my mail account mrjb.dnd.utwente.nl (make sure to replace the first dot with an @) or contact me via messenger at icq account 45738902, msn account kleinebre@hotmail.com (for as long as it will still last) or aim kleinemrjb.