Skip to content

Audio Problem Fixer

Runs problem detection, applies the available corrective EQ recipes, and measures the result. It writes a separate file so you can audition the changes against your original.

Requires the phantom-audio[processing] extra. Add it with: uv tool install "phantom-audio[processing]" --python 3.13 --force

Parameters

Parameter Type Default Description
file_path string required Path to audio file to fix
problems list[string] null (auto-detect) Specific problems to fix: "hum", "sibilance", "mud", "harshness", "dc_offset", "resonant_peak". If omitted, runs detect_problems first and fixes every detected problem that has a recipe.
output_path string null (auto-named) Where to write the fixed file. Defaults to <name>_fixed.wav inside Phantom's output directory (~/.phantom/output, or PHANTOM_OUTPUT_DIR) -- not next to the input. Paths outside that directory are rejected.

Example Output

Illustrative summary; MCP responses use structured JSON.

fix_audio

{ "output_path": "/Users/you/.phantom/output/vocals_raw_fixed.wav", "fixes_applied": ["sibilance", "hum"], "before": { "problems": [ ... ] }, "after": { "problems": [ ... ] }, "improvements": [ { "problem_type": "hum", "before_severity": "significant", "after_severity": null, "status": "resolved" }, { "problem_type": "sibilance", "before_severity": "moderate", "after_severity": "minor", "status": "improved" } ], "regressions": [] }

What It Fixes

Every fix is static EQ. There is no de-esser, limiter, or other dynamics processing in the recipe set.

ProblemHow it fixes it
humDeep notch (-30 dB, Q 30) at each detected harmonic
sibilanceParametric cut at 7 kHz, -5 dB, Q 0.7
mudHigh-pass at 80 Hz plus a low shelf cut at 300 Hz, -4 dB
harshnessParametric cut at 3 kHz, -4 dB, Q 1.5
dc_offsetSubsonic high-pass at 5 Hz
resonant_peakParametric cut at each detected resonance, -6 dB, Q from the measurement

What It Cannot Fix

detect_problems reports these, but fix_audio will not act on them — naming one in problems changes nothing. They need a different take or a re-render, not corrective EQ.

clipping, inter_sample_peak, noise_floor, snr, lossy_codec

Output format

Phantom 1.6.0 writes a 32-bit float WAV. This preserves processing headroom, including peaks above 0 dBFS, without clipping them during the write. Check the result before converting to an integer delivery format.

Reading the Result

fix_audio re-runs problem detection on the file it wrote, so before and after are full detect_problems payloads and you can see what actually moved. improvements and regressions summarise that diff per problem type, with status being one of resolved, improved, unchanged, worsened, or new_problem. A non-empty regressions list means the corrective EQ introduced something that wasn’t there before — worth listening to before you keep the output.

When to Use It

Run this after detect_problems flags issues in your stems. It’s most useful during the early stages of mixing when you want to clean up recordings before making creative decisions. Think of it as a cleanup pass, not a replacement for intentional EQ choices.

Pro tip

You can target specific problems if you only want to fix some of them. For example, “fix the hum in bass.wav but leave the sibilance alone” will pass problems: ["hum"] and skip the 7 kHz cut.

Typical Prompts

  • “Fix all the problems in vocals.wav”
  • “Remove the 60 Hz hum from bass.wav”
  • “Cut the sibilance on the vocal and save it as vocals_clean.wav”
  • “Run problem detection on all stems, apply the supported fixes, and report any remaining issues”

Optional analytics

With your permission, PostHog measures page views and selected button clicks. We do not send search text or form details, record sessions, or link analytics to your email. Your choice lasts 180 days. You can withdraw anytime using Privacy choices in the footer. Forms work either way.

Privacy policy