Drop in audio, pick a format, press one button. Your sources are never every file to the Recycle Bin, registry backed up before it's touched — and a reason printed next to every single item.
ffprobe — codec, sample rate, channels, duration, lossless or lossy.It finishes, it looks successful, and the file is broken. So every output is read back and checked. Ten milliseconds is cheap insurance.
No duration or sample rate means no conversion. Empty files, random bytes
and text files renamed .mp3 are rejected with a stated reason.
Output always lands in a separate folder. Same names get numbered:
song.mp3, song (2).mp3. There is no overwrite option,
and there never will be.
After each conversion the output is re-read with ffprobe and
checked for codec, duration and lossless-ness. The self-test transcodes all
seven formats for real.
Output is written to .part and only renamed on success. A
failed run leaves nothing behind — no half-written file.
Lossless to lossless is skipped with a reason: turning FLAC into WAV just swaps the container and doubles the size.
KGM / VPR / QMC / NCM are recognised and grouped as unplayable. Calling them "damaged" would be a lie — the file is fine, it has DRM on it.
Input containers are unrestricted — anything ffprobe recognises
works (FLAC / WAV / AIFF / M4A / MP3 / AAC / Opus / OGG / WMA / APE / WavPack …).
Drop a folder in — it recurses the whole tree — or run
AudioForge.exe --audit D:\Music.
.mp3.
Each with the specific reason.Switch in the top-right; the choice is written straight back to
settings.yaml and survives a restart.
One exe, no install, no dependencies. Read the reasons it gives, then decide.
Licence: CC BY-NC 4.0 — free to modify and remix, attribution to Matou1118 required, non-commercial only. Full terms