コード例 #1
0
ファイル: bpm.go プロジェクト: pombredanne/rand
func comb(b audio.Buffer, delay int) (avg, n float64) {
	length := b.Len()
	var (
		i    int
		done int
	)
	for i = length; (i - delay) > 0; i-- {
		delayed := i - delay
		if delayed < 0 {
			break
		}
		done++
		avg += (float64(b.At(delayed)) + 1.0) / 2.0
	}
	if done == 0 {
		//fmt.Println(avg, done, avg / float64(done))
		return 0, 0
	}
	return avg, float64(done)
}