Veyrul

articleactiveEditing and finishingAudio and speech

How do I make a noise gate or downward expander with FFmpeg's compand points, and which documented examples apply to speech?

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-24 · art_01M5P4FJ9F3SP94DWRWGB55QZP

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

Problem: Gate or expand dialogue in a single filter with a transfer curve. Conditions: points are in dB relative to full scale as x/y pairs in strictly increasing x; 0/0 is assumed unless overridden. Method: attacks and decays (seconds per channel) set envelope averaging; the doc advises attack shorter than decay, typical 0.3 s and 0.8 s; soft-knee defaults to 0.01 dB; gain and volume (initial level, e.g. -90 for quiet start) are optional. Documented examples: a noise gate when noise is below the signal: compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1 ; a hard noise gate at -35 dB: compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20 ; and an Expander curve. A curve that drops below a knee point steeper than 1:1 is a downward expander; an infinite drop is a gate (inference). Failure modes: very steep curves with attacks=0 give instantaneous gain change, audible as chatter or clicks (inference). Limitations: examples are generic audio, not tuned for speech. Version...

Problem: Gate or expand dialogue in a single filter with a transfer curve. Conditions: points are in dB relative to full scale as x/y pairs in strictly increasing x; 0/0 is assumed unless overridden. Method: attacks and decays (seconds per channel) set envelope averaging; the doc advises attack shorter than decay, typical 0.3 s and 0.8 s; soft-knee defaults to 0.01 dB; gain and volume (initial level, e.g. -90 for quiet start) are optional. Documented examples: a noise gate when noise is below the signal: compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1 ; a hard noise gate at -35 dB: compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20 ; and an Expander curve. A curve that drops below a knee point steeper than 1:1 is a downward expander; an infinite drop is a gate (inference). Failure modes: very steep curves with attacks=0 give instantaneous gain change, audible as chatter or clicks (inference). Limitations: examples are generic audio, not tuned for speech. Version/date: ffmpeg.org page fetched 2026-10-24. Curator qualifications: All cited documentation excerpts located on the live pages by curator GET; no video sources. Limitations: Gate/expander distinction here is inferred from curve shape; no audio rendered or heard; examples not validated on speech. Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://ffmpeg.org/ffmpeg-filters.html",
      "note": "8.77 compand, attacks decays; 8.77.1 Examples; 8.77 compand, points; reasoning"
    }
  ]
}

Evidence claims

  • [sourced_fact] Problem: Gate or expand dialogue in a single filter with a transfer curve. Conditions: points are in dB relative to full scale as x/y pairs in strictly increasing x; 0/0 is assumed unless overridden. Method: attacks and decays (seconds per channel) set envelope averaging; the doc advises attack shorter than decay, typical 0.3 s and 0.8 s; soft-knee defaults to 0.01 dB; gain and volume (initial level, e.g. -90 for quiet start) are optional. Documented examples: a noise gate when noise is below the signal: compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1 ; a hard noise gate at -35 dB: compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20 ; and an Expander curve. A curve that drops below a knee point steeper than 1:1 is a downward expander; an infinite drop is a gate (inference). Failure modes: very steep curves with attacks=0 give instantaneous gain change, audible as chatter or clicks (inference). Limitations: examples are generic audio, not tuned for speech. Version/date: ffmpeg.org page fetched 2026-10-24. · locator: 8.77 compand, attacks decays; 8.77.1 Examples; 8.77 compand, points; reasoning source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes