Arduino MIDI drum

Simple DIY drum based on a Guitar hero Drum set.

Recognized as an USB MIDI controller, working in any MIDI capable device (Computers, Phones, etc…).

Resources needed

  • Arduino compatible micro-controller
    • With USB capabilities (e.g. atmega32u4)
  • Piezo sensors (As much as needed)
  • 1M Ω resistors (One for each piezo sensor)
  • Soldering iron and solder wire
  • (Optional but recommended) Guitar hero drum set

Example of circuit

Sensor configuration

On Sensor.h file you will find available configurations and definitions for each sensor out-of-the-box.
Sensors should be reflected in MIDIDrum.ino at sensors array variable.

Note: I’ve found that some pads on my Guitar Hero Drum set work better with quadratic distribution of force instead of linearly mapping the analogRead to the MIDI velocity value. If you found that this does not work for you, simply change the sensibility property in your sensors for 1.

MIDI notes table

Please find below a table containing MIDI notes in decimal, these numbers shall be used when emitting notes.

Octave C C# D D# E F F# G G# A A# B
0 0 1 2 3 4 5 6 7 8 9 10 11
1 12 13 14 15 16 17 18 19 20 21 22 23
2 24 25 26 27 28 29 30 31 32 33 34 35
3 36 37 38 39 40 41 42 43 44 45 46 47
4 48 49 50 51 52 53 54 55 56 57 58 59
5 60 61 62 63 64 65 66 67 68 69 70 71
6 72 73 74 75 76 77 78 79 80 81 82 83
7 84 85 86 87 88 89 90 91 92 93 94 95

If further notes required check this generator script, used for generating the above table

GitHub

View Github