Giter VIP home page Giter VIP logo

edrumulus-esp32-with-drum-samples's Introduction

Edrumulus

PlatformIO CI

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.

Videos

News

Find all important updates of the Edrumulus project in the change log file and in the discussion forums. A road map of the Edrumulus project can be found in the TODO file.

Features

  • 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

Prototype hardware

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.

Algorithm

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:

  1. 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.

  2. 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.

  3. 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.

Links

edrumulus-esp32-with-drum-samples's People

Contributors

corrados avatar jstma avatar thijstriemstra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.