BASSLOUD query

Started by SoundMike,

SoundMike

I'm planning to use BASSLOUD in my app as I want users to be able to normalize the volumes of multiple audio files to provide a fairly even listening level across the cues that play these files. So in particular I'm looking at BASS_Loudness_GetLevel with BASS_LOUDNESS_INTEGRATED. Using a test program I've processed 3 files and the results are:

File 1: Integrated: -18.59 Range: 3.80 Peak: 0.974 TruePeak: 0.975
File 2: Integrated: -13.39 Range: 11.00 Peak: 1.016 TruePeak: 1.017
File 3: Integrated: -8.40 Range: 0.40 Peak: 1.087 TruePeak: 1.097

So the Integrated result is always a negative value. Which is the loudest? File 1 or file 3?

If I use BASS_ChannelSetAttribute to set BASS_ATTRIB_VOL for each of these streams, do you have any suggestions as to how to calculate the volumes of each to normalize the listening levels of the three files?

Ian @ un4seen

Higher is louder, so in your example, file 3 is loudest. To normalize the loudness across files, you would do this on each of them:

BASS_ChannelSetAttribute(channel, BASS_ATTRIB_VOL, pow(10, (target - integrated) / 20));

Where "integrated" is the file's BASS_LOUDNESS_INTEGRATED value and "target" is the level that you want (eg. -23 for EBU R-128 standard). There's some code for getting and normalizing the loudness in this post:

    www.un4seen.com/forum/?topic=20129.0

SoundMike

Thanks, Ian. That's very helpful.