IPB

Welcome Guest ( Log In | Register )

pfpf v0.1, An experimental dynamic range estimator for music
Axon
post Jan 14 2008, 04:35
Post #1





Group: Members (Donating)
Posts: 1984
Joined: 4-January 04
From: Austin, TX
Member No.: 10933



http://audiamorous.blogspot.com/2008/01/pf...dynamic_13.html
QUOTE (me)
The dynamic range of a selection of music is dependent on both estimating the time-varying loudness of the music and the timescale used for loudness evaluation. I propose a numerical method of estimating dynamic range that satisfies those dependencies using a modified ITU-R 1770 loudness filter and three moving windows to estimate loudness across three different timescales. The goal is to more accurately measure and compare dynamic range between different music genres and different masterings and processing techniques for the same music.

Summary of algorithm:
  1. Apply ITU-R 1770 filters to convert amplitude to instantaneous loudness.
  2. Estimate loudness across three different timescales by computing 10ms ("short term"), 200ms ("medium term") and 3000ms ("long term") windowed RMS power.
  3. Decouple timescales by scaling 10ms loudness by 200ms loudness, and 200ms loudness by 3000ms loudness.
  4. Threshold loudness at each timescale to remove silence (optional)
  5. Compute histogram for each loudness estimate
  6. Dynamic range = range between 50th and 97.7th percentile, for each timescale
I've been kicking this around for almost a year, but I finally broke down and wrote the thing for real in an afternoon last November (it's been extensively tuned since then). The recent discussions about dynamic range have forced my hand, because so many important things were touched upon, and really, you can think of pfpf as an extremely elaborate reply to that topic.

This is a better way to measure dynamic range, for the following reasons:
  • It measures dynamic range as a ratio of loudnesses. Peak-to-average cannot claim this (it is fundamentally a comparison of two different units). ReplayGain comparisons cannot claim this.
  • It uses a real loudness model (flawed though it is) for the basis of loudness estimation. Waveform comparisons (especially for loudness-war-related discussions) are fundamentally flawed for this reason - what you get out of Audacity has a relatively tenuous connection to real perceived loudness.
  • Dynamic range is estimated across three different timescales - 3000ms, 200ms, and 10 ms - and each scale is fully decorrelated from each other. So pfpf can tell between when a quiet passage has a loud transient, or when a loud passage has a sudden pause. The timescales are configurable.
  • It uses a percentile approach on a histogram for estimating dynamic range, instead of min/max/avg. This makes the technique much more resilient to differences in mastering and medium; pops and ticks should not affect results, nor should small bits of digital silence, like in greynol's Tool example. (Yes, greynol, you can distinguish ppp from fff now.) The percentiles are configurable.
  • Background noise (when no music is playing) can be masked with a fixed threshold, so that silence won't pile up on one side of the histogram distorting the numbers, and the results should be invariant of any extra silence padding before/after music (this should make CD/vinyl comparisons a lot easier). The threshold is configurable.
Please read the paper, download the app and try it for yourself. Lemmeknow what you think.

This post has been edited by Axon: Jan 14 2008, 04:37
Go to the top of the page
+Quote Post
 
Start new topic
Replies
Axon
post Jun 27 2008, 23:29
Post #2





Group: Members (Donating)
Posts: 1984
Joined: 4-January 04
From: Austin, TX
Member No.: 10933



Hell, you can just download it from the FTP site. I'm mostly just deferring to the Web interface for deciding which installer to use, since my first pick was wrong.

I broke down and uploaded a pfpf zip with an installer, including a runtime. I haven't tested it, I just hit "build". It's 64MB. Don't overdownload it smile.gif
Go to the top of the page
+Quote Post
Chromatix
post Jun 28 2008, 12:37
Post #3





Group: Members
Posts: 62
Joined: 16-June 08
Member No.: 54419



QUOTE (Axon @ Jun 28 2008, 01:29) *
Hell, you can just download it from the FTP site. I'm mostly just deferring to the Web interface for deciding which installer to use, since my first pick was wrong.

I broke down and uploaded a pfpf zip with an installer, including a runtime. I haven't tested it, I just hit "build". It's 64MB. Don't overdownload it smile.gif

Ah yes, that works much better. (Note to others: if you installed the "miniature" runtime, uninstall it first, otherwise it won't get replaced.)

Your default timescales for long and medium are somewhat longer than mine, I think. So my averaging-meter is coming in somewhere between your long and medium term measurements, and my peak-meter somewhere between your medium and short term measurements. With that said, we're getting respectably similar-shaped graphs, I think.

Because I'm measuring things in a different way, I get a kind of DC-offset on my medium-term graph, which I also factor into my measurements. This has the neat side-effect of eliminating the enormous negative spikes I see on your graphs, though I get (smaller?) positive spikes instead. I don't think the human ear is as sensitive to sudden decreases in amplitude as it is to sudden increases, which is why I am comfortable with using a 300ms/99% decay rate on both meters.

Unfortunately, it's very difficult to read anything from your medium-term graph, for several reasons. Probably the biggest difference to usability would be if the X-axes for all three graphs were linked, so that it was easier to zoom in on the detail. It would also be neat to listen to the track while watching meter needles, as an engineer would - perhaps I can write a tool to do that in Linux.

I've been trying to find out what ITU-R1770 actually is, in detail, but all of the useful free links I can easily find seem to have gone dead. Any pointers here?
Go to the top of the page
+Quote Post

Posts in this topic
- Axon   pfpf v0.1   Jan 14 2008, 04:35
- - greynol   QUOTE (Axon @ Jan 13 2008, 19:35) This ma...   Jan 14 2008, 07:47
- - Axon   OK, replace "digital silence" in that se...   Jan 14 2008, 08:51
|- - greynol   QUOTE (Axon @ Jan 13 2008, 23:51) OK, rep...   Jan 14 2008, 17:42
- - Axon   Oh. My bad. Well, run it through pfpf and lemme kn...   Jan 14 2008, 18:55
|- - Vitecs   Tried to play a little with it. 1. Values too sma...   Jan 15 2008, 14:50
|- - Axon   QUOTE (Vitecs @ Jan 15 2008, 07:50) Tried...   Jan 15 2008, 23:35
- - 2Bdecided   This is very interesting. Most of it makes perfect...   Jan 16 2008, 10:47
|- - Axon   QUOTE (2Bdecided @ Jan 16 2008, 03:47) Th...   Jan 16 2008, 18:44
- - Axon   Bump. Any other comments?   Jan 19 2008, 05:54
|- - carpman   Looks like a pretty interesting project. Was going...   Jan 19 2008, 07:54
|- - Axon   QUOTE (carpman @ Jan 19 2008, 00:54) Look...   Jan 20 2008, 22:42
||- - carpman   QUOTE (Axon @ Jan 20 2008, 21:42) Oh, yea...   Jan 21 2008, 01:45
|- - soultrain   QUOTE (carpman @ Jan 19 2008, 07:54) Look...   Feb 3 2008, 23:15
|- - soultrain   Dloaded the small library and pfpf, installd both ...   Feb 3 2008, 23:25
- - edwardar   Hi, Just wanted to say I'm really interested i...   Jan 19 2008, 21:53
- - Raiden   Thank you very much for this great tool. One minor...   Feb 3 2008, 15:23
- - Axon   Yeah I really should have replied to yall sooner. ...   Jun 27 2008, 17:01
- - Chromatix   I think I'm getting the same "missing res...   Jun 27 2008, 21:34
- - Axon   Boo! Well, the first thing I would suggest (un...   Jun 27 2008, 21:50
- - Raiden   To avoid registration google "LabVIEW821Runti...   Jun 27 2008, 22:28
- - Axon   Hell, you can just download it from the FTP site. ...   Jun 27 2008, 23:29
- - Chromatix   QUOTE (Axon @ Jun 28 2008, 01:29) Hell, y...   Jun 28 2008, 12:37
- - Axon   QUOTE (Chromatix @ Jun 28 2008, 06:37) Yo...   Jun 28 2008, 22:05


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 23rd August 2014 - 10:39