v2.9.0
Highlights — mp3gain APEv2 tag-convention parity (#210)
This release converges mp3rgain's APEv2 metadata onto mp3gain's conventions, so files processed by either tool carry equivalent tags.
REPLAYGAIN_*are now written in the default APEv2 mode (previously only with-s i, or for AAC) — closes the drop-in gap reported in #204 (#209).REPLAYGAIN_*now store the post-apply residual (the gain a player should still apply on top of the baked-in change) at 6-decimal precision, andMP3GAIN_MINMAXrecords the post-apply range — matching mp3gain (#211).MP3GAIN_ALBUM_MINMAXis written in album (-a) mode (#213).
⚠️ Breaking change — cross-tool undo (#212)
MP3GAIN_UNDO now uses mp3gain's sign convention, so mp3rgain -u correctly reverses gain applied by mp3gain, and vice versa — the broken cross-tool undo that previously doubled the gain is fixed.
If you have files gain-adjusted by mp3rgain ≤ 2.8.x: those stored the undo value with the opposite sign. Undoing them with 2.9.0 will double the gain instead of reversing it. Undo such files with the older mp3rgain version (or re-analyze them). Files written by mp3gain — or by 2.9.0 onward — undo correctly with either tool. Audio is never corrupted; only the undo bookkeeping changed.
Also in this release
- Write ReplayGain tags and run clip-prevention at 0 steps; warn on global_gain saturation (#208).
- mp3rgui: persist settings and read existing ReplayGain on import (#205).
What's Changed
- ci: bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group by @dependabot[bot] in #200
- mp3rgui: persist settings and read existing ReplayGain on import by @M-Igashi in #205
- Fix 0-step RG skip (#206) and warn on global_gain saturation (#207) by @M-Igashi in #208
- Write REPLAYGAIN_* tags in default APEv2 mode (#204) by @M-Igashi in #209
- fix: post-apply residual ReplayGain and post-apply MINMAX (#210) by @M-Igashi in #211
- fix: match mp3gain's MP3GAIN_UNDO sign so cross-tool undo works (#210) by @M-Igashi in #212
- feat: write MP3GAIN_ALBUM_MINMAX in album mode (mp3gain parity, #210) by @M-Igashi in #213
Full Changelog: v2.8.1...v2.9.0