Skip to main content

Topic: libebur128 - (yet another) EBU R 128 implementation (Read 106655 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • bennie
  • [*]
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.

  • Surfi
  • [*][*][*]
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, ...

::

  • audionuma
  • [*]
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,
  • Last Edit: 20 October, 2012, 02:19:23 AM by audionuma

  • Dandruff
  • [*][*][*][*][*]
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)?
  • Last Edit: 11 November, 2012, 01:04:26 PM by Dandruff

  • nu774
  • [*][*][*][*][*]
  • Developer
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).
[ Specified attachment is not available ]

  • nu774
  • [*][*][*][*][*]
  • Developer
libebur128 - (yet another) EBU R 128 implementation
Reply #180
Updated patch: [ Specified attachment is not available ]
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)

  • Surfi
  • [*][*][*]
libebur128 - (yet another) EBU R 128 implementation
Reply #181
::

Thank you very much for the windows binary! 


Greetings, ...

::

  • Surfi
  • [*][*][*]
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, ...

::

  • nu774
  • [*][*][*][*][*]
  • Developer
libebur128 - (yet another) EBU R 128 implementation
Reply #183
Hmm, I will look into it. Thanks for reporting.

  • nu774
  • [*][*][*][*][*]
  • Developer
libebur128 - (yet another) EBU R 128 implementation
Reply #184
Ok, I think ogg/vorbis problem was fixed. Please re-download binary at https://sites.google.com/site/qaacpage/cabinet
This time, I merged modifications to libebur128 project into one file (+ patch for filetree).
[ Specified attachment is not available ]

  • Surfi
  • [*][*][*]
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, ...

::

  • nu774
  • [*][*][*][*][*]
  • Developer
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

  • Surfi
  • [*][*][*]
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).

::

  • nu774
  • [*][*][*][*][*]
  • Developer
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.

  • Surfi
  • [*][*][*]
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!

::



  • nu774
  • [*][*][*][*][*]
  • Developer
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).