You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add mp4meta module for reading/writing iTunes freeform metadata
- Support ReplayGain tag writing to M4A files (com.apple.iTunes format)
- Integrate AAC audio analysis using symphonia's aac/isomp4 features
- Update file collection to include .m4a, .aac, .mp4 extensions
- Handle MP4 moov/udta/meta/ilst atom structure
- Update stco/co64 chunk offsets when modifying metadata
Note: For AAC files, only ReplayGain tags are written (no audio modification)
as AAC lacks a lossless gain adjustment mechanism like MP3's global_gain.
Copy file name to clipboardExpand all lines: README.md
+35-2Lines changed: 35 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,12 +8,15 @@
8
8
9
9
mp3rgain adjusts MP3 volume without re-encoding by modifying the `global_gain` field in each frame's side information. This preserves audio quality while achieving permanent volume changes.
10
10
11
+
**NEW in v0.9.0**: AAC/M4A support - analyze and write ReplayGain tags to M4A files!
12
+
11
13
## Features
12
14
13
15
-**Lossless**: No re-encoding, preserves original audio quality
14
16
-**Fast**: Direct binary manipulation, no audio decoding required
15
17
-**Reversible**: All changes can be undone (stored in APEv2 tags)
16
18
-**ReplayGain**: Track and album gain analysis (optional feature)
19
+
-**AAC/M4A Support**: Analyze and tag M4A files with ReplayGain metadata
17
20
-**Zero dependencies**: Single static binary (no ffmpeg, no mp3gain)
18
21
-**Cross-platform**: macOS, Linux, Windows (x86_64 and ARM64)
19
22
-**mp3gain compatible**: Full command-line compatibility with original mp3gain
@@ -91,6 +94,25 @@ mp3rgain -r *.mp3
91
94
mp3rgain -a *.mp3
92
95
```
93
96
97
+
### AAC/M4A Support (requires `--features replaygain`)
98
+
99
+
```bash
100
+
# Analyze and tag M4A files with ReplayGain
101
+
mp3rgain -r song.m4a
102
+
mp3rgain -r *.m4a
103
+
104
+
# Album gain for M4A files
105
+
mp3rgain -a *.m4a
106
+
107
+
# Mix MP3 and M4A files
108
+
mp3rgain -r *.mp3 *.m4a
109
+
110
+
# Recursive directory processing includes M4A files
111
+
mp3rgain -R /path/to/music
112
+
```
113
+
114
+
Note: For M4A files, mp3rgain writes ReplayGain tags (iTunes freeform format) but does not modify the audio data, as AAC doesn't have a lossless gain adjustment mechanism like MP3's `global_gain` field.
115
+
94
116
### Undo previous adjustment
95
117
96
118
```bash
@@ -270,22 +292,33 @@ MP3 files contain a `global_gain` field in each frame's side information that co
270
292
271
293
### ReplayGain Analysis
272
294
273
-
When built with the `replaygain` feature, mp3rgain uses the [symphonia](https://github.com/pdrat/symphonia) crate for MP3 decoding and implements the ReplayGain 1.0 algorithm:
295
+
When built with the `replaygain` feature, mp3rgain uses the [symphonia](https://github.com/pdrat/symphonia) crate for audio decoding and implements the ReplayGain 1.0 algorithm:
0 commit comments