Audio Reverb
Open an audio file and this page adds reverb to it in your browser, lets you hear the original and the result, and writes the result as a WAV. The reverb is synthesized here: seeded noise that falls 60 dB over the tail length you set, darkened toward its end by the damping control and started after the pre-delay, then mixed with the dry sound by the wet/dry control. Two things are stated rather than left to chance. The file is always the selection plus the pre-delay plus the tail, and the page shows that sample count before you press Render reverb, so the tail is never cut off. And the output level is a choice you make: normalize the loudest sample to a target such as -1 dBFS, or lower it only when it would pass the target, with the gain actually applied shown after every render. Rendering runs in a background worker with a Cancel button, and the audio never leaves your browser.
Your input
Result
No audio is open yet. The waveform appears here once a file is open.
- Output length
- open a file
- Output samples
- open a file
- Tail samples
- open a file
- Gain applied
- open a file
- Output peak
- open a file
Choose an audio file, or drop one on the stage. It is decoded in this tab and never uploaded.
- all 5 samples come back unchanged, then 16,160 samples of silence
- 240,960 samples (5.020 s)
- tail spans 88,200 samples after 882 of pre-delay
Wet sets the mix: the output is the dry signal times (100 minus wet)% plus the reverb times wet%. Tail is the time the reverb takes to fall 60 dB, damping darkens the end of the tail without shortening it, and pre-delay holds the reverb back before it starts. Every slider has a number field beside it, and the sliders move with the arrow keys. Render reverb runs in a background worker you can cancel, and the result is always the selection plus the pre-delay plus the tail. Play original plays the selection at its own level and Play with reverb plays the render at the level it will be written, so a normalized render can sound louder. Files up to 50 MB and 30 minutes open, and one render holds up to 30,000,000 samples, about five minutes of stereo at 48 kHz: set a selection to render a longer file in parts. The file is never uploaded.
Common questions
- How is the reverb made?
- No recording of a real room is used. The page builds an impulse response from seeded white noise with an envelope that falls 60 dB over the tail length, so the Tail setting is the reverb's decay time to 60 dB down. Damping sweeps a low-pass filter across that tail: no filtering at its start, and at 100% the end of the tail is cut to about 400 Hz. The filter's loss of level is made up as it sweeps, so damping changes the colour of the tail and not its length. Each channel gets its own noise, so a stereo file gets a wide tail. The tail is scaled to unit energy, convolved with your audio after the pre-delay, and mixed with the dry sound. Because it is synthetic it models no particular hall, room or plate, and the page makes no claim that it does.
- Why is the downloaded file longer than my audio?
- Because a reverb keeps ringing after the sound stops, and this page keeps all of it. The WAV is exactly the selection plus the pre-delay plus the tail: a 3.00 s file at 48 kHz with a 20 ms pre-delay and a 2 s tail is 144,000 + 960 + 96,000 = 240,960 samples, 5.020 s. The readout shows that count, marked planned, as soon as a file is open and the settings are valid, and the finished render and the WAV are both checked against it before the page calls either complete; a render that came back short is reported as an error instead of being offered for download. Set wet to 0 and the file keeps that length: your audio, then silence where the tail would be.
- Will the reverb make my file clip?
- No sample can pass full scale. After mixing, the page finds the loudest sample and applies one gain to the whole render. Normalize peak to target puts the loudest sample at the target, -1 dBFS by default, raising or lowering the whole render to get there. Lower only if above target leaves the level alone unless the loudest sample is past the target, and then brings it down to the target, so with wet at 0 and a file that peaks under the target not one sample changes. The gain applied, as a multiplier and in decibels, and the resulting peak are shown after every render and included in Copy summary. The WAV is 16-bit PCM.
- Which files can I open, and how long can they be?
- Whatever your browser can decode, because the decoding is the browser's own: typically MP3, WAV, M4A or AAC, FLAC and OGG, depending on the browser. A file it cannot decode gets a message saying so. A file must be 50 MB or less, checked before it is read, and decode to 30 minutes or less. One render holds up to 30,000,000 samples, about five minutes of stereo at 48 kHz including the tail. For a longer file, set Selection start and Selection end and render it in parts: the message for a selection that is too long names the longest one that fits. Your browser decodes the file at its own audio sample rate, usually 44.1 or 48 kHz, and the WAV is written at that rate, which the file line shows.
- Can I compare the reverb with the original?
- Yes. Play original plays only the selected part of your file at its own level, Play with reverb plays the finished render at the level it will be written, and Stop ends either one. Normalizing can raise the level, so a normalized render can sound louder for that reason alone; choose Lower only if above target when you want the level left as it is unless it would pass the target. Changing any setting or the selection clears the last render, so what you hear always matches the controls on screen.
- Is my audio uploaded anywhere?
- No. Your browser decodes the file, the reverb is computed by a worker running in this tab, and the WAV is written by JavaScript here and handed to your browser's download. No part of the audio is sent anywhere. The only thing kept between visits is the settings row: wet, tail, damping, pre-delay, output level and target, saved in this browser once you change one of them. The Start over button at the top of the page forgets it.
- Can I use it with a keyboard?
- Yes. Every control is a native button, field, slider or menu that Tab reaches once it is available: the file button and the settings from the start, the selection fields once a file is open, and the play, copy and download buttons once there is something to use them on. Each slider moves with the arrow keys and has a number field beside it that takes typed values such as 35%, 2.5 s, 20 ms or -1 dBFS; a value out of range is refused with the range to type instead. On a narrow screen the controls stack above the waveform and each one is at least 44 pixels tall.
Synthetic effect; no borrowed impulse-response recordings or exact room-acoustics claim.