jiixyj / libebur128

A library implementing the EBU R128 loudness standard.
MIT License
395 stars 76 forks source link

Max. momentary erratic results with EBU test files(?) #93

Closed nofishonfriday closed 5 years ago

nofishonfriday commented 5 years ago

Hello,

first a bit of background: I'm a contributor to the SWS Extension (Github repo), an extension for the REAPER DAW. which implements offline Loudness scanning using libebur128.

I've scanned the files from the EBU loudness test set with our Loudness scanner and they all pass, except for test set 13. In tech3341 it specifies for these files:

Max M = −23.0 ±0.1 LUFS, for each segment

However with our current implementation we get the following results:

loudness for libur128

I'm now trying to determine if there's a bug in our implementation (we use a modified version of libebur128) or if this may be an issue with the library itself.

Thank you.

jiixyj commented 5 years ago

Huh, this is weird. We have some tests for test set 13, and they run successfully: https://github.com/jiixyj/libebur128/blob/c13deee58f47427c9506f1b0b259c16f909edab9/test/tests.c#L367

Maybe this helps tracking down the problem.

nofishonfriday commented 5 years ago

Ah missed these tests, thanks for pointing me to it. So the issue must be on our end, that's at least good to know.

Closing this, thanks again.

audionuma commented 5 years ago

See https://github.com/jiixyj/libebur128/blob/c13deee58f47427c9506f1b0b259c16f909edab9/test/tests.c#L172.

The EBU test files for max momentary cannot produce expected result with a 75 % (100 ms) overlap when measuring momentary blocks. In some of the test files, the audio blocks of length 400 ms are offseted to multiple of 50 ms, which means you never get a full 400 ms block of audio measured, therefore an underestimation of the max momentary.

This has to be taken into account when implementing max momentary measure.