Boost Low Bass in FFmpeg With asubsynth

This guide explains how to use FFmpeg's built-in asubsynth filter to synthesize sub-harmonic frequencies and boost deep bass in an audio file. By generating frequencies an octave below the existing low-end material, you can restore or enhance sub-bass on tracks where standard equalization fails to add sufficient weight.

The asubsynth Filter

Unlike standard equalizer filters (such as bass or equalizer) that merely increase the volume of existing frequencies, asubsynth synthesizes brand-new sub-harmonics from the existing signal. This makes it particularly effective for thin audio mixes, kick drums, or basslines lacking deep low-end energy.

Basic Command

To apply default sub-harmonic synthesis to an audio track, run the following command:

ffmpeg -i input.mp3 -af "asubsynth" output.mp3

Key Parameters and Tuning

You can fine-tune the synthesized sub-bass using the filter's primary parameters:

  • dry: Controls the level of the original, unprocessed audio signal (default: 1.0).
  • wet: Controls the level of the synthesized sub-harmonic signal (default: 1.0).
  • delay: Sets the delay of the synthesized sub-harmonics in milliseconds (range: 1 to 40, default: 20).
  • decay: Sets the decay rate of the synthesized signal (range: 0.1 to 1.0, default: 0.7).
  • round: Controls harmonic processing cycles (range: 0 to 1, default: 1).

Generating sub-bass can drastically increase peak levels and cause digital distortion. To keep the original audio clear while adding a controlled amount of sub-bass, lower the wet parameter and chain the alimiter filter to prevent clipping:

ffmpeg -i input.wav -af "asubsynth=dry=1.0:wet=0.5:decay=0.8:delay=15,alimiter=limit=0.95" output.wav

Explanation of the Chain

  1. asubsynth=dry=1.0:wet=0.5:decay=0.8:delay=15: Preserves the original signal at unity gain, blends in the generated sub-harmonics at 50% volume, sustains the low-end slightly longer with a decay of 0.8, and reduces latency with a 15 ms delay.
  2. alimiter=limit=0.95: Protects the final output by dynamically capping signal peaks at -0.45 dB (0.95), preventing clipping caused by the combined low-frequency energy.