a-weighting
Perform A-weighting (and others) for a frequency.
Useful for creating believable spectrum images and audio measurements.
Usage
var aWeight = require('a-weighting/a');
var ft = require('fourier-transform');
var frequencies = ft(waveform).map(function (magnitude, i, data) {
var frequency = 22050 * i / data;
return aWeight(frequency) * magnitude;
});
Note that weight function returns normalized 0..1
weight values, it does not do decibels calculation. If you need to convert weight to decibels, do 20 * Math.log(weight) / Math.log(10)
.
Implemented weights:
Credits
Thanks to all the specialists who researched and described these curves (years of work I guess) and wikipedia for detailed articles on this.
Related