Reverb simulates a space by adding many delayed copies of the audio to the dry signal. A short reverb makes a vocal sit in a small room; a long reverb makes a snare sound like it was recorded in a cathedral. The `aecho` filter is a simple delay-line reverb; for a more natural sound, use `reverb` (the freeverb-style filter).

The command

ffmpeg -i in.wav -af "aecho=0.8:0.9:1000:0.3" out.wav

What it does

The `aecho` filter takes four numbers: input gain, output gain, delay in ms, and decay. A delay of 1000 ms with a decay of 0.3 produces a single echo at 1 second, fading over the next 3 seconds. For a denser reverb, chain multiple `aecho` filters with different delays. The `reverb` filter is more complex, with parameters for room size, damping, wetness, and dryness; for a natural reverb, start with `reverb=room=50:damping=5:wet=0.3:dry=0.7`.

Requirements

Any audio input. The filter is in libavfilter. CPU-only, single-pass. The default values are reasonable for a small room; for a large hall, raise the delay to 2000 ms and the decay to 0.5.

Things to avoid

  • Using a very high wet value. A wet of 0.9 produces a wash of reverb that buries the source; the audience will hear the room, not the music.
  • Combining reverb with a chorus. The two effects compound, and the result sounds like a phasing problem in a large hall.
  • Adding reverb to a voice that already has a room tone. The new reverb will be audible against the existing one, creating a 'doubling' effect.
  • Forgetting that the reverb is added in parallel. The dry signal is still present; the output is a mix, not a replacement.