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 155866 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

libebur128 - (yet another) EBU R 128 implementation

Reply #175
Hi chi,

I think it is different when compared to ITU-R BS.1771-1. As stated on page 13 of the document,
Quote
momentary loudness is generated by calculating the ungated loudness signal, with a one sample integration period, as measured by Recommendation ITU-R BS.1770 according to equation (2), and passing it through the 1st order filter shown in Fig. 4 using appropriate filter coefficients to achieve a 400 ms time-constant.


It's not clear to me if this is a third filter to be applied to the original signal after the 2-stage pre-filtering described in ITU-R BS.1770, or if momentary loudness metering according to ITU-R BS.1771 involves only this one first order filter.

P.S. I did not now how to rephrase this (English is not my native tongue), hence the quote.

libebur128 - (yet another) EBU R 128 implementation

Reply #176
::

One year no updated binaries though Raiden said he'd try to deliver some. I wonder if someone might be willing to compile the sources and provide binaries for Windows regularly? This tool would fit nicely to RareWares' "Others" section, I think.


Thanks in advance, ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #177
Hello,
I have made a Mac OS X build which uses libebur128 for measues and CoreAudio for file parsing :
https://github.com/audionuma/r128x/downloads
If it can help,

libebur128 - (yet another) EBU R 128 implementation

Reply #178
Scanner:

- add hidden --tag-tp flag for true peak ReplayGain tagging.


How can we enable this in foobar2000 (version 1.1.16)?

libebur128 - (yet another) EBU R 128 implementation

Reply #179
Created some patches based on the latest commit of the github:
Code: [Select]
commit 1c0e8dac8d1a2f1ce07bee469d26ccfbb2688247
Author: Jan Kokemüller <jan.kokemueller@gmail.com>
Date:   Tue Aug 14 01:02:58 2012 +0200
  • ffmpeg.patch is the fix for the recent ffmpeg/libav API changes (I tested only on libav). Removed calls to deprecated or officially removed functions, and supports planar (non-interleaved) sample formats.
  • id3v2_version.patch tries to preserve id3v2 version (3 or 4) of MP3 files (the official one was always rewriting to id3v2.4).
  • fflush.patch adds some calls to fflush(), which is required when running win32 native binary in the cygwin environment not to mess the console messages (since cygwin tty and win32 native executable is connected via pipe,  stderr doesn't automatically flush the output).
[attachment=7213:libebur1...ches.tar.gz]

libebur128 - (yet another) EBU R 128 implementation

Reply #180
Updated patch: [attachment=7216:libebur1...ches.tar.gz]
This patch addresses the following:
  • Take care of the cases when AVFrame::channel_layout is equal to 0 (this fix is for my previous edit).
  • Use WriteConsoleW() only when stdout is actually connected to the console
Win32 binary here:
https://sites.google.com/site/qaacpage/cabinet
(WARNING: No GUI scanner droplets, only ffmpeg input plugin, tons of DLLs)

libebur128 - (yet another) EBU R 128 implementation

Reply #181
::

Thank you very much for the windows binary! 


Greetings, ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #182
::

loudness.exe scan -p sample *.ogg

does not work (expected all files in that folder to be scanned as an album).


Output:

Code: [Select]
  Loudness, Sample peak
-inf LUFS,    0.000000, [01] Phil Carmen - One Foot In Heaven.ogg
-inf LUFS,    0.000000, [02] Phil Carmen - Baby It's A Long Way.ogg
-inf LUFS,    0.000000, [03] Phil Carmen - Prisoner Of Her Soul.ogg
-inf LUFS,    0.000000, [04] Phil Carmen - Skylines.ogg
-inf LUFS,    0.000000, [05] Phil Carmen - Hypertension.ogg
-inf LUFS,    0.000000, [06] Phil Carmen - Feeling Alright.ogg
-inf LUFS,    0.000000, [07] Phil Carmen - We're On The Front Line.ogg
-inf LUFS,    0.000000, [08] Phil Carmen - Sailing Out To You.ogg
-inf LUFS,    0.000000, [09] Phil Carmen - Rocking In Love.ogg
-inf LUFS,    0.000000, [10] Phil Carmen - Peter.ogg
-inf LUFS,    0.000000, [11] Phil Carmen - One Foot In Heaven (Single Version).ogg
-------------------------------------------------------------------------------
-inf LUFS,    0.000000


OS: WinXP SP3


Greetings, ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #183
Hmm, I will look into it. Thanks for reporting.


libebur128 - (yet another) EBU R 128 implementation

Reply #185
Ok, I think ogg/vorbis problem was fixed.
::

It is, indeed.
Tested your compile with the latest EBU test material.
File "seq-3341-6-5channels-16bit.wav" failed. There seems to be a solution here.


Greetings, ...

::

libebur128 - (yet another) EBU R 128 implementation

Reply #186
As far as I understand, it is the fault of the test sample data.
"seq-3341-6-5channels-16bit.wav" is using WAVEFORMATEX (not WAVEFORMATEXTENSIBLE), which is strictly speaking not allowed to have more than 2 channels. WAVEFORMATEX structure doesn't have dwChannelMask field, therefore channel layout is undefined.
http://msdn.microsoft.com/ja-jp/library/wi...3(v=vs.85).aspx

If you somehow convert it to WAVEFORMATEXTENSIBLE with correct channel mask for FL FR FC BL BR (0x37), you will get correct result from loudness.exe.
You can use, say, audacity for that purpose. If you have qaac or refalac, you can simply do the following:
Code: [Select]
refalac -D --chanmask 0x37 seq-3341-6-5channels-16bit.wav -o output.wav

Nonetheless, I updated loudness.exe to warn when channel mask is unspecified AND number of channels > 2. Binary is updated.
Also I made fork repo at https://github.com/nu774/libebur128

libebur128 - (yet another) EBU R 128 implementation

Reply #187
::

OK, but

Output of v. 0.4.0 (the last one Raiden compiled):

-20.0,0.10073853,1kHz Sine -20 LUFS-16bit.wav
-26.0,0.05050659,1kHz Sine -26 LUFS-16bit.wav
-40.0,0.01025391,1kHz Sine -40 LUFS-16bit.wav
-23.0,0.07131958,seq-3341-1-16bit.wav
-33.0,0.02304077,seq-3341-2-16bit.wav
-23.0,0.07080078,seq-3341-3-16bit-v02.wav
-23.0,0.07080078,seq-3341-4-16bit-v02.wav
-23.0,0.10000610,seq-3341-5-16bit-v02.wav
-23.0,0.06307983,seq-3341-6-5channels-16bit.wav
-23.0,0.06307983,seq-3341-6-6channels-WAVEEX-16bit.wav
-23.0,0.35833156,seq-3341-7_seq-3342-5-24bit.wav
-23.0,0.73781979,seq-3341-2011-8_seq-3342-6-24bit-v02.wav
-22.6,0.10000610,seq-3342-1-16bit.wav
-16.8,0.17782593,seq-3342-2-16bit.wav
-20.0,0.10000610,seq-3342-3-16bit.wav
-24.5,0.10000610,seq-3342-4-16bit.wav

so it once worked 


pbelkner's r128gain calculates the same result here (list #2).

::

libebur128 - (yet another) EBU R 128 implementation

Reply #188
Hmm, then he might have changed default channel layout at some point.
But I don't think specific problem in the test sample should be specially taken care of by application side.

libebur128 - (yet another) EBU R 128 implementation

Reply #189
But I don't think specific problem in the test sample should be specially taken care of by application side.
::

I agree, thanks again!

::



libebur128 - (yet another) EBU R 128 implementation

Reply #190
Added input/tagging support of opus, ape, tak, and (hopefully) fixed build issue with older ffmpeg/taglib.
(Opus support requires libopusfile. Tak decoding requires bloody new reverse engineered ffmpeg/libav tak decoder).