I have imported a wav sound that
a = Import["sound.wav"]
and we know that
soundStrength = a[[1]][[1]]
is a list of sound strength at each sample point.
Now I have a sound file of a metal ball keeping falling onto ground and jumping up, the wave is like this
It actually is a series of Damped sine wave with their maximum decreasing too.
Now I want to find every collision point, that is the index of each local maximum (absolute value) of the list soundStrength
.
The collision in the end phase may be very dense like this
As suggested, here is the wav file: https://www.dropbox.com/s/iht8fzsf3yvzwv6/temp.wav.
EDIT: This problem is not to simply find all local maximum value, but to find a maximum in a range. And the range varies(more specifically, the range is narrowing).
After using MaxDetect
, we can get something.
This is a general look at the points(after using MaxDetect
once):
And this is a view of endmost part:
Now the difficulty here is to find the highest points which belongs to its own region. Or we can say how to find the points which can form an envelope line of the graphic.