Arduino as electric drum brain

Hi Guys,

I am fairly new to Arduino and electronics. I am trying to make an interface to get velocity information from an electronic drum pad (piezo sensor) into my macbook to initially use in MaxMSP.

I've bread-boarded a simple sample and hold circuit which I am sending the signal from the drum pad through. Is this over complicating the process? Most of the other drum brain's I have seen simply have either a resistor and a diode across the piezo's output or something similar.

The main problem I'm having is that I'm getting about 5 readings for a hard strike of the pad. I'm assuming this is because the capacitor in the sample and hold is not discharging quite quick enough. I could add a longer delay between samples in my sketch, but I would like to be able to play buzz rolls etc on my pads and adding a longer delay will reduce the accuracy of this.

Anyone got any useful info or experiences on this sort of area?

Cheers

it is because a hit on a piezo will result in an initial high spike followed by a number of decreasing spikes. Check this:

http://todbot.com/blog/2006/10/29/spooky-arduino-projects-4-and-musical-arduino/

To see how to deal with it

Cheers for the reply.

I've already got a smoothed signal from the piezo. I've also got velocity values via the voltage following op amp/ sample and hold capacitor. I was hoping to find out if there was a way of avoiding double triggers from one pad strike through some clever algorithm use.

There seem to be a number of people having the same difficulty. The todbot method would be good for fairly in-accurate uses, such as application in a toy, as it simply solves the problem by using delays in the sketch. But this becomes an issue when you wish to, for example, play a buzz roll or use perhaps 4 pads and play fairly quick double stroke rolls or other such things.

After some further googling this morning the best option seems to be found here I think

http://www.paia.com/ProdArticles/drumsens.htm

The circuit is relatively simple and because the signal conditioning is done in hardware, the accuracy of the overall device isn't compromised.