Monitor Audio Levels
JavaScript
var context = new AudioContext(),
osc = context.createOscillator(),
volume = context.createGain(),
monitor = context.createScriptProcessor();
var processData = function (data) {
var channelData = data.inputBuffer.getChannelData(0),
channelSize = channelData.length;
for (var i = 0; i < channelSize; i++) {
if (Math.abs(channelData[i]) > 1) {
console.log('clipping');
}
};
};
osc.connect(volume);
volume.connect(monitor);
monitor.connect(context.destination);
osc.start(0);
monitor.onaudioprocess = processData;