Zero crossings from a 1D signal
Well, fine for good signals. Good signals means low noise level, absense of features like very slow volume change rates, etc.
Otherwise, you need things like FIR filter(s) to average and diffifentiate signal and use an interpolation to increase precision of the detection.