This project encompasses the analog electronics, microcontroller / software, and physical design / build of the actual drum set. The end result is accurate, customizable, portable, and ergonomic.
The pads are designed around mesh heads, for a quiet and realistic feel. The pads' piezo sensors are read into a max voltage hold circuit, and buffered / amplified by an op amp. The amplified signal goes through an analog multiplexer, which is then read by the Teensy ADC.
Once the value is read into the microcontroller, logic is applied based on the current state (hihat pedal, previous strikes, etc) and, if applicable, an audio sample is started. There can be 15 concurrent samples playing (when the teensy is overclocked to 120MHz). When all samples are already being played back and a new one is requested, we stop a currently playing sample to allow the new one to start. The sample to be stopped is chosen in such a way to minimize interruptions.
There is a simple menu system built around an encoder + button and a 20x4 character HD44780 display. This lets you pick a kit mapping, adjust volumes, calibrate pads, load new samples, etc.