Room impulse response measurement - in the browser!
Check it out on danielrudrich.github.io/Broom.
Broom uses the WebAudioAPI to play out a sine sweep and record the room response with the microphone input.
Playback and recording is handled by a custom AudioWorkletProcessor
, so that both are in sync.
The captured sweep response will then be deconvolved using a weighted inverse sweep to yield the impulse response of the room. This happens in an OfflineAudioContext
. The result will be displayed and encoded into the Wav format for the user to download.
In case you want to check out the project and run it locally:
npm install
npm run build # or `npm run watch` for an auto-recompilation if a file changes
You will need to start a webserver serving the dist/
folder e.g. with live-share, http-server, ...
AudioWorklet
, and no feedback to the user if unsupportedsampleRate
constraint