Log in

View Full Version : BeHappy: "normalize to 100%" does nothing


djloewen
8th October 2009, 19:58
I've just started using BeSweet, and I noticed that the ouptut files are significantly quieter that what I used to get with BeSweet. I looked at one example specifically, here are my findings.

-I test-converted a 5.1 AC3 from a DVD to 128kbps cbr stereo mp3.
-the BeSweet command line included -ota(-hybridgain). According to the logfile, and my understanding of this switch, it pre-applied 10dB gain, subtracted dialnorm (in this case, -4dB), and then added postgain - in this case, 6dB. Total gain (if my understanding is correct), 12dB.
-I exported four files with BeHappy, using NicAc3Source. The first three were all "normalized to 100%" - one was dplII+lfe, one was dplII, one was "stereo". The fourth file was also "stereo", but not normalized.
-I then loaded the five mp3s (4 BeHappy + 1 BeSweet) into an audio editor. The "loudness" of the BeHappy files were all the same - whether normalized or not. when I turned the BeSweet file down to -12dB, they all sounded the same.

So, what's going on here? Why isn't it being normalized? It seems very unlikely that it's already using all the available headroom...

tebasuna51
9th October 2009, 01:31
...
-the BeSweet command line included -ota(-hybridgain). According to the logfile, and my understanding of this switch, it pre-applied 10dB gain, subtracted dialnorm (in this case, -4dB), and then added postgain - in this case, 6dB. Total gain (if my understanding is correct), 12dB.
Sorry, but I can't understand.
Please put the full BeSweet command line.

...
The "loudness" of the BeHappy files were all the same - whether normalized or not.
What is "loudness"? Please put Max Peak Value and RMS power.

djloewen
11th October 2009, 00:54
Thanks for the reply. Here's the BeSweet command line:

Besweet.exe -core( -input ***.ac3 -output ***.mp3 -logfile ***.log) -ota( -hybridgain ) -azid ( -c normal ) -lame( -h --cbr -b 128 )

By "loudness" I am referring to the visible shape/thickness of the waveform, as well as the perceived playback volume. What method/editor do you recommend to find Max Peak Value and RMS power?

tebasuna51
11th October 2009, 02:52
When you put -azid( -c normal ) you say to azid decoder aply the Dynamic Range Compression (DRC) to lower the high volume values and amplify the low volume (compress the volume range) after you normalize with -ota( -hybridgain ) and the overall volume is amplified. You lose quality and gain volume.

You can configure the NicAc3Source in BeHappy to aply also the DRC and you can obtain the same volume than with BeSweet.

djloewen
15th October 2009, 16:05
:) I had forgotten about that compression bit. My aim is to not compress at all, but still to maximize the volume to use all available headroom (which, I believe, is what "normalize to 100%" does).

I tried the same BeSweet command line without the -azid parameter, and it still added 3dB post gain (which I believe still brings the total to +9: +10 pre, -4 dialnorm, +3 post). I would think that if this headroom weren't available to begin with, the audio would be clipping like mad, so I'm still confused as to why "normalize to 100%" doesn't do anything.

Generally, when you encode a DVD AC3 track with BeHappy, is the headroom already all used up? Does "normalize to 100%" usually have no effect on DVD audio? If so, how does hybridgain add so much gain with little/no clipping?

I'm currently using Pro Tools to look at the audio. As it doesn't work with mp3 files, it first converts them to (24bit 48khz) WAV. I believe I can find max peak value by playing the tracks back start to finish, but I'm not sure about RMS power. If those numbers would help, please give me some guidance on how to get them :).

tebasuna51
16th October 2009, 01:29
I make a test with an ac3 5.1 sample recoded to mp3 with BeHappy and with BeSweet.

1) Open in BeHappy with NicAc3Source (without DRC)
Downmix with DPL II
Normalize
Encoded to mp3 with Lame -b 128

2) With BeSweet:
BeSweet.exe -core( -input 6a321.ac3 -output 6a321_1.mp3 )
-azid( -s dplii ) -ota( -hybridgain ) -lame( -b 128 )

Decoded both mp3 and compared with Wavosaur statistics:
Wavosaur statistics and informations
------------------------------------
Statistics: 6a321_1.wav (BeSweet) 6a321.wav BeHappy
--------------------- -------------------
RMS power L: 9.00% (-20.92 dB) 9.86% (-20.12 dB)
RMS power R: 8.02% (-21.91 dB) 8.85% (-21.06 dB)
Average value L: -0.00% (-93.86 dB) -0.01% (-82.28 dB)
Average value R: 0.00% (-109.26 dB) -0.00% (-98.21 dB)
Min value L: -84.90% (-1.42 dB) -100.00% (0.00 dB)
Min value R: -87.92% (-1.12 dB) -96.80% (-0.28 dB)
Max value L: 92.50% (-0.68 dB) 100.00% (0.00 dB)
Max value R: 87.25% (-1.18 dB) 91.68% (-0.75 dB)

Like you can see the recoded with BeHappy is near 1 dB more loud.

djloewen
16th October 2009, 03:37
I tried opening an mp3 directly in Wavosaur, and got a "Memory allocation error". A quick search suggests that Wavosaur can't handle large mp3s, so I guess I will need to convert with some other program.

What program did you use to decode to WAV? and, do you decode to 24bit 48khz? I will try the same test and post my results.

tebasuna51
16th October 2009, 11:11
Yes, wavosaur can't manage big files.

Other free tool to do statistics is the SoundOut AviSynth plugin (http://forum.doom9.org/showthread.php?t=120025) (you need AviSynth installed). To decode the mp3 you can use NicAudio.dll.

Write this avs file:

NicMPG123Source("x:\your_path\your_file.mp3")
SoundOut()

Open it with VirtualDub (or other) and click on 'Analyze Sound'

djloewen
16th October 2009, 15:43
I've found my problem.

"Normalize" was higher up on the DSP list than "Downmix" by default, and I hadn't realized that it was up to me to choose the order:

Normalize->Downmix:
Ch 0] Maximum:-7.34dB. Average:-41.55dB. RMS:-36.35dB. ReplayGain:14.44dB
[Ch 1] Maximum:-7.99dB. Average:-41.67dB. RMS:-36.53dB. ReplayGain:14.56dB
[All channels] Maximum:-7.34dB. Average:-41.61dB. RMS:-36.44dB

Downmix->Normalize:
[Ch 0] Maximum:-0.24dB. Average:-34.30dB. RMS:-29.10dB. ReplayGain:7.17dB
[Ch 1] Maximum:-0.34dB. Average:-34.42dB. RMS:-29.28dB. ReplayGain:7.29dB
[All channels] Maximum:-0.24dB. Average:-34.36dB. RMS:-29.19dB

BeSweet (no compression):
[Ch 0] Maximum:-0.43dB. Average:-35.48dB. RMS:-30.26dB. ReplayGain:8.45dB
[Ch 1] Maximum:-1.87dB. Average:-35.62dB. RMS:-30.52dB. ReplayGain:8.54dB
[All channels] Maximum:-0.43dB. Average:-35.55dB. RMS:-30.39dB

1dB louder than BeSweet, just as you found. I formally suggest that "Normalize" appear, by default, as the last item on the DSP list. Anyway thank you very much for you patience and help!

tebasuna51
16th October 2009, 19:49
Yes, the "Normalize" must be the last but one, because the last must be the "Convert Sample To..." when needed.
The order is saved in BeHappy.State file.
Maybe in next release we add a BeHappy.State file with the order suggested.

bar72
5th January 2025, 01:12
Yes, the "Normalize" must be the last but one, because the last must be the "Convert Sample To..." when needed.
The order is saved in BeHappy.State file.
Maybe in next release we add a BeHappy.State file with the order suggested.

Many thanks for that solution. I was also having similar issue tonight but all sorted now having the normalise option as second last option in the state file.