Arduino MIDI Drums

Piezoelectric transducers are interesting components capable of converting mechanical stress into electrical charge and vice versa. If voltage is applied to its terminals, the crystals deform, so by driving it with a specific waveform at a certain frequency, we can produce audible sound. On the other hand, if we apply stress or deformation on the crystal lattice, it generates an electric pulse.

In this project, the transducers' output is periodically sampled by ADC on Arduino UNO, and corresponding MIDI messages are being sent over the serial port, so we can detect any external force piezo elements. The aplitude of the generated signal is also proportional to the force we apply, so we can make these drum pads velocity sensitive.

The serial messages coming from Arduino need to be parsed, such that the computer interprets them as MIDI messages. For this purpose, a MIDI to Serial Bridge is used. Alternatively, some boards like Arduino Zero, Due, or 101 support native USB interface, which eliminates the need of any external software. However this also requires a firmware modification which might be a good stepping stone for a next project.

Resources