Normalizing Music?
Beans asks: "I have a couple classical music CD's which I listen to at work, and use for putting the baby to sleep. I can never find the correct volume, I can't hear soft spots, so I turn it up, only to have a rising crescendo rouse the baby, or at work, have co-workers glace over. What is a good way to normalize them (read on for what I mean by normalize)? All of the normalizing software I have seen uses the entire song for the window of normalzing. Basically makes determines a static value required to get the average volume of the song to the user defined level, then applies that value to the entire song. What I need is something that normalizes over a sliding window, or say 5 seconds, or whatever. In effect making soft spots louder, and crescendo's quieter. Not the way the music was intended to be heard, but perfect for music-at-work, or putting kids to sleep. Does anyone know of any software that does this? On a side note, I work for a Seismic processing company, and we do stuff like this all the time on Seismic waves, not sound waves. If I can't find any canned software to do this, I may modify some of our code to work with WAV files, but I don't want to reinvent the wheel."
They both have a volume equalizer option.
Not a Twitter sockpuppet... but I wish I was.
This is a feature in the newer versions of Windows Media Player, but I'm not sure if it normalizes over the entire song or not. You might also be able to normalize the volume some by playing with the EQ and lowering the volume of higher pitched sounds.
it seems the music "industry" has been doing a very good job of this. What exactly you want is dynamic compression, not normalization. click here for more information.
Doesn't iTunes also have this option? Ir is it as the article poster states, that it takes a value based on the whole song and uses that to scale back the volume?
"I'm a leaf on the wind. Watch how I soar."
-Hoban Washburn
I've used normalizer plugins in both XMMS and Winamp. They aren't perfect, but they're generally alright.
Check out http://volnorm.sourceforge.net/ for an XMMS plugin, or one of the many Winamp plugins here.
My MP3 Player does this.
Better than an iPod for way less (plus the battery is exchangeable).
What you want is a compressor. Audacity (GPL software for Linux, Mac, Windows) includes a simple built-in compressor, and also works with compressor plug-ins like SC4 by Steve Harris. (You can get SC4 by installing the swh-plugins collection on Linux or Unix; it's also included with the Windows version of Audacity).
Many products do this in hardware. I have both wireless headphones and a MiniDisc player that does this. The MiniDisc player can be set to manual recording level, so it is fixed to one level, but the headphones can't be switched away from this automatic setting. So I don't use those headphones for classical music listening, for example.
You might have a product that does this allready, that you could plug in between the computer, CD, player, etc and the amplifier/speakers.
Irene KHAAAAAAN!
That's not normalization, it's compression.
7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
That's not normalizing, that's dynamics compression.
Normalizing scales the entire file so that the highest sample is the highest value that can be represented. For many sound formats, this is 32768, for 15 bits. (1 bit left for the sign). This lets the sample use the full range. However, the volume of the file is based on the value of one sample.
What you want is to amplify different parts of the file so that the level of the song is more consistent. For example, sample every 1/4 second and adjust the level based on the average of that sample. A typical value might be 2:1 compression above -10 db. In this case, if the volume is above -10 db, the amount above -10 db is cut in half. -10 stays at -10, but -6 is scaled to -8, 0 to -5. (0 db is the highest value that can be represented.) There is a lot more to it, including look ahead, recovery time, multiple levels, etc.
It is similar to riding the voume control manually and turning it down for the loud parts and back up for the soft parts, but very quickly.
After dynamics adjustment, you usually normalize the sample.
I edit speech audio for my church and deal with this all the time. I use Cool Edit 2000 and it is great at this. However, it is no longer available. But most audio editing programs can do this. Try Audacity.
Classical music with its large dynamic ranges is meant to be loud at times. People think classical is something nice and calm like a little old lady, but much of it is meant to be exciting, and brash.
I'd do something interesting, but my server can't handle a slashdotting.
On the parent, I copied the subject from the message, rearranged it and go it wrong. I meant "That's dynamics compression, not normalization."
Give this plug-in for Winamp a try. It's called Rock Steady and I've been using it for a year or two at the office without a hitch.
This space intentionally left blank.
That's the name of the feature you're looking for.
Headphones.
What you want is 'compression', not normalization. I don't mean data compression (ie. making smaller file), btw.
h tm lh tml
Music studio use "compressors" to reduce the dynamic range of sound. Ones that work in real time have to be a bit sophisticated (sliding window, like you said), but doing it offline is easier, since you can know the max and min sound values beforehand.
I don't know what tools are out there in PC land, hopefully someone will answer. But I will mention that I used to have a portable CD player with a built in compressor (to help keep your music above the ambient background noise, espicially when driving) and it was GREAT! It is a feature that I don't see much in portable devices anymore, which surprises me...
Anyway, hopefully this might give you a new term to google for, at least. Try searching for "dynamic range compressor", or something...
Alright, I found some windows plugins that might help; Anyone with some Linux/MacOs/Unix equivalents?
http://www.divx-digest.com/software/tfm_filter.
http://www.divx-digest.com/software/dedynamic.
"It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
You want quiet, listen to Enya. But don't go around raping the masters because of mundane utilitarian reasons.
On my nForce 2 motherboard, the sound applet has a "Night Mode" which um... "compresses" the sound so you don't have to turn it up as loud to hear the soft notes...
It's a pretty niffty feature to have, but I've never seen it anywhere else that I can think of...
Wiwi
"I trust in my abilities,
but I want more then they offer"
Google for Audacity - it's a free multitrack recording program for Linux and Windows. It'll have a compression effect/filter that can accomplish what you are asking with minimal effort. I'm sure you can find other stuff that does the same thing though.
:/ I am a huge fan of dynamic contrast.
I'm sorry to hear you can't listen to the stuff with their original dynamic intent
"Better to be vulgar than non-existent" -Bev Henson
Have you tried using Replay Gain? It finds the psychoacoustic level of the music and calculates an appropriate gain correction. Replay gain is supported by foobar2000. MP3Gain is a tool that computes the replay gain for a track and changes the overall gain of the file.
Geez...I'm surprised nobody brought this up yet. MP3gain normalizes MP3's, but it NOT based on an average of the entire song. Read the site for more info. This is exactly the solution you are looking for.
MP3 Gain at Sourceforge
Sangloth
I'd appreciate any comment with a logical basis...it doesn't even have to agree with me.
The best thing about ReplayGain is not only does it prevent clipping artifacts when managing volumes, it is also lossless. There is no re-encoding of the file like some volume normalizers. The quality will be the same (or better if you are able to remove clipping from your track).
Sony's Sound Forge has a filter called Wave Hammer which will bring up the soft spots. Note: Wave Hammer does not come with the studio version.
Lifetime Residual Income
Subject says it all.
There is an XMMS plugin I stumbled on a while ago called simply 'volnorm' that you might find useful. Not exactly perfect, but it works for me... get it here. Or emerge xmms-volnorm in gentoo ;)
~You laugh because I'm different, I laugh because I'm insane~
Some home theater receivers and tv's have "Night Mode" which is used to do this. Feature is great in that you don't have to crank it to hear all of the dynamic ranges of a movie thus not loosing too much when you watch at lower volumes. (perfect for those with kids..)
I think even my DVD player does this.
http://trikuare.cx/code/AudioCompress.html
Works with most players -- xmms plugin as well.
Ratboy
Just another "Cubible(sic) Joe" 2 17 3061
CoolEdit was bought by Adobe and is now available under the name Adobe Audition. Perhaps you were referring to the lack of a budget version of the software, however, in which case, yeah, that kinda sucks.
Is not the same thing as normalizing.
My reply would be to look at some winamp plugins that do dynamic compression, like audio stocker pro. I've found that if totally flat volume is what you are looking for it does an ok job. There are also some gaining sort of DSPs you can get for XMMS. None of this stuff can replace a good hardware compressor, or even a good software compressor for that matter. Wavelab is probably one of the best audio editors out there if you are a Windows user, also Sound Forge is pretty decent and has some really nice features. I always loved the pop and click removal tool. Audacity is also pretty decent. You just need something to flatten out your volume amplitude. It will make the mix (especially a symphony) sound a lot more flatter however because part of the arrangement is so dependant upon the individual volume levels of the different sections.
As someone has pointed out radio stations do this very well. (with real hardware of course!)
I was going to ask slashdot something similar as well.....
I have all sorts of MP3s and OGGs. What I would like to do is run some sort of gaining program across all of them at once. I already know of mp3gain and oggain. My question is that when such things are run how much of the original mix does it destroy? I mean I just want to generally raise the volume of the files to the be at least within a closer range, but I don't wan't say quiet parts of the mix to be automatically increased in amplitude. I've tried a few plugins for Winamp and XMMS which all claim to normalize as they play, but they are instead compressing the sound dynamically which alters every nearly aspect of the original in many ways, and is not what I'm really looking for (unlike this guy).
zosxavius photography
I recommend the Volume Logic plugin for iTunes. It provides dynamic automatic gain control (AGC) over multiple bands. I find it really brings out the nuances in quiet music without blowing me away, when things get loud.
Michael.
Linux : Mac
Adobe bought the company and turned Cool Edit Pro into Audition. They dropped Cool Edit 2000. It sold for $70 or $100 with the 4 track plug-in. The audio cleanup plug-in was $50 and it was great. It could clean room noise, tape hiss, clicks, pops, etc.
The program and the plug-in did more than everything I needed. But now I'm stuck. I'd like to buy another license for it, but I can't. Audition costs $300. There is no upgrade except the $170 upgrade to Audition, more than I paid to start with. So, for now, I'll just stick with what I have.
Are you listening, Adobe?
What you need to take advantage of is called "clipping" by sound experts.
Let's say your stereo can play a waveform that varies between -1.0 and 1.0. If you send it a peak of +/- 2 for instance, it will clip to +/- 1.
What you need to do is find the lowest peak in your music. Even the "silent" parts have a little noise.
Let's assume that it goes +/- 0.01 in those parts. Find the recipricol (1/0.01) = 100 and set your gain to that.
The quiet parts will range +/- 1, and the loud parts will be clipped to also be +/- 1. Voila! You've "expanded" and "compressed" without all that fancy professional equipment.
Note: if you don't have an easy way to estimate the gain you need, just use a round estimate like 1000. You can find op-amps at your local Radio Shack that will amplify even higher than this! Just be sure to leave off the "feedback" part of the circuit. We all know that feedback is bad, right?
And as an added advantage, your child will grow up with a love of music by the Japanese artist Merzbow. It's a win-win-win.
Package: cmt
.
.
.
Priority: optional
Section: sound
Installed-Size: 232
Maintainer: Anand Kumria
Architecture: i386
Version: 1.15-1
Provides: ladspa-plugin
Depends: libc6 (>= 2.3.1-1), libgcc1 (>= 1:3.2.3-0pre6), libstdc++5 (>= 1:3.2.3-0pre6)
Filename: pool/main/c/cmt/cmt_1.15-1_i386.deb
Size: 58704
MD5sum: ccff75c4945cd4cf1e12bf37cb7b7930
Description: Computer Music Toolkit (cmt) a collection of LADSPA plugins
cmt -- Computer Music Toolkit -- is a collection of LADSPA compatible
plugins that any conforming program may take advantage of.
Plugins available are: low/high pass filters, echo/feedback delay filters
with configurable delays from 0.01 to 60 seconds, amplifies, white and
ping noise generators, compressors, expanders, limiters, b/fmh encoders,
drum synthesizers, lofi (low fidelity), phase modulator (phasemod) and
many more
These plugins are only usable in host applications, of which glame,
sweep and others can be found in Debian.
For further information on cmt see http://www.ladspa.org/cmt/
assert(expired(knowledge));
I use the `normalize' Debian package. -m takes the average from all files specified. There's also normalize-mp3 and normalize-ogg.
#19845
The cmt plugins are used with the following audio editor programs: gnusound, beast, sweep, muse, and jack-rack.
assert(expired(knowledge));
see subject
Take the mean of all the songs and divide each song by it.
From the website:
'nuff said
Revolutions are never about freedom or justice. They're about who's going to be top dog. -- Kilgore Trout
The audio processing algorithm being requested here is called "compression", and it's a standard feature of most audio editing package such as SoundForge. You can also buy hardware compressors for under $100 (dbx and Alesis make stereo compressors) that are good for hooking into a home stereo/theater system.
I keep an Alesis digital stereo compressor hooked into my home stereo system so that when loud spots (commercials, action scenece, etc) come on it doesn't suddenly get orders of magnitude louder and drive my apartment neighbors nuts.
Some DVD players have audio compression built-in as a feature. Some newer TV sets have it built-in also.
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
(read on for what I mean by normalize)
Thanks for not making me RTFA, but you don't expect me to read the whole question do you?
Similarly, you can increase the dynamic range of the sound by putting the bulb in parallel to your headphones. Loud sounds increase the temperature (and thus the resistance) of the bulb filament, which diverts more current through the headphones. Quieter sounds don'y heat the filament as much and allow more current to take that route, thus making them even quieter.
You may have to experiment with different types of lamps to find which works best.
Unknown host pong.
it's called a compressor/limiter - it's accually 2 seperate processes, one that squashes the high volumes (if ya have any) and the other that boosts low volumes. you can find something like this in prettymuch any audio editing software. i cant think of any free programs that do this but on windoze you can use adobe audition or cool edit (96, 2000 whatever) - i used to use cool edit but they got bought by adobe and so i use that now. by far the best program for general audio editing. although, you may not want to shell out $300 for that - so just search online for something and play with it. sorry i cant reccomend anything free or cheaper :\
hex
---- The first point-and-click interface was a Smith & Wesson
This plugin for winamp does what you are talking about. It automatically moved the volume up and down to maintain and constant volume. It works quite well, but I'm not sure how much you can fine tune it.
or else!
for winamp there is a dsp plugin called tomsteady which does exactly this. i use it when i play mp3's at night.
Music is an artform, not a waveform.
The foobar2000 audio player includes built-in support for ReplayGain. MP3 Gain was mentioned in another thread, for the differences, see Difference between Mp3gain and Replaygain.
Tired of free ipod spam sigs? Opt ou
What you want is a compander. (compressor/expander). It is so called because it compresses or expands the dynamic range of the input audio. Sox includes one, if you like command lines.
.1,.1 -60,-10 0 0 .1
.1s to specify how fast it changes the volume; change the -60,-10 (always negative) to more similar values to make the compression less severe.
For winamp, I've found Rocksteady is beautiful, and does separate compression for several frequency bands (i can't begin to express how good this is for pop/rock).
For XMMS, AudioCompress does a sufficient job, although the windowing is somewhat stupid (not predictive == you'll get pops if things suddenly get loud) and it doesn't separate into multiple frequency bands, so it won't sound so good if you're playing something where the bass is really pushed (like Fiona Apple) next to something where it's not (classical).
Neither allow you specify complex transfer functions (of input volume to output volume).
For your purposes, sox is really the right thing, although it may feel a bit like "ack! drowning in sea of unexplained options!". You could start off trying:
$ sox infile.wav outfile.wav compand
will give you VERY hard compression. Change the
$ man sox
will tell you something more.
- KLS
SOX has a compand operator that lets you tune this stuff and parameters that let you tweak how fast it responds, how hard it attempts to correct the sound, and how fast it "lets go." Put this in line with your CD RIP process after you run a few through a test bed.
Don't forget to specify settings for each channel (normally two).
If you're willing to forego ID3 tags, or can hack them in yourself with mp3info, you can use cdda2wav to do sox processing: cdda2wav -O wav -t 7 -D /dev/cdrom - | sox [sox options] | lame - foo.mp3
I acknowledge that not everybody (including me) is an audiophile, but the recording engineer went to some effort to make a recording that, when played, would reproduce the original performance as closely as possible.
If you ride the volume control (or use automatic gain control to do it for you) or use dynamic range compression (a different animal from digital compression), you're compromising the music.
I'd no sooner do this than bleach my favourite painting.
Would you believe that there is a tool in Linux called normalize? It's a command line tool written by Chris Vaill. You may have to break up your wav file into different files. Here's the man page (sorry for the mashed-up text, but you get the picture):
NAME normalize adjusts volume levels of audio files. SYNOPSIS normalize [ options ][-- ] file... DESCRIPTION normalize is used to adjust the volume of wav audio files to a standard volume level. This is useful for things like creating mp3 mixes, where different recording levels on different albums can cause the volume to vary greatly from song to song. normalize operates in two phases. In the first phase, it analyzes the specified files as wav audio files, and computes the volume of each file. In the second phase, it applies a volume adjustment to each file to set each file s volume to a standard level. OPTIONS -a, --amplitude=AMPLITUDE Adjust the RMS volume to the target amplitude AMPLITUDE; must be between 0.0 and 1.0. If a number suffixed by "dB" or "dBFS" is specified, the amplitude is assumed to be in decibels from full scale. The default is -12dBFS. -b, --batch Enable batch mode: see BATCH MODE, below. -c, --compression Deprecated.In previous versions, this enabled the limiter,but now the limiter is enabled by default. --clipping Disable the limiter,and just clip any samples that are too large. Same effect as -l 0dBFS. --fractions Display all values as decimal fractions instead of in decibels. By default, volume adjustments are shown in decibels, and volume levels in dBFS, where 0 dBFS is the level of a square wave of max-imum amplitude. -g, --gain=GAIN Skip the volume computation phase: don t compute the volume adjustment from the current vol-umes of the files. Instead, just apply the given gain as a volume adjustment to all files. As a plain number this is just a multiplier applied to all samples, If a number suffixed by "dB" is specified, all volumes are adjusted by that many decibels. --id3-compat Use this option when adjusting MPEG audio files if your MP3 player does not recognize ID3v2.4 tags. See MPEG AUDIO ADJUSTMENT,below, for details. --id3-unsync Use this option when adjusting MPEG audio files if your MP3 player does not recognize ID3v2 tags and has trouble playing some ID3v2 tagged MP3 files. See MPEG AUDIO ADJUSTMENT, below, for details. -l, --limiter=LEVEL This controls the behavior of the limiter.By default, all samples above -6dBFS (0.5) are limited, but this option sets the limiting level toLEVEL.Setting LEVEL to 1 (or 0dBFS) does no limiting (clipping is done instead); setting LEVEL to 0 does limiting on all samples. The default value is recommended unless you know what you re doing. -m, --mix Enable mix mode: see MIX MODE, below. Batch mode and mix mode are mutually exclusive. -n, --no-adjust Compute and output the volume adjustment that would set the volume to the target, but don t apply it to any of the files (i.e. skip the second phase). If you use this option, your files will not be altered in any way. --no-progress Don t print any progress information. All other messages are printed as normal according to the verbosity level. --peak Adjust using peak levels instead of RMS levels. Each file will be adjusted so that 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 are printed. -t, --average-threshold=THRESHOLD When averaging volume levels for batch mode or mix mode, throw out any volumes that are more than THRESHOLD decibels from the average. A high value here (say,50) will make sure that 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 is 0.125 by default, or 0 if the -g option is given. -v,--verbose Increase verbosity.This option can be repeated
Linux at home
VLevel is exactly what you want. It works by continuously but gradually changing the gain throughout the file. It has a lookahead buffer of a few seconds, so unlike a compressor, it never has to change the gain too quickly. This preserves "contrast," so for example if a quiet part was being made loud, the gain will decrease a little while before the big bombastic crescendo, so you'll still get the effect.
For Windows, the best way to use it is with the plugin for Foobar2000, an awesome windows audio player. On Linux, you can use it as a LADSPA filter, which can be plugged into XMMS.
...embrace dynamics! Compression was invented by suit-wearing big-label whores! --- (I.e., I happen to run a home studio and my most-used digital effect is compression. *shrug*)
...Audacity is a solution for Linux.
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
P.
I know Cool Edit Pro would normalize the music how you stated in your post (find an average throughout the whole song), but I believe there is a way you can normalize in spots. I use Cool Edit Pro all the time to take out noise of my music files. If all else, you can NOT choose the normalize option (if in fact in will only calculate the average for the whole song, and not just a snippet) and manually normalize it by hand by adjusting the values for a small section of a song (which I know you can do).
YOU'RE WINNER !
Another lame blog
What you want is a nice set of headphone.
Are you...Are you some kind of genius?
No, ma'am, I'm just a regular Slashdot reader.
XMMS Compress is much better for the very reasons explained on the website:
http://trikuare.cx/code/AudioCompress.html
I know very little about compression (or sound editing in general) but even I could notice a clear improvement over volnorm.
Most of the geeks who mentioned compression/limiting are about there - it's compression/limiting that you're after not normalization.
:/ If you're interested in technical, psycho-acoustics and philosophical approaches look at http://www.digido.com/. Bob Katz has a nice list of what he regards to be the best mastered CD's ever.
The funny thing I find is that our aesthetic of what makes a good piece of music has changed soooo much. In the 80's/90's we had reasonable dynamics, reverb was perhaps a little overused - but the tracks were great. These days I compare stuff done in the last 5 years and it's very very dry and the levels are a good detectable 10db higher. If they actually had the same space/reverb as the 80's they wouldn't be able to compress/limit so much because the track would sound washed out.
I'm a musician and part time recording artist and I really struggle to bring my tracks up to the same level as others - it's just that it doesn't need to be that loud and that lacking in real dynamics. One of the worst I saw recently was Maroon 5 - if you load one of these tracks into a wave editor it is fucking flat the entire way. This leaves NO room for real dynamics - I've compared it with stuff thats been mastered by Bernie Grundman (arguably one of the worlds best mastering engineers) - his stuff was about 13db quiter but so rich in terms of harmonics and dynamics because he had room to move. The Maroon 5 stuff - whilst radio-friendly scared the living shit out of me. I don't want my music to be a square wave but in order to compete I have to do that
I know you're looking for something thats aimed at desktop speakers etc.. (oh. btw - WMP, Winamp, Foobar2000, Audacity, JAMin can all do what you want) but I've decided over the course of the last year or two that I'm not compromising my listening to compete with the latest Sony, BMG pop release - give me my DYNAMICS! This is where world/classical music will always have the advantage - to preserve that wonderful sound they need the full dynamic range. Even Trent Reznor gets this - NIN - whilst fucking loud industrial music has some good dynamics..
If you don't mind a hardware 'solution', look for a 'limiter' at your local musicians equipment shop. I got one about 10 years ago (rocksonics -- appear to be out of business now) which works great. I think it cost about $100, plus I needed some 1/4" -->RCA adapters.
On the other hand there's lots of software that does the same thing -- main benefit of hardware is you could hook it up in front of some powered speakers and use any audio source (e.g. plain cd player).
One other problem with limiting/compression is that cheaper ones aren't sensitive to frequency -- a big bass beat will kick in the limiter more than it should in terms of perceived loudness. In general you can fiddle with it and get it to sound reasonably good while eliminating 'the loud bits'.
"But actually trying to use m4 as a general-purpose langage would be deeply perverse" --ESR
just use the volnorm audio plugin (or put "aop=list=volnorm" in /etc/mplayer/mplayer.conf), it will play every audio normalizing it on the fly.
In case you happen to use Linux, there are a couple of solutions:
If using KDE, the ARTS soundserver comes with a stereo compressor. Just turn it on with artscontrol: use the environment tool to add an effect rack and then add the compressor there.
If KDE is not an option, there's also the jack daemon. jack-rack can be used to plug LADSPA effects into the signal path. Of course, the playback software you're using needs to be aware of the sound daemons. XMMS has output plugins for both arts and jack, and all the KDE apps should support arts. Others, YMMV.