The aim of the Edrumulus project is to create a high quality Open Source e-drum trigger module software which runs on a micro processor. It shall fulfill the following specifications:
- The trigger performance shall be similar to the Roland TD-27.
- Overall latency should be as small as possible. The goal is to achieve a latency < 10 ms.
- The required analog front end design shall be as simple as possible using the fewest number of parts possible.
Find all important updates of the Edrumulus project in the change log file and in the discussion forums.
- Positional sensing
- Retrigger cancellation
- Rim shot/cymbol choke detection
- Cross talk cancellation
- Supported micro processor developer boards:
- ESP32 (dual core) DEVKIT V1 or similar
- Teensy 4.0
We want to capture the entire signal without non-linear analog preprocessing. Since micro controllers usually only convert analog signals in the range of 0 to 3.3 V, we have to move the point of operation in the middle of the voltage range.
A circuit diagram of a simplified prototype which only supports a mono piezo pad and
a hi-hat controller input is given in the following picture:
The full circuit diagram of Prototype2 is given in this PDF file.
DISCLAIMER All these circuit diagrams are used for my first prototypes and work fine for me. Use them at your own risk.
The algorithms are developed using a regular audio card. The drum pad output signal is captured and the signal processing and algorithm development is done in Octave. The development runs in three steps:
-
Create the algorithms using a captured test signal and analyze it as a whole. This is the easiest and fastest way to create and improve the algorithms (this is the "playground"). The corresponding source file is algorithm/drumtrigger.m.
-
If the algorithm works ok, it is ported to a sample-based processing. The goal is to make the Octave code as similar to the C++ micro controller implementation as possible. The corresponding source file is algorithm/edrumulus.m.
-
Port the sample-based processing code to C++ and test it in real-time on the hardware. To make sure the port was successful, we send test data to the micro controller, query the processed signal and compare it in Octave to the reference code.
The algorithms are described in this document.
-
Arduino Leanordo Midi Drum Kit. Uses some re-trigger cancellation. The source code can be found embedded in the web page.
-
An Arduino based standalone drum kit Hackaday (Source code). Generates audio, too.
-
Homemade Electronic Drum Kit With Arduino Mega2560 (Source code)
-
Forum threads with technical data
E-Drum Technik-Thread (für Elektrotechnik- und Informatik-Interessierte)