FFmpeg Subharmonic Synthesizer to Boost Low Bass
This article explains how to use FFmpeg’s built-in sub-harmonic
generator filter (asubgenerator) to synthesize
low-frequency harmonics and boost the low-end bass of any audio track.
You will learn the exact command-line syntax and how to adjust the
filter’s parameters—such as cutoff frequency, wet/dry mix, and decay—to
achieve a deep, clean bass response without distorting your audio.
The FFmpeg Subharmonic Filter
To generate artificial subharmonics in FFmpeg, you use the
asubgenerator audio filter. Unlike a standard equalizer
(EQ) that simply boosts existing frequencies, a sub-harmonic synthesizer
analyzes the lower range of your audio and generates new frequencies an
octave lower, adding weight and depth to tracks that lack low-end
presence.
Basic Command
The simplest way to apply the subharmonic generator with default settings is by using the following command:
ffmpeg -i input.mp3 -af asubgenerator output.mp3Advanced Parameter Tuning
To customize how the bass is synthesized, you can pass specific
parameters to the asubgenerator filter using the format
asubgenerator=parameter1=value1:parameter2=value2.
Here are the key parameters you can adjust:
frequency(orf): Sets the threshold frequency (in Hz) below which subharmonics will be generated. The default is80. Lowering this to60or50ensures only the deepest bass triggers the synthesizer.bass(orb): Sets the boost level for the newly generated subharmonics. The default is1.0. Increase this (e.g.,1.5or2.0) for a more pronounced bass effect.wet(orw): Controls the volume level of the newly created subharmonic signal. The default is1.0.dry(ord): Controls the volume level of the original, unaltered audio signal. The default is1.0.decay(orc): Sets the decay of the subharmonics. The default is0.9. A lower value results in tighter, punchier bass, while a higher value creates a longer, sustaining low-end rumble.
Practical Example
To target frequencies below 70 Hz, heavily boost the synthesized subharmonics, and keep the original signal intact, run this command:
ffmpeg -i input.wav -af "asubgenerator=frequency=70:bass=1.8:wet=1.5:dry=1.0" output.wavPreventing Audio Clipping
Synthesizing deep bass increases the overall volume of your track,
which can lead to digital clipping (distortion). To prevent this, it is
recommended to chain the volume filter or a limiter after
the subharmonic generator to lower the overall output level safely:
ffmpeg -i input.wav -af "asubgenerator=frequency=65:bass=1.5,volume=-3dB" output.wav