HydrogenAudio

Hydrogenaudio Forum => General Audio => Topic started by: Barra79 on 2012-03-23 21:20:29

Title: Estimating Partial Loudness
Post by: Barra79 on 2012-03-23 21:20:29
Hi,

Lets say I have two partials as follows:

Code: [Select]
    sec   Hz    amp
    0.0  2630  0.001
    0.1  2340  0.1
    0.2  2220  1.0
    0.3  2200  0.7
    0.4  2200  0.2
    0.5  2200  0.01
   
    sec  Hz    amp
    1.0  463  0.001
    1.1  534  0.1
    1.2  440  0.4
    1.3  440  0.7
    1.4  440  0.2
    1.5  440  0.01

I've established this data by processing an aiff file. Please note that I'm only showing a small set of the samples for these partials.

So the question is, how can I establish the difference in loudness between these two partials?

First of all, lets pretend they're both at the same frequency how do I calculate the difference in loudness?

Secondly, lets say we take frequency into consideration. What Equal-loudness contour should I use to calculate the percentage difference in loudness between the two partial?  I wish to use a lookup table to make these calculations in my code.

Thanks for your help,

Barry
Title: Estimating Partial Loudness
Post by: Notat on 2012-03-23 21:40:34
For loudness estimation as a function of frequency, you'll want to use a weighting filter. Have a look at ITU-R BS.1770-2 (http://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-2-201103-I!!PDF-E.pdf) or, alternately ReplayGain (http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_specification#Loudness_filter)
Title: Estimating Partial Loudness
Post by: Barra79 on 2012-03-23 23:15:40
Thanks for the reply!

I've created the following lookup table based on replay gain, as discussed here: http://replaygain.hydrogenaudio.org/propos...l_loudness.html (http://replaygain.hydrogenaudio.org/proposal/equal_loudness.html)
   
Code: [Select]
(freq,dbs)
(0, -50)
(20, -43)
(30, -33)
(40, -27)
(50, -23)
(60, -21)
(70, -19)
(80, -17)
(90, -16)
(100, -15)
(200, -8)
(300, -6)
(400, -6)
(500, -6)
(600, -6)
(700, -7)
(800, -8)
(900, -9.5)
(1000, -10)
(1500, -9)
(2000, -7)
(2500, -4)
(3000, -1.5)
(3700, 0)
(4000, -0.5)
(5000, -4)
(6000, -9)
(7000, -14)
(8000, -16)
(9000, -16)
(10000, -15)
(12000, -25)
(15000, -40)
(20000, -55)
(30000, -70)

So if I look up this table for 2200Hz I get around -5db. If I look it up for 440Hz I get -6dbs. How can I proceed now in order to establish how much louder the first partial is with respect to the second?

Thanks again!

Barry.
Title: Estimating Partial Loudness
Post by: Woodinville on 2012-03-24 05:24:02
Just FYI... 'Partial Loudness' refers to the contribution of loudness from one ERB or Bark. It does not mean the loudness of a harmonic.
Title: Estimating Partial Loudness
Post by: Barra79 on 2012-03-24 09:45:01
Here's my attempt at solving this problem. It reflects my current understanding with regard to the theory involved. Please advice me in respect to any mistakes you think I've made.

Please note that the two harmonics are not played simultaneously but rather one after the other.

Harmonic 1 has a maximum amplitude in the frequency domain of 1.0.
Harmonic 2 has a maximum amplitude in the frequency domain of 0.7.
So there amplitude ratio is equivalent to 3.1db.

Harmonic 1 has a frequency of 2200Hz, which gives a value of -5db in the look up table.
Harmonic 2 has a frequency of 440Hz, which gives a value of -6db in the look up table.
So that's a difference of 1db.

The total difference is then 3.1db+1db = 4.1dbs.

If we say that 10db is a doubling of loudness, then we can say that 4.1dbs is equivalent an increase of 41% in loudness

So this means that Harmonic 1 will be perceived to be approximately 40% louder than Harmonic 2.

Am I on the right track?

Thanks!