analyser-frequency-average
Version:
gets an average Hz between two frequency ranges
18 lines (15 loc) • 629 B
JavaScript
var frequencyToIndex = require('audio-frequency-to-index')
module.exports = analyserFrequencyAverage.bind(null, 255)
module.exports.floatData = analyserFrequencyAverage.bind(null, 1)
function analyserFrequencyAverage (div, analyser, frequencies, minHz, maxHz) {
var sampleRate = analyser.context.sampleRate
var binCount = analyser.frequencyBinCount
var start = frequencyToIndex(minHz, sampleRate, binCount)
var end = frequencyToIndex(maxHz, sampleRate, binCount)
var count = end - start
var sum = 0
for (; start < end; start++) {
sum += frequencies[start] / div
}
return count === 0 ? 0 : (sum / count)
}