Firstly, Let's be clear - this method won't deliver a "true" dynamic range measurement if by that we mean a measurement which takes into account negation of true silence and other related factors.
There's a few other factors involved in tools that measure dynamic range.
Also, let's clear the terms correctly.
By "Dynamic Range", I don't mean literal "Dynamic Range".
What almost all content referring to the "popular" employment in the "loudness war" zeitgeist is referring to as "Dynamic Range" is technically "Crest Factor".
That is: the measure of the highest peak to the average (body) level.
There's lots of tools out there for measuring this (Wavelab, TT Meter, Ozone 5, Waves Dorrough, Voxengo SPAN, Dynameter, etc... [some are garbage - I know this list is good meters]).
One thing that I don't really like about any of the meters, however, is that it doesn't give you a second-by-second graphical map of what's going on.
Mostly, they all do one of two things (or only one):
1) Give you live readings of the current value(s)
2) Give you an output (of) value(s) when you feed in a song file (.wav, .mp3, etc...)
Well, that's great, but I'm far more analytical and visually based than that.
An average, min, max, or even real time doesn't help me as much as being able to see the whole song splayed open and showing me the level, peaks, and dynamic range for every second of the song.
So, since I work at a telecommunications company I have this awareness of a tool we use for broadcast TV as a "Kentucky Windage" sort of gauge (it's not what's used on the EQ - it's what we use if we just want to spot check a feed from the receiving side real quick).
It's called Orban Loudness Meter.
[Only registered and activated users can see links. Click here to register]
(Now...I haven't downloaded the updated version, but I'm fairly certain the primary components that I use are still included and function the same since they are the integral components of the system)
The basic rundown
The way that I use this tool is that I calibrate my system to make sure that a test file ([Only registered and activated users can see links. Click here to register]
) plays right about at -3 LKFS.
(If it's off by a smidge...meh, we're dealing with a multitude of factors so don't be shocked if you get -2.8 to -3.4 ish results...just get it as close to -3 as possible. If your system doesn't budge when you move your volume around, that means you don't need to calibrate anything and it's going to capture the sound raw - hurray for you!...it also means you should inherently see this file park at around -3 LKFS.)
Once I have that dialed in, I adjust the settings to capture data every second and save it to a file, turn on the write to log file option, turn on the Momentary, Short Term & Integrated, VU, and LRA meters, and finally hit the "power" button to start the capturing.
Then I click play on the song and let it play through.
Once it's done, I rename the log file (it's just a text file) to whatever I want, remove the header data so it's just the tracking data (see below), import it into Excel (Data tab, From Text option - comma delimited), and remove the rows of data which are obviously when the song wasn't playing (rather easy to spot as they usually have an LKFS value down in the - hundreds or very nearly in that range...you don't want to include these in the calculations because they aren't actually part of your song).
Once I have it in Excel I add two calculations on two additional rows to the right of the captured data:
1) The average of L and R reconstructed Peak (Orban captures peaks by L and R separately - and the new one probably gives an option for even more since it supports surround sound now).
This step is simply =average(L:R) where L and R are the cell value on the first row in the columns respectively for the L and R values for the reconstructed peak.
Now I have a single Peak value.
I drag that the rest of the way down the song's data rows.
2) Once I have the Peak, I subtract the Peak from the value on the same row for the LKFS (which will be printed as whichever BS.1770 you used...I use BS.1770-2...these are differences of standards so it doesn't matter a HUGE amount to your uses. There may be more options in the newer version...I'll probably just stick to 2 if it's still there, or figure out which is the one that fits best to the test sound).
This is my calculated CREST FACTOR (often called "dynamic range" in the internet's lexicon of fast-n-loose language).
I then compile the LKFS, PEAK, and CREST FACTOR/DYNAMIC RANGE columns right next to each other and create a simple LINE graph chart from the data.
I have my entire song opened up in front of me per second in regards to "loudness" analysis.
OK, some quick instructions:
Cleaning the data file
The line that starts with "Date,Time,etc...."
Delete everything above that line and save the file.
Adjusting the Settings:
The stuff that's turned on (is orange):
Now, Here's what it looks like on the output.
Here's Nirvana's Nevermind:
This song has a pretty decent "loudness" for broadcast and a decent "DNR" (Crest Factor).
Seeing things above that +10 line is *thumbs up*.
Trending below that line gets less and less *thumbs up*.
Now...fun part of using this way of looking at things is that DNR (hold on here, I'm going to start a fight...) IS NOT THE KING OF GOOD OR BAD.
You can't tell if a song is set well JUST on the DNR alone.
You need the rest of the information (LKFS and PEAKS), and here's Trent Reznor to passively explain just why that is:
You see, in Less Than, Trent did something artistically interesting with the production.
He PURPOSEFULLY reduced the distance between the body and the peaks as the song progressed.
He did this to increase the tension and force of the song.
Notice, he didn't violate sound levels in doing this. He maintained relatively the SAME peak values, but his average body level ("floor" - not actually the floor technically, but in this topic it's the lowest item so it's our floor) up and up slowly over the course of the song.
This takes considerable talent to keep the PEAKS about the same while raising the BODY up to purposefully LOWER the DNR/Crest Factor without employing massive compression or limiters (and we can tell that there's not a huge amount of limiting or compressing to accomplish this because the peaks aren't flat-lined).
So how do I use it?
Well, It tells me when I've made a mistake and didn't realize it.
Like in a recent title I uploaded here, Fugue.
See, my "DNR" Reading for this comes out "good" (about on par with Nirvana, which is decent).
HOWEVER, if I went by that I would be flat WRONG!
I royally screwed this song's settings up by smashing too much too high and consequently the PEAKS are slamming up against the limiter protection and I'm getting this ugly flat line for the PEAKS.
However, I can tell that the general BODY is good, and the relationship between the BODY and PEAKS is generally correct.
Everything is just too loud.
So all I have to do is turn the track, as a whole, (not on the master, but a pre-bus grouping) down about 4 to 5 dbs, reprocess it, and I should be good (as well as probably get a bit of a boost in the "DNR" value since I won't be squashing up against 0 for the PEAKS).
So...There you have it.
A really granular way to look at the dynamics of your song in regards to "loudness".