Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: MPC replaygain data; how to covert peak from dB to float? (Read 9886 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

MPC replaygain data; how to covert peak from dB to float?

Hi all,

I'm seeking some help with replaygain and musepack files...

MPC stores the peak level as a 16 bit integer representing the loudness. How do I convert this value to a 32 bit float? e.g. A peak value of 23225 (read from the .mpc file) shows as a peak of 1.048776 in foobar; what's the calculation to go from one to the other?

I've read the specs, but it might as well be in another language!
http://trac.musepack.net/trac/wiki/SV8Spec...eplaygainPacket
Quote
Replay gain finds that this title has a loudness of 78.56 dB. It will be encoded as 78.56 * 256 ~ 20111 = 0x4E8

For float output (range [-1 1]), the max is 0.96. It will be encoded as 20 * log10(0.96 * 215) * 256 ~ 23029 = 0x59F5 (for peak values it is suggested to round to nearest higher integer)

MPC replaygain data; how to covert peak from dB to float?

Reply #1
e.g. A peak value of 23225 (read from the .mpc file) shows as a peak of 1.048776 in foobar; what's the calculation to go from one to the other?


20 * log10(1.048776 * 2^15) * 256 = 23225

10^(23225/(20*256)) / 2^15 = 1,04877633098761506451

with ^ the power operator, so 2^15 = 32768

MPC replaygain data; how to covert peak from dB to float?

Reply #2
Awesome! Thank you for the help.