Troubleshooting (or, the problem is always where you last look)

A project log for Drum Master

Electric drum set based on Teensy 3.1 and Audio Board

the-big-oneThe Big One 04/28/2016 at 14:380 Comments

A couple weeks back I started experiencing intermittent issues where my ride cymbal would play samples without me hitting it. It was first noticed in a small jam session in a church attic where I didn't have access to my scope and such, and was limited in the troubleshooting I could perform. I did the basic stuff, like unplugging the pad (to see if it was a problem with the piezo, the cable, etc). It appeared to be independent of the pad + cable, so when I got home I turned my attention to the main hardware.

Hooking up my oscilloscope, I could clearly see that there was no signal occurring when the ghost hits were being triggered. I followed the signal path all the way down to the ADC, with no luck.

Having thus confirmed that the problem was in the software, I started adding debug statements to the beginning of a play event. Bafflingly, I was not even seeing *those* print when the spurious sounds were triggered!

I finally thought to look at the sample itself. Sure enough, the problem was there - of the 16 samples (all at different velocities) for my ride cymbal, a handful were somehow duplicated - they played the same thing twice, after a 12 second delay. Doh!

Re-converting the samples after fixing my sox conversion script, and the ghost notes are gone. Yay!