Welcome Guest ( Log In | Register )

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

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

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
post Jan 19 2008, 21:53
Post #2

Group: Members
Posts: 101
Joined: 8-July 04
Member No.: 15139

Hi, Just wanted to say I'm really interested in this!
I've downloaded all the stuff (just enter junk details for the labview runtime), but haven't had time to check stuff out yet. Will post back soon.

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: 26th December 2014 - 14:09