import { measureImpulseResponse, downloadWav } from 'impulse-response';
var audioContext = new AudioContext();
function getMic(cb) {
navigator.getUserMedia(
{ audio: { optional: [
{googEchoCancellation: false},
{googNoiseSuppression: false},
{googHighpassFilter: false}
] } },
function (stream) {
cb(audioContext.createMediaStreamSource(stream));
}
);
}
getMic(function (micAudioNode) {
measureImpulseResponse(micAudioNode, audioContext.destination, {
sineSweepLengthSecs: 5.0,
startFreq: 60.0,
endFreq: 16000.0,
impulseResponseLengthSecs: 1.0
}).then(function (impulseResponseWAV, buffers) {
console.log("impulseResponseWAV is a binary blob: ", impulseResponseWAV);
downloadWav(impulseResponseWAV, "ir.wav");
var irAudioBuffer = buffers.irBuffer;
var convolverNode = audioContext.createConvolver();
convolverNode.buffer = irAudioBuffer;
});
});