All core functionality complete:
- MP3 frame parsing (MPEG 1/2/2.5 Layer III)
- Global gain modification (MP3 and AAC)
- ID3v2 tag preservation
- VBR/CBR support
- CLI interface (apply/info/undo commands)
- ReplayGain analysis (track and album gain)
- AAC/M4A lossless bitstream gain adjustment and undo
- Full mp3gain command-line compatibility
- Cross-platform support (Windows, macOS, Linux)
- Stabilized library API with custom error types, builder pattern, submodules
- Windows 11 compatibility verification
- Windows ARM64 support
- Comprehensive test suite with real MP3 files
- Error handling improvements
- Homebrew tap formula
- ReplayGain analysis (track gain calculation)
- Album gain support
-
-r(apply Track gain) flag compatibility -
-a(apply Album gain) flag compatibility -
-c(ignore clipping) flag -
-p(preserve original timestamp) flag
- Batch processing with recursive directory support
- Progress bar for large files
- JSON output format
- Dry-run mode
- TSV output format
- AAC/M4A ReplayGain analysis
- iTunes freeform tag writing
- Multi-track audio support (
-ioption) - Production-ready release
- Scoop package (Windows)
- winget package (Windows Package Manager)
- AUR package (Arch Linux)
- Nix package
- Debian/Ubuntu package (.deb)
- Native GUI application (mp3rgui) for macOS, Linux, Windows
- Fix ReplayGain filter coefficients (v1.2.6)
- Improved Debian package build
- Code refactoring for better maintainability
- Documentation updates
- Improved max amplitude detection (#51)
- Fixed global_gain range handling (#52)
- Handle last frame before APE/ID3 tags (#54)
- Fixed M4A info display (#55)
- Improved ReplayGain analysis accuracy (#48)
- Corrected ReplayGain calculation ~90dB offset (#50)
- Man page (docs/man/mp3rgain.1)
- cargo-deb configuration
- .deb package build in release workflow
- .deb package test workflow (Debian 12/13, Ubuntu 22.04/24.04)
- Hardened MP4/M4A metadata handling and file detection (#67)
- Atomic write (temp file + rename) for M4A tag updates
- ALAC file detection and proper rejection
- DRM-protected M4P file rejection
- Compatible brands list checking in ftyp box
- Improved ilst box management (empty container cleanup, NeedsIlst)
- Fixed chunk offset (stco/co64) updates with threshold-based adjustment
- Fixed GUI volume display to use 89 dB ReplayGain reference (#62)
- Code quality improvements (clippy, iterator patterns, helper extraction)
- Add
#[non_exhaustive]to all public enums and structs - Add missing standard trait implementations (
PartialEq,Eq,Hash) - Add
Displaytrait implementations to all public types - Add
Serialize/Deserializebehind aserdefeature flag - Add
ApeTag::iter()andApeTag::len()methods - Make
MpegVersion/ChannelModeenums public with typed accessors onMp3Analysis - Add
MaxAmplitudeResultstruct andfind_max_amplitude_detailed()function - Add
Channel::other()convenience method - Remove unnecessary
pubfromfilter_coeffsinternal constants - AAC bitstream parser for locating
global_gainfields (Issue #64 Phase 1) - AUR package for mp3rgui (GUI application)
- Automated AUR package publishing in release workflow
- AAC lossless bitstream gain adjustment (
global_gainmodification) - AAC undo support (iTunes freeform metadata tags)
- HE-AAC/SBR support (base layer gain adjustment)
- Multi-track detection and warnings
- Custom error types (
thiserror) replacinganyhow::Result -
MpegVersion/ChannelModechanged fromStringto enum - Private struct fields with accessor methods
-
GainOptionsbuilder pattern - Submodule organization (
analysis,gain,ape,frame)
- EBU R128 loudness analysis (
--r128option, ITU-R BS.1770 / LUFS-based) - ReplayGain 2.0 support (
--rg2option, R128-based with -18 LUFS reference) - Official Debian repository (ITP submission)
- Homebrew core inclusion (currently in tap)
- Fedora/RPM package
- Flatpak package
- FLAC support
- Ogg Vorbis support
- Integration with music players/taggers
- Reach 100 GitHub stars
- 5+ contributors
- Grow Windows user base
- Package availability in major package managers
See CONTRIBUTING.md for details on how to get involved.