I am making some software to analyze digital sound data. My first step is to find where all the attacks are, or where the starts of notes are. I want to find where there is a significant increase in volume, working with both relative and absolute differences. The difficulty with this is that the volume varies with each sample (fluctuation is what causes the sound itself).

I have a few ideas. I was thinking of taking various sets of samples, maybe ten or so, and taking the average of those. Then take an adjacent set (possibly overlapping) and comparing the two averages. Alternatively, I could compare maximums of the sets. Or maybe I don't need sets, but I could just ignore the low samples and compare only the high points?

I was hoping someone could offer some advice, web articles, or experience. Anything will be greatly appreciated.

It would seem what I need is an envelope follower. Google hasn't been much help, anyone know of any good links/tutorials?

I found your site, Ezzaral, very helpful. Thank you.