IPB

Welcome Guest ( Log In | Register )

DSP Loudness Control, What is Best Filter architecture
easily_confused
post Jan 10 2012, 05:39
Post #1





Group: Members
Posts: 5
Joined: 5-September 09
Member No.: 72908



I want to implement bass boost based on volume setting. Basically the low end (below 2KHz) of the Fletcher Munson curves. I don't want to try to dynamically load interpolated biquad filter coefficients based on the volume control. Is ther some other filter architecture that will produce the approx. 0db per octave (loud) to 12 dB per octave (low volume) bass boost in a simpler way. An example of a simple 6dB only analog control is at extron.com http://www.extron.com/company/article.aspx...p;version=print . This would be simple to implement as an iir filter, but I want to go a little fancier. Thanks
Go to the top of the page
+Quote Post
 
Start new topic
Replies
dc2bluelight
post Mar 30 2012, 09:40
Post #2





Group: Members
Posts: 83
Joined: 16-June 11
Member No.: 91562



First, the Fletcher-Munson data is not accurate. See the work of S. S. Stevens, much better. Ever notice how a Fletcher-Munson loudness compensation control never sounds right? That's because they got it wrong to begin with.

Second, Woodinville is right, it IS a hard problem, it's not a fixed curve, and it is highly dependent on the specific acoustic play level, so it has to be dynamic.

Next...why number them...BIG assumption that everybody mixes to a standard level in a standardized monitoring environment. Not in the music industry! Film, yes, but not music. And that -20dbFS would be nice, but doesn't happen after mastering, especially pop stuff. Not even close. Pretty much have to ignore dbFS in this case, it's not relevant. System acoustic play level is though. But in the context of correcting for differing hearing response at differing levels. You're in no way matching the mix environment, there's just no way to know what it was, and it's not important anyway.

No, you can't do it based on a volume control setting. Been tried by many people for many years, but it doesn't work. The reason is simple: the correction required is dependent on SPL, which a volume control may influence but doesn't predict and is not the only thing that affects it. Hotter signal into it, and you turn it down, but that would change the compensation inappropriately. There were even attempts to calibrate the compensation by adding another control, but it doesn't work because program dynamics are not fixed. No, the correction must be tied to specific SPL, not a control setting. That's actually where many people trying this messed up.

If you look at the Stevens data, or even Fletcher-Munson for that matter, you'll see that the compensation curve families resemble that of a dynamics processor with a dynamic transfer function that changes with frequency, not a fixed filter. The amount you need at 20Hz changes with level at a different rate than the amount you need at 200Hz.

And finally, it's been done, and done quite well. It's called Audyssey Dynamic Volume and Dynamic EQ. Rather than base their idea on existing loudness research, their algorithm is based on what was essentially reverse-engineering human loudness perception. They took LOTs of data on lots of subjects, with lots of different program material and the result is pretty darn good. The big advantage is, once an Audyssey system has been calibrated it knows the exact SPL at every moment regardless of volume control setting or variations in program material, so it can apply the right correction dynamically. Pretty darn smart, those guys.
Go to the top of the page
+Quote Post
Woodinville
post Mar 30 2012, 21:05
Post #3





Group: Members
Posts: 1402
Joined: 9-January 05
From: JJ's office.
Member No.: 18957



QUOTE (dc2bluelight @ Mar 30 2012, 01:40) *
First, the Fletcher-Munson data is not accurate. See the work of S. S. Stevens, much better. Ever notice how a Fletcher-Munson loudness compensation control never sounds right? That's because they got it wrong to begin with.


Whoa, there, the reason a "loudness control" doesn't work is simple, it doesn't work because it is not time varying (according to signal and absolute presentation level) or signal dependent.

Stevens' curves and Fletcher's curves are not far off, if you remember that one used open ear canals and one closed ear canals. Unsurprisingly, the frequency of the ear canal resonance shifts by approximately an octave as a result. No surprise there.

I wouldn't be so fast to dismiss Fletcher, especially since by any reasonable reading, Stevens is more confirmation than anything else. Claiming "Fletcher got it wrong" is just unjustifiable, and is almost as bad yellow journalism as the crap put forth in the article in Spectrum where it was asserted that Fletcher was trying to figure out how cheap AT&T could make transmission.

If you build a codec based on Fletcher's results (Using modern understanding), you get to AAC, via the original version of AT&T PAC, from before the 'trivestiture". That's not conjecture, that's personal experience.

And Splice, please realize that the thing you want to build must be signal dependent, and must be tied to absolute presentation level as a function of frequency. Signal dependency is not an option, it's a requirement.

This post has been edited by Woodinville: Mar 30 2012, 21:07


--------------------
-----
J. D. (jj) Johnston
Go to the top of the page
+Quote Post
splice
post Mar 31 2012, 01:42
Post #4





Group: Members
Posts: 125
Joined: 23-July 03
Member No.: 7935



QUOTE (Woodinville @ Mar 30 2012, 12:05) *
... And Splice, please realize that the thing you want to build must be signal dependent, and must be tied to absolute presentation level as a function of frequency. Signal dependency is not an option, it's a requirement.


I'm missing some crucial piece of understanding. Please bear with this "bear of very small brain" for a bit...
"Signal dependant" - do you mean in time or frequency?
To me, one implies a dynamic EQ that adjusts itself according to the current level or spectral content of the signal (e.g Audyssey processor), the other a static EQ, the curve of which is adjusted according to the auditory system behaviour described by the "equal loudness" curves.

"Tied to absolute presentation level as a function of frequency" - I interpret this as saying that each chosen presentation SPL must have a matching EQ curve. My assertion is that each *change* in presentation SPL requires a fixed *change* in the EQ curve. Almost, but not quite, the same thing.

"Signal dependency being a requirement" - I take that to be the first part of the process. With no EQ, adjust the listening SPL until the source sounds "right" or "natural" or otherwise sounds pleasing. Now use the "loudness" control to make all level adjustments after that.

(If I were to implement this in DSP instead of analog controls, I'd make it more user friendly by unidirectionally coupling the level and loudness controls for the initial adjustment.)

I think part of the understanding problem is the way that the function being compensated for is dynamic - the amount of compensation required changes as the absolute SPL changes, so how can it be compensated for by a statically adjusted EQ? As I tried to explain earlier, the spectral balance of the music is fixed at source - the "Bolero" example - so a fixed compensation is appropriate. You don't have to adjust the bass tone control as a piece of music goes from pianissimo to fortissimo - the musicians have done that for you already. All the "loudness" control does is mimic what happens when you walk from the front of the hall to the back - although a concert hall is a bad example, perhaps more like an open-air concert.

I've been procrastinating because of the difficulty of building such a circuit in the analog domain - not difficult for me, but a disincentive for anyone wanting to try it who doesn't have constructional skills. It occurred to me last night that I should try my hand at coding a foobar plugin implementation. It would make it easy for anyone wanting to try it out.


---------------
Regards,
Don Hills




--------------------
Regards,
Don Hills
Go to the top of the page
+Quote Post
Woodinville
post Mar 31 2012, 03:40
Post #5





Group: Members
Posts: 1402
Joined: 9-January 05
From: JJ's office.
Member No.: 18957



QUOTE (splice @ Mar 30 2012, 17:42) *
I'm missing some crucial piece of understanding. Please bear with this "bear of very small brain" for a bit...
"Signal dependant" - do you mean in time or frequency?
To me, one implies a dynamic EQ that adjusts itself according to the current level or spectral content of the signal (e.g Audyssey processor), the other a static EQ, the curve of which is adjusted according to the auditory system behaviour described by the "equal loudness" curves.


You need frequency domain equalization (i.e. a filter curve) that varies with the signal (and of course frequency and presentation level), and where the actual gain of the system post-filter is known to a dB or so.


--------------------
-----
J. D. (jj) Johnston
Go to the top of the page
+Quote Post

Posts in this topic
- easily_confused   DSP Loudness Control   Jan 10 2012, 05:39
- - pdq   How about taking the unfiltered data, and the data...   Jan 10 2012, 13:46
- - Woodinville   You need a time-varying system with knowlege of th...   Jan 10 2012, 14:13
- - DVDdoug   I think what you are looking for is a shelving fil...   Jan 10 2012, 20:34
- - easily_confused   Hmmm, - implementing the exton example is not as s...   Jan 10 2012, 21:43
|- - bandpass   SoX has an accurate FFT FIR filter implementation ...   Jan 15 2012, 10:48
- - Woodinville   Again, you need a signal-dependent EQ that operate...   Jan 16 2012, 01:05
|- - hellokeith   QUOTE (Woodinville @ Jan 15 2012, 19:05) ...   Jan 16 2012, 05:20
|- - Woodinville   QUOTE (hellokeith @ Jan 15 2012, 20:20) Q...   Jan 16 2012, 06:24
|- - splice   QUOTE (Woodinville @ Jan 15 2012, 21:24) ...   Mar 18 2012, 12:00
- - saratoga   I always wondered if they're any good open sou...   Jan 16 2012, 05:39
- - dc2bluelight   First, the Fletcher-Munson data is not accurate. ...   Mar 30 2012, 09:40
|- - splice   QUOTE (dc2bluelight @ Mar 30 2012, 00:40)...   Mar 30 2012, 12:12
|- - Woodinville   QUOTE (dc2bluelight @ Mar 30 2012, 01:40)...   Mar 30 2012, 21:05
|- - splice   QUOTE (Woodinville @ Mar 30 2012, 12:05) ...   Mar 31 2012, 01:42
|- - Woodinville   QUOTE (splice @ Mar 30 2012, 17:42) I...   Mar 31 2012, 03:40
|- - splice   QUOTE (Woodinville @ Mar 30 2012, 18:40) ...   Mar 31 2012, 11:05
- - dc2bluelight   Perhaps my statement as to Fletcher-Munson getting...   Mar 31 2012, 03:13
|- - Woodinville   QUOTE (dc2bluelight @ Mar 30 2012, 19:13)...   Mar 31 2012, 03:44
||- - dc2bluelight   QUOTE (Woodinville @ Mar 30 2012, 21:44) ...   Mar 31 2012, 06:20
||- - Woodinville   QUOTE (dc2bluelight @ Mar 30 2012, 22:20)...   Mar 31 2012, 09:25
|- - splice   (Excuse my trimming of quotes, I'm trying to k...   Mar 31 2012, 07:56
|- - Woodinville   QUOTE (splice @ Mar 30 2012, 23:56) An al...   Mar 31 2012, 09:27
||- - splice   QUOTE (Woodinville @ Mar 31 2012, 00:27) ...   Mar 31 2012, 13:03
|- - dc2bluelight   QUOTE (splice @ Mar 31 2012, 01:56) I rem...   Mar 31 2012, 10:01
|- - splice   QUOTE (dc2bluelight @ Mar 31 2012, 01:01)...   Mar 31 2012, 11:36
|- - dc2bluelight   QUOTE (splice @ Mar 31 2012, 05:36) I...   Mar 31 2012, 17:19
|- - splice   QUOTE (dc2bluelight @ Mar 31 2012, 09:19)...   Apr 1 2012, 11:41
|- - dc2bluelight   QUOTE (splice @ Apr 1 2012, 05:41) QUOTE ...   Apr 1 2012, 17:03
|- - splice   QUOTE (dc2bluelight @ Apr 1 2012, 09:03) ...   Apr 1 2012, 22:04
|- - dc2bluelight   QUOTE (splice @ Apr 1 2012, 16:04) This h...   Apr 1 2012, 22:37
|- - splice   QUOTE (dc2bluelight @ Apr 1 2012, 14:37) ...   Apr 2 2012, 01:49
|- - dc2bluelight   Oversimplified. Your example assumes that all s...   Apr 2 2012, 04:38
|- - splice   QUOTE (dc2bluelight @ Apr 1 2012, 20:38) ...   Apr 2 2012, 06:23
|- - dc2bluelight   I'd iterate, one last time, three points: 1....   Apr 2 2012, 16:14
|- - splice   QUOTE (dc2bluelight @ Apr 2 2012, 08:14) ...   Apr 2 2012, 21:37
|- - mbkennel   I don't know if I can solve the problem in its...   Jun 3 2013, 00:07
- - dc2bluelight   You can buy the paper from the AES, if I get time ...   Mar 31 2012, 17:38


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: 24th September 2014 - 04:35