NORMALIZE-AUDIO(1)
β¨ NORMALIZE-AUDIO(1) β¨
okay bestie, buckle up, we're talking about normalize-audio from the section-1 part of your man pages π it fixes your audio volume, it's giving main character energy, and it is genuinely so useful, no cap.
πΈ SYNOPSIS πΈ
normalize-audio [ options ] [ -- ] file ...
like, you give it options, maybe a -- to say "ok that's it for options", then a whole list of files. that's the whole vibe check.
π¦ DESCRIPTION π¦
normalize-audio is your girl for adjusting the volume of WAV or MP3 audio files up to a standard volume level. why do you care?? because things like making mp3 mixes are lowkey chaos β different recording levels on different albums mean the volume jumps around so much from song to song and it's honestly a jumpscare every time π. this fixes that.
so here's the way it works, and it's a two-phase situation:
- phase one β it analyzes the files you gave it as WAV audio files, and computes the volume of each one.
- phase two β it applies a volume adjustment to each file so every file's volume lands at a standard level.
two phases. that's it. slay β¨
π OPTIONS π
-a,--amplitude=AMPLITUDEβ adjusts the RMS volume to the target amplitude AMPLITUDE, and it must be between0.0and1.0. if you tackdBordBFSonto the number, then it's assumed to be in decibels from full scale. default?-12dBFS. iconic default, honestly.-b,--batchβ turns on batch mode, which has its own whole section below, go look π.-c,--compressionβ deprecated π back in previous versions this enabled the limiter, but now the limiter is enabled by default, so it's just kindaβ¦ there.--clippingβ disables the limiter and just clips any samples that are too large. literally the same effect as-l 0dBFS.--fractionsβ displays all values as decimal fractions instead of in decibels. by default, volume adjustments show up in decibels, and volume levels show up in dBFS, where0 dBFSis the level of a square wave of maximum amplitude. fun fact for your brain π§-g,--gain=GAINβ skips the volume computation phase entirely β it does not compute the volume adjustment from the current volumes of the files. instead it just applies the given gain as a volume adjustment to all files. as a plain number, this is just a multiplier applied to all samples. if you suffix the number withdB, all volumes get adjusted by that many decibels.--id3-compatβ use this when you're adjusting MPEG audio files and your MP3 player does not recognize ID3v2.4 tags. details are down in MPEG AUDIO ADJUSTMENT, bestie.--id3-unsyncβ use this when adjusting MPEG audio files if your MP3 player doesn't recognize ID3v2 tags and has trouble playing some ID3v2 tagged MP3 files. again, MPEG AUDIO ADJUSTMENT below has the tea.-l,--limiter=LEVELβ controls how the limiter behaves. by default, all samples above-6dBFS(0.5) are limited, but this option sets the limiting level to LEVEL. setting LEVEL to1(or0dBFS) does no limiting at all (clipping is done instead); setting LEVEL to0does limiting on all samples. the default value is recommended unless you actually know what you're doing π-m,--mixβ turns on mix mode, see MIX MODE below. heads up: batch mode and mix mode are mutually exclusive, pick a lane π«Ά-n,--no-adjustβ computes and outputs the volume adjustment that would set the volume to the target, but doesn't apply it to any of the files (i.e. it skips the second phase). if you use this option, your files will not be altered in any way. so safe, so demure.--no-progressβ don't print any progress information. all the other messages still print as normal according to the verbosity level.--peakβ adjust using peak levels instead of RMS levels. each file gets adjusted so its maximum sample is at full scale. this just gives a file the maximum volume possible without clipping; no normalization is done.-q,--quietβ don't output progress information. only error messages get printed. shhh π€«-t,--average-threshold=THRESHOLDβ when averaging volume levels for batch mode or mix mode, throws out any volumes that are more than THRESHOLD decibels from the average. a high value here (say,50) makes sure the volumes of all files are considered in the average.-T,--adjust-threshold=THRESHOLDβ if an adjustment to be made to a file is smaller than THRESHOLD decibels, consider the file already normalized and don't do the adjustment. this is0.125by default, or0if the-goption is given.-v,--verboseβ increase verbosity. you can repeat this option for even more messages. stack it, bestie π-w,--output-bitwidthβ forces output files to have samples that are W bits wide. this option is ignored when adjusting MP3 files.-h,--helpβ displays usage information and exits. your lil helper π-V,--versionβ prints version information and exits.--β terminates the option list. periodt.
π MIX MODE π
this mode is made especially for making mixed CDs and the like π§. you want every song on the mix to be the same volume, but honestly it doesn't matter if they're the same volume as the songs on some other mix you made last week. different mix, different era, whatever.
in mix mode, the average level of all the files is computed, and each file is separately normalized to this average volume. chef's kiss π
π BATCH MODE π
so when you're operating on a group of unrelated files, you usually want all of them at the same level β and that's the default behavior, no notes.
but!! a group of music files all from the same album is generally meant to be listened to at the relative volumes they were recorded at. that's the artist's vision β¨
in batch mode, all the specified files are considered to be part of a single album, and their relative volumes are preserved. how? by averaging the volumes of all the files, computing a single adjustment from that, and applying the same adjustment to all the files. some analysis is also done so that files with volumes that appear to be statistical aberrations are not considered in the average. super useful if you have albums (like many of the author's π) where there's one "quiet song" that throws off the average. we've all been there.
π§ MPEG AUDIO ADJUSTMENT π§
MP3 files get "adjusted" by setting a relative volume adjustment frame in their ID3 tags. there's literally a frame for this called RVA2 that does exactly what we want, and it's a native frame in ID3v2.4. beautiful. perfect. no notes.
unfortunately π many MP3 players do not support v2.4 tags, and the RVA2 tag is not native in previous ID3 versions. in fact, adding an RVA2 frame to a v2.3 tag confuses some MP3 players. so we are left with two choices when trying to add volume adjustment information to an ID3 tag:
- go ahead and upgrade the tag to version 2.4, and use
RVA2tags. this is the default behavior, in the hope that eventually MP3 players will support v2.4 tags and this won't be a problem anymore. manifesting π - upgrade the tag to only version 2.3. instead of
RVA2, use anXRVAtag with the same format as anRVA2tag. this isn't a native frame, but since it starts with an "X", it's considered experimental and therefore legal, according to the ID3 spec. the--id3-compatoption turns on this behavior. the disadvantage of the first method is that your MP3 player may no longer read the ID3 tags on your files. bug the author of your favorite MP3 player to support ID3v2.4 tags! π’
the disadvantage of the second method is that the XRVA frame is only recognized by the xmms-rva plugin that is packaged with normalize. on the other hand, I don't know of any MP3 players that recognize the RVA2 frame, either, so it may not make any difference. shrug π
the other option related to ID3 tags, --id3-unsync, is only necessary for compatibility with old MP3 players that don't recognize ID3v2 tags at all. if your MP3 player complains of garbage at the start of tagged files, or is unable to play the files at all, turn this option on. this option should never hurt, but if your MP3 player knows about ID3v2 tags, you don't need it. simple as that.
β οΈ CAVEATS β οΈ
note that your version of normalize-audio must be compiled with MAD library support to analyze MP3 file volume levels. no MAD support, no MP3 analysis. that's the rule π«
π AUTHOR π
Chris Vaill <chrisvaill@gmail.com>
π₯ SEE ALSO π₯
and that's the whole page, bestie π this one's from 14 September 2005, and it's part of the NORMALIZE-AUDIO(1) manual β yeah, the same name as the command, that's just how section 1 does it. go normalize something, you got this ππ
π¦
π¦ where this page comes from
- debian bookworm: normalize-audio 0.7.7-17 Β· GPL-2.0-or-later
- debian trixie: normalize-audio 0.7.7-21 Β· GPL-2.0-or-later
- ubuntu jammy: normalize-audio 0.7.7-16 Β· GPL-2.0-or-later
- ubuntu noble: normalize-audio 0.7.7-18 Β· GPL-2.0-or-later
- ubuntu questing: normalize-audio 0.7.7-21
- ubuntu resolute: normalize-audio 0.7.7-21build1 Β· GPL-2.0-or-later
- ubuntu stonking: normalize-audio 0.7.7-21build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms