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: libebur128 - (yet another) EBU R 128 implementation (Read 155899 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

libebur128 - (yet another) EBU R 128 implementation

Reply #100
::

Non SSE build has problems if filename includes special characters (here german Umlaut "ü").

"r128-sndfile.exe" -p true *.ogg

Code: [Select]
-1.#J LUFS, true peak: 0.00000000, [02] Stephan Schad - Die geheimnisvolle T├╝r.ogg
-1.#J LUFS, true peak: 0.00000000, [03] Stephan Schad - Die geheimnisvolle T├╝r.ogg
-19.78 LUFS, true peak: 1.01286089, [08] Stephan Schad - Nachts auf dem Nil.ogg
-19.81 LUFS, true peak: 0.98158401, [12] Stephan Schad - Narbenhand.ogg
--------------------------------------------------------------------------------

-19.79 LUFS, true peak: 1.01286089


(line 1 & 2)


Greetings ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #101
Thank you, I will fix this ASAP.

libebur128 - (yet another) EBU R 128 implementation

Reply #102
I've uploaded 0.2.3:

Library:
- Fix possible segfault in ebur128_loudness_range_multiple.

Scanners:
- Hopefully fix Windows file name problems.
- Prettier output of special float values (it is now 'nan', '-inf', 'inf' instead of '1.#J').
- Add '-p dbtp' mode that prints out true peak values in dBTP.
- Only show one significant digit.

To get "EBU mode" like output (LUFS, LRA, dBTP):
Code: [Select]
$ ./r128-sndfile -p dbtp -l ~/music/bad\ loop\ -\ Luo/*.flac

-12.8 LUFS, LRA: 14.2 LU, true peak: -0.0 dBTP, /home/jan/music/bad loop - Luo/bad loop - Luo - 01 Nio.flac
-11.1 LUFS, LRA: 8.3 LU, true peak: -0.1 dBTP, /home/jan/music/bad loop - Luo/bad loop - Luo - 02 Eri Valeire.flac
-10.1 LUFS, LRA: 11.8 LU, true peak: -0.1 dBTP, /home/jan/music/bad loop - Luo/bad loop - Luo - 03 Kauniit Ihmiset.flac
-11.3 LUFS, LRA: 11.8 LU, true peak: -0.6 dBTP, /home/jan/music/bad loop - Luo/bad loop - Luo - 04 Mmin.flac
-26.1 LUFS, LRA: 14.9 LU, true peak: -12.0 dBTP, /home/jan/music/bad loop - Luo/bad loop - Luo - 05 3b Or T.flac
-14.1 LUFS, LRA: 11.4 LU, true peak: 0.2 dBTP, /home/jan/music/bad loop - Luo/bad loop - Luo - 06 Kannas Nsp.flac
--------------------------------------------------------------------------------
-11.8 LUFS, LRA: 13.3 LU, true peak: 0.2 dBTP


Download

libebur128 - (yet another) EBU R 128 implementation

Reply #103
SSE2 Win32 compile doesn't work with command
"r128-sndfile.exe" -p true *.flac

OS is Win XP SP3 with all updates. Non-SSE build has no problems.

I haven't looked into it yet, but maybe you have a processor that does not support SSE2? Is there some kind of error message?

libebur128 - (yet another) EBU R 128 implementation

Reply #104
::

Processor supports SSE2 (click thumbnail, please).
[blockquote][/blockquote]
There's no error message. Program returns to the prompt but does nothing.
Greetings ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #105
::

"r128-sndfile.exe" -p all *.ogg

Code: [Select]
-19.9 LUFS, sample peak: 0.90242136, true peak: 0.90705091, true peak: nan dBTP, [02] Stephan Schad - Die geheimnisvolle T³r.ogg
-20.0 LUFS, sample peak: 0.91545516, true peak: 0.93392205, true peak: nan dBTP, [03] Stephan Schad - Die geheimnisvolle T³r.ogg
-19.9 LUFS, sample peak: 0.99845082, true peak: 0.99928373, true peak: nan dBTP, [08] Stephan Schad - Nachts auf dem Nil.ogg
-20.0 LUFS, sample peak: 0.93857467, true peak: 0.97145581, true peak: nan dBTP, [12] Stephan Schad - Narbenhand.ogg
--------------------------------------------------------------------------------------------------------------------------------

-20.0 LUFS, sample peak: 0.99845082, true peak: 0.99928373, true peak: nan dBTP

dBTP is always "nan".

Greetings ...

::


libebur128 - (yet another) EBU R 128 implementation

Reply #107
::

"r128-sndfile.exe" -p all *.ogg

Code: [Select]
-19.9 LUFS, sample peak: 0.90242136, true peak: 0.90705091, true peak: -0.8 dBTP, [02] Stephan Schad - Die geheimnisvolle T³r.ogg
-20.0 LUFS, sample peak: 0.91545516, true peak: 0.93392205, true peak: -0.6 dBTP, [03] Stephan Schad - Die geheimnisvolle T³r.ogg
-19.9 LUFS, sample peak: 0.99845082, true peak: 0.99928373, true peak: -0.0 dBTP, [08] Stephan Schad - Nachts auf dem Nil.ogg
-20.0 LUFS, sample peak: 0.93857467, true peak: 0.97145581, true peak: -0.3 dBTP, [12] Stephan Schad - Narbenhand.ogg
---------------------------------------------------------------------------------------------------------------------------------

-20.0 LUFS, sample peak: 0.99845082, true peak: 0.99928373, true peak: -0.0 dBTP

... working!

Just one more note:
It would be nice if you could rename either the file LICENSE or the folder license in your archive.
This leads to an error while extracting, at least for Windows OSs.


Thanks for your support and the scanner!

::

libebur128 - (yet another) EBU R 128 implementation

Reply #108
dBTP is always "nan".

Could you try with this build?

Final version 0.2.4 is now up, that fixes this and moves LICENSE to COPYING to avoid the name clash under Windows.
There is a new option "-DUSE_TAGLIB=OFF" for CMake to build without the Taglib library if you don't need ReplayGain tagging.
No other changes!

Download

libebur128 - (yet another) EBU R 128 implementation

Reply #109
::

Thanks again!

SSE2 build still not functional with SSE2 capable P4 (XP Pro) but working for
[blockquote][/blockquote](Win 7 x86).

Greetings ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #110
::

... me again.

For files with special characters tagging isn't working too. (Win XP SP3 and Win 7 SP1)
I've tried

r128-sndfile.exe -t album *.flac
and
r128-sndfile.exe -t album .\

but no success.


Greetings ...

::

 

libebur128 - (yet another) EBU R 128 implementation

Reply #111
For files with special characters tagging isn't working too. (Win XP SP3 and Win 7 SP1)

Ahh, I missed to convert the file name back to the native Windows char encoding when tagging. Will be fixed in the next version!
I don't have a clue why SSE/SSE2 does not work on your P4. The only thing I do differently for the SSE build is adding "-msse2 -mfpmath=sse" to the command line.

libebur128 - (yet another) EBU R 128 implementation

Reply #112
Hello,
thank you for this very nice tool.

As you may know, the R128 is currently in the process to try to become an ITU recommandation.
Concerning the overlapping of short-term blocks, it seems that although ebu tech 3341 mentions "at least 50% overlap" it might end being "75% overlap". I think that's why the qualis audio test set mentions this 75% overlap.
Concerning the relative gate threshold for integrated measurement, it probably will end being -10 dB instead of being -8 dB.

So, my suggestion would be to have some way implemented into the lib to set up these values (overlapping ratio and relative gate threshold) at initialization.

Once again, the library is already, as it is, a very valuable tool !

libebur128 - (yet another) EBU R 128 implementation

Reply #113
I've already changed the block overlap in the development version.
The gate can be changed with the "--gate" option, or by changing the global variable "relative_gate" (ugly hack for now).
I'll try to make proper functions for that. I'm not sure whether they should be exposed to the library user.

libebur128 - (yet another) EBU R 128 implementation

Reply #114
Thanks for your efforts. When I use the tagging option (-t album), flac files that have identical tag fields lose all but the first instance (e.g. more than one ARTIST tag retains only the first instance of ARTIST). I wouldn't think that this is "by design."

libebur128 - (yet another) EBU R 128 implementation

Reply #115
I've uploaded 0.3.0. Changelog:

library:
- implemented 75% block overlap from the upcoming BS1770 spec.
- moved sample/true peak scanning into the library (functions ebur128_sample_peak and ebur128_true_peak).

scanner:
- fixed bug where files with umlauts could not be tagged.
- use newer TagLib version to fix bug where FLAC tag fields were deleted. See here for upstream bug/fix.

I'm using a new compiler toolchain for windows builds. I hope it won't break everything.

Download

libebur128 - (yet another) EBU R 128 implementation

Reply #116
When I use the tagging option (-t album), flac files that have identical tag fields lose all but the first instance (e.g. more than one ARTIST tag retains only the first instance of ARTIST). I wouldn't think that this is "by design."
Thanks for the report  Hopefully it will work now.

libebur128 - (yet another) EBU R 128 implementation

Reply #117
::

"r128-sndfile.exe" -p true *.ogg
or
"r128-sndfile.exe" -p true "*.ogg"

Result:

File or directory *.ogg does not exist!


Wildcard support seems to be broken.


Greetings ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #118
Wildcard support seems to be broken.

I can reproduce with cmd.exe. Works correctly in bash. Does it work in powershell?

edit: Turns out Windows does globbing a bit differently than 'nix shells... fixing now.

OK, I've uploaded 0.3.1 that fixes file globbing in Windows. By default Windows does no wildcard expansion. With mingw-w64, one can link against the provided "CRT_glob.o" to enable globbing support. The previous toolchain did this by default, this one didn't.

libebur128 - (yet another) EBU R 128 implementation

Reply #119
Scanner:
- implemented true peak scanning! Those values will NOT be used for the ReplayGain tags.


::

That doesn't make sense to me. If scanning true peaks is possible why not adding an option for tagging them too? 

Greetings ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #120
Scanner:
- implemented true peak scanning! Those values will NOT be used for the ReplayGain tags.


::

That doesn't make sense to me. If scanning true peaks is possible why not adding an option for tagging them too? 

Greetings ...

::


Interoperability. The ReplayGain spec calls for its tags to be sample peaks.

libebur128 - (yet another) EBU R 128 implementation

Reply #121
Interoperability. The ReplayGain spec calls for its tags to be sample peaks.
::

It's an argument.
But using true peaks doesn't harm anything. They're always a little bit higher than sample peaks.
Other tools (R128GAIN, foo_r128scan) do behave exactly like this (even though it doesn't necessarily mean they're on the right track).

::

libebur128 - (yet another) EBU R 128 implementation

Reply #122
The difference between sample peak and true peak can be several dB. The difference is always in the safe direction. The difference is relevant only when clipping prevention kicks in. It is possibly noticeable but I agree that its not a very significant issue.

libebur128 - (yet another) EBU R 128 implementation

Reply #123
Raiden, it was reported on the foobar2000 forums that libebur128 library has some issues with denormal numbers that slow it down horribly. You might want to take a look. I have prepared a sample file that shows the performance issue.

libebur128 - (yet another) EBU R 128 implementation

Reply #124
Raiden, it was reported on the foobar2000 forums that libebur128 library has some issues with denormal numbers that slow it down horribly. You might want to take a look. I have prepared a sample file that shows the performance issue.
Thanks, will look into this.