How to Use FFmpeg Haas Filter on Mono Audio

This article explains how to use the FFmpeg haas filter to apply the Haas (precedence) effect to a mono audio source, transforming it into a wider, more spacious stereo track. You will learn the basic command-line syntax, key parameters like delay time and channel routing, and a practical example to quickly enhance your audio files.

Understanding the Haas Effect in FFmpeg

The Haas effect is a psychoacoustic phenomenon where a listener perceives the spatial position of a sound based on the first-arriving wavefront. By duplicating a mono channel, delaying one side by a tiny fraction (typically between 10 to 35 milliseconds), and panning them left and right, you create a realistic sense of stereo width without changing the pitch or tone of the audio.

FFmpeg features a built-in haas filter designed specifically to automate this process. When you input a mono audio file, the filter automatically outputs a stereo file with the delay applied.

Basic Command Syntax

To apply the default Haas effect to a mono audio file, use the following command:

ffmpeg -i input_mono.wav -af "haas" output_stereo.wav

By default, this command applies a 20-millisecond delay to the left channel, instantly widening your mono source into a stereo field.

Customizing the Haas Filter Parameters

To fine-tune the spatial image, the haas filter allows you to customize several parameters using a key=value format separated by colons.

Practical Example

If you want to apply a 15-millisecond delay to the right channel instead of the left to shift the spatial depth, use this command:

ffmpeg -i voice_mono.mp3 -af "haas=delay=15:side_ch=right" widened_stereo.mp3

In this command: * -i voice_mono.mp3 specifies your mono input file. * -af invokes the audio filter graph. * haas=delay=15:side_ch=right configures the Haas filter to use a 15ms delay and applies it to the right channel. * widened_stereo.mp3 is your finished, wide stereo output file.