Impulse Response Lab
An impulse response (IR) describes how each input sample contributes to later output times. Choose local dry audio and an IR to calculate linear convolution for each channel. Set their independent gains and optional peak normalization, compare the original and processed sound, then save 16-bit WAV. A frequency-response table shows the IR's magnitude at selected frequencies, and JSON records original-file SHA-256 hashes, exact output length, and settings. The page cannot establish whether an uploaded IR came from a measured room or was calibrated, so it makes no room-measurement claim. Unlike a multitrack mixer or oscillator sound designer, this operation applies an IR to every input sample.
Key features
- Decode a local dry file and IR supported by your browser; calculate SHA-256 from their original bytes.
- Use FFT-based linear convolution to create a real reverb tail of dry frames + IR frames − 1.
- Set independent dry/wet gains and choose no normalization or peak normalization to 0.98.
- Inspect the float peak and over-one sample count before normalization, plus IR frequency response by channel.
- Preview original versus result, then save PCM16 WAV and JSON with input hashes and processing rules.
How to use
- Choose dry audio and an impulse response, or load the synthetic WAV example.
- Set dry and wet gains and peak normalization, then render the convolution.
- Listen to A and B and inspect peak, clipping warning, and the IR response table.
- Save the result WAV and source-hash settings JSON, keeping the original files separately.
Use cases
- Compare an impact sound with a short synthetic echo tail.
- Change dry and wet balance while comparing the same audio and IR by ear.
- Record frequency-dependent gain of an IR file and the convolved output peak.
Frequently asked questions
Does this tool measure a real room?
No. It applies the IR file you provide. The page cannot tell whether that IR was recorded in a room or properly calibrated. The example IR is a synthetic signal made to illustrate echoes.
How are dry and wet signals combined?
Output equals dry gain × original plus wet gain × the linear convolution of original and IR. Each gain is independently 0–1; they do not need to total one. Output length is original frames + IR frames − 1.
How are mono and stereo files handled?
A mono input or IR is duplicated into both channels when paired with stereo. With two stereo inputs, corresponding left and right channels are convolved separately. Crossfeed and true-stereo four-channel IRs are not supported.
What do peak normalization and clipping warnings mean?
The tool counts float samples with magnitude above one before normalization. Peak mode scales the entire non-silent result so its maximum magnitude becomes 0.98. With normalization off, values outside ±1 are clipped when saving WAV. Lower the gains if warned. Physical listening loudness is not guaranteed.
What does the frequency-response table show?
It samples the uploaded IR's FFT magnitude at the nearest bins between 125 and 16,000 Hz below Nyquist, in dB relative to unity gain. It is neither the final dry/wet mix nor a measurement of speakers or a room.
What are the limits and reproduction requirements?
Each file is at most 8 MiB. After decoding, dry audio must be 0.03–6 seconds and IR 0.01–1.5 seconds, mono/stereo at 8–48 kHz. The output may not exceed 360,000 frames. JSON contains hashes and settings, not audio; sample-level reproduction requires the same original files and a compatible decoder/resampler.
Privacy
Reading, decoding, SHA-256 hashing, FFT convolution, playback, and export run in your browser without uploading source audio. JSON contains no source audio bytes. Closing the page clears temporary audio and download URLs.
Comments & questions