IPB

Welcome Guest ( Log In | Register )

R128GAIN: An EBU R128 compliant loudness scanner
pbelkner
post Jan 5 2011, 19:38
Post #1





Group: Members
Posts: 412
Joined: 13-June 10
Member No.: 81467



I've just uploaded on sourceforge a first version of r128gain, an EBU R128 (http://tech.ebu.ch/loudness) compliant loudness scanner:
http://sourceforge.net/projects/r128gain/files/
  • process single files (tracks):
    • In order to just scan and analyze one file (WAV, FLAC or WV):
      CODE
      r128gain <file>
    • In order to scan, analyze and tag one file (currently only FLAC, result will be in <directory>):
      CODE
      r128gain <file> <directory>
    • In order to scan, analyze one file (WAV, WV) and encode and tag into FLAC (result will be in <directory>):
      CODE
      r128gain <file> <directory> flac
  • recursively process directories (the content of a directory is considered an album):
    • In order to just recursively scan and analyze a directory:
      CODE
      r128gain <directory>
    • In order to recursively scan, analyze and tag a directory:
      CODE
      r128gain <directory> <directory>
      r128gain <directory>/* <directory>
    • In order to recursively scan, analyze a directory and encode and tag into FLAC:
      CODE
      r128gain <directory> <directory> flac
      r128gain <directory>/* <directory> flac
Tagging is currently supported only for FLAC:
  • REPLAYGAIN_REFERENCE_LOUDNESS: always -23 LUFS (corresponding to EBU R128)
  • REPLAYGAIN_TRACK_GAIN: loudness difference to -23 LUFS in LU measured for this track
  • REPLAYGAIN_TRACK_PEAK: true peak measured at 192 kHz for this track
  • REPLAYGAIN_ALBUM_GAIN: loudness difference to -23 LUFS in LU measured for the whole album
  • REPLAYGAIN_ALBUM_PEAK: true peak measured at 192 kHz for the whole album
These tags should be honored by each Replay Gain compliant media player.
Go to the top of the page
+Quote Post
 
Start new topic
Replies
jdoering
post Jan 8 2011, 00:28
Post #2





Group: Members
Posts: 11
Joined: 6-January 11
Member No.: 87101



Please pardon the noob here; hopefully I'm keeping up with the discussion even though most of this is far outside my normal domain. I'm sure you'll all set me straight if I'm on the wrong track!

Is a two-pass approach over the input really required? While I'm sure it's a reasonable approach; from a library perspective a single pass interface seems convenient (like the common ReplayGainAnalysis C code). In googlebot's steps 1 through 6; the loudness per block is calculated implicitly during step #2 and if I'm understanding correctly only that per-block loudness is needed for all of the remaining steps.

Now in a "maximum overlap" approach as suggested by pbelkner each input sample results in a block so the block count per second is of course very high (equal to the sample rate). In this case buffering the per-block loundness in a single-pass approach sounds ridiculous compared to a two-pass algorithm.

But in the minimum 50% overlap standard laid out by Tech 3341, Annex 1; the block count per second is fixed at 5 independent of the sample rate. If I'm understanding this correctly it means that buffering the per-block loudness would "only" require 18K samples per hour (versus 172 million for near 100% overlap). If the loudness samples are stored in 64-bits that's only a little over 700 KiB an hour of buffering. While it isn't bounded; it sounds reasonable for in memory buffering this application on modern hardware (considering tyipcal PC applications at this point, not embedded devices, etc).

I looks to me like there is a good reason to stay near the 50% minimum overlap.

-Jeff
Go to the top of the page
+Quote Post
pbelkner
post Jan 8 2011, 09:32
Post #3





Group: Members
Posts: 412
Joined: 13-June 10
Member No.: 81467



QUOTE (jdoering @ Jan 8 2011, 01:28) *
But in the minimum 50% overlap standard laid out by Tech 3341, Annex 1; the block count per second is fixed at 5 independent of the sample rate. If I'm understanding this correctly it means that buffering the per-block loudness would "only" require 18K samples per hour (versus 172 million for near 100% overlap). If the loudness samples are stored in 64-bits that's only a little over 700 KiB an hour of buffering. While it isn't bounded; it sounds reasonable for in memory buffering this application on modern hardware (considering tyipcal PC applications at this point, not embedded devices, etc).

I looks to me like there is a good reason to stay near the 50% minimum overlap.

Thanks a lot for this estimation. For album gain calculation we have to buffer "loudness samples" in this order of magnitude.
Go to the top of the page
+Quote Post

Posts in this topic
- pbelkner   R128GAIN: An EBU R128 compliant loudness scanner   Jan 5 2011, 19:38
- - googlebot   Didn't try the tool, yet, but had a look at th...   Jan 5 2011, 20:13
|- - pbelkner   QUOTE (googlebot @ Jan 5 2011, 21:13) Did...   Jan 5 2011, 21:32
- - C.R.Helmrich   Wow, thank you so much for this tool! I was al...   Jan 5 2011, 23:23
|- - pbelkner   QUOTE (C.R.Helmrich @ Jan 6 2011, 00:23) ...   Jan 6 2011, 00:46
|- - C.R.Helmrich   QUOTE (pbelkner @ Jan 6 2011, 01:46) It i...   Jan 6 2011, 15:23
|- - pbelkner   QUOTE (C.R.Helmrich @ Jan 6 2011, 16:23) ...   Jan 6 2011, 16:03
|- - googlebot   QUOTE (pbelkner @ Jan 6 2011, 16:03) What...   Jan 7 2011, 21:34
|- - pbelkner   QUOTE (googlebot @ Jan 7 2011, 22:34) I a...   Jan 7 2011, 22:17
|- - googlebot   QUOTE (pbelkner @ Jan 7 2011, 22:17) It s...   Jan 7 2011, 22:35
|- - pbelkner   QUOTE (googlebot @ Jan 7 2011, 23:35) PS ...   Jan 7 2011, 23:21
|- - C.R.Helmrich   QUOTE (pbelkner @ Jan 8 2011, 00:21) Many...   Jan 8 2011, 14:29
|- - pbelkner   QUOTE (C.R.Helmrich @ Jan 8 2011, 15:29) ...   Jan 10 2011, 17:38
|- - pbelkner   QUOTE (pbelkner @ Jan 10 2011, 18:38) The...   Jan 10 2011, 18:01
|- - C.R.Helmrich   Exactly, and if you pull out the "/n" in...   Jan 10 2011, 18:20
- - Fandango   On a completely other note... What about patents? ...   Jan 6 2011, 01:53
|- - mudlord   QUOTE (Fandango @ Jan 5 2011, 18:53) On a...   Jan 6 2011, 13:22
|- - cpchan   QUOTE (mudlord @ Jan 6 2011, 08:22) The o...   Jan 6 2011, 13:44
|- - mudlord   QUOTE (cpchan @ Jan 6 2011, 07:44) QUOTE ...   Jan 6 2011, 13:46
- - Notat   Congratulations on this! I know that BS.1770 ...   Jan 6 2011, 02:37
- - mudlord   What is the license for the tool?   Jan 6 2011, 03:42
- - A_Man_Eating_Duck   i can't for the life of me get this app to jus...   Jan 6 2011, 08:14
|- - pbelkner   QUOTE (A_Man_Eating_Duck @ Jan 6 2011, 09...   Jan 6 2011, 09:34
- - pbelkner   QUOTE (Fandango @ Jan 6 2011, 02:53) On a...   Jan 6 2011, 09:19
|- - mudlord   QUOTE (pbelkner @ Jan 6 2011, 02:19) It...   Jan 6 2011, 13:20
|- - pbelkner   QUOTE (mudlord @ Jan 6 2011, 14:20) QUOTE...   Jan 6 2011, 15:26
|- - Soap   QUOTE (pbelkner @ Jan 6 2011, 09:26) Both...   Jan 6 2011, 15:53
|- - cpchan   QUOTE (Soap @ Jan 6 2011, 10:53) ffmepg i...   Jan 6 2011, 16:09
|- - pbelkner   QUOTE (Soap @ Jan 6 2011, 16:53) QUOTE (p...   Jan 6 2011, 16:13
|- - Soap   QUOTE (pbelkner @ Jan 6 2011, 10:13) QUOT...   Jan 6 2011, 16:21
|- - pbelkner   QUOTE (Soap @ Jan 6 2011, 17:21) QUOTE (p...   Jan 6 2011, 16:49
|- - saratoga   QUOTE (pbelkner @ Jan 6 2011, 10:49) QUOT...   Jan 6 2011, 18:37
|- - cpchan   QUOTE (saratoga @ Jan 6 2011, 13:37) That...   Jan 7 2011, 01:39
- - Zao   Note that "use" in mudlord's post is...   Jan 6 2011, 13:29
|- - cpchan   QUOTE (Zao @ Jan 6 2011, 08:29) If you ev...   Jan 6 2011, 13:48
|- - Zao   QUOTE (cpchan @ Jan 6 2011, 13:48) QUOTE ...   Jan 6 2011, 13:52
|- - cpchan   QUOTE (Zao @ Jan 6 2011, 08:52) If more k...   Jan 6 2011, 13:59
- - Zao   Even if the end artifact is a program, this preven...   Jan 6 2011, 13:47
|- - cpchan   QUOTE (Zao @ Jan 6 2011, 08:47) Even if t...   Jan 6 2011, 13:52
|- - Zao   QUOTE (cpchan @ Jan 6 2011, 13:52) What i...   Jan 6 2011, 13:54
- - Zao   If a developer uses a library with one of the usua...   Jan 6 2011, 14:02
|- - cpchan   QUOTE (Zao @ Jan 6 2011, 09:02) If a deve...   Jan 6 2011, 14:14
- - lvqcl   Please remember that QUOTE (pbelkner @ Jan 6 ...   Jan 6 2011, 14:10
- - Zao   You cannot always dynamically link to a library, a...   Jan 6 2011, 14:16
|- - cpchan   QUOTE (Zao @ Jan 6 2011, 09:16) You canno...   Jan 6 2011, 14:33
|- - mudlord   QUOTE (cpchan @ Jan 6 2011, 08:33) QUOTE ...   Jan 7 2011, 07:19
|- - googlebot   QUOTE (mudlord @ Jan 7 2011, 07:19)To avo...   Jan 7 2011, 10:46
|- - 2Bdecided   QUOTE (googlebot @ Jan 7 2011, 09:46) No ...   Jan 7 2011, 17:45
- - GHammer   Seven of 38 posts on software licensing. Geesh...   Jan 7 2011, 04:39
|- - mudlord   QUOTE (GHammer @ Jan 6 2011, 21:39) Seven...   Jan 7 2011, 07:14
- - romor   Bad talk. You are free to see his posts if you wan...   Jan 7 2011, 15:57
|- - Soap   forget it.   Jan 7 2011, 16:43
|- - staale   Hi, Just wanted to add that we've released ou...   Jan 7 2011, 17:08
- - googlebot   Forget this, too. Else the joke doesn't work o...   Jan 7 2011, 17:02
- - jangk   Hello, back to audio issues again. Thank you pbel...   Jan 7 2011, 17:27
|- - pbelkner   QUOTE (jangk @ Jan 7 2011, 18:27) Am I mi...   Jan 7 2011, 18:13
|- - jangk   QUOTE (pbelkner @ Jan 7 2011, 18:13) QUOT...   Jan 7 2011, 19:13
|- - pbelkner   QUOTE (jangk @ Jan 7 2011, 20:13) Anyhow,...   Jan 7 2011, 19:56
- - mudlord   QUOTE How about you program your own lib or shut u...   Jan 7 2011, 18:57
- - jdoering   Please pardon the noob here; hopefully I'm kee...   Jan 8 2011, 00:28
|- - googlebot   Completely agree! One doesn't really have ...   Jan 8 2011, 01:51
|- - pbelkner   QUOTE (jdoering @ Jan 8 2011, 01:28) But ...   Jan 8 2011, 09:32
- - Notat   I have it on good authority that the calculation c...   Jan 8 2011, 18:42
- - googlebot   A fully standard compliant single-pass outline is ...   Jan 8 2011, 19:40
- - pbelkner   v0.3 released I've just uploaded the new vers...   Jan 9 2011, 18:47
|- - googlebot   QUOTE (pbelkner @ Jan 9 2011, 18:47) CODE...   Jan 12 2011, 20:26
|- - pbelkner   QUOTE (googlebot @ Jan 12 2011, 21:26) QU...   Jan 13 2011, 10:26
- - googlebot   Works perfectly, great job! Even for multichan...   Jan 10 2011, 09:58
- - googlebot   Just out of curiosity, where does that 0.4 come fr...   Jan 10 2011, 18:35
|- - jdoering   QUOTE (googlebot @ Jan 10 2011, 09:35) Ju...   Jan 10 2011, 19:27
- - googlebot   Duh. My bad!   Jan 10 2011, 21:40
- - Fandango   I have a proposal. New standard tag fields: EBU_...   Jan 11 2011, 23:14
|- - Notat   QUOTE (Fandango @ Jan 11 2011, 15:14) Wit...   Jan 12 2011, 04:11
|- - Fandango   QUOTE (Notat @ Jan 12 2011, 04:11) QUOTE ...   Jan 13 2011, 16:21
|- - pbelkner   QUOTE (Fandango @ Jan 13 2011, 17:21) But...   Jan 13 2011, 17:01
||- - 2Bdecided   QUOTE (pbelkner @ Jan 13 2011, 16:01) EBU...   Jan 13 2011, 17:24
|- - 2Bdecided   QUOTE (Fandango @ Jan 13 2011, 15:21) Mos...   Jan 13 2011, 17:20
- - Fandango   PS: I'd say that using GAIN in your prefix is ...   Jan 12 2011, 02:02
- - jdoering   I had been hoping that the written tags were being...   Jan 12 2011, 06:40
|- - pbelkner   QUOTE (jdoering @ Jan 12 2011, 07:40) I h...   Jan 12 2011, 10:21
|- - jdoering   QUOTE (pbelkner @ Jan 12 2011, 01:21) QUO...   Jan 12 2011, 21:24
|- - pbelkner   QUOTE (jdoering @ Jan 12 2011, 22:24) I t...   Jan 13 2011, 11:01
- - jdoering   Just compared r128gain output versus ReplayGain fo...   Jan 12 2011, 10:18
- - googlebot   I think you both have a valid point. I also think...   Jan 12 2011, 12:58
|- - pbelkner   QUOTE (googlebot @ Jan 12 2011, 13:58) =...   Jan 12 2011, 13:14
||- - C.R.Helmrich   QUOTE (pbelkner @ Jan 12 2011, 14:14) QUO...   Jan 12 2011, 18:27
|||- - Notat   QUOTE (C.R.Helmrich @ Jan 12 2011, 10:27)...   Jan 13 2011, 02:57
|||- - jdoering   QUOTE (Notat @ Jan 12 2011, 17:57) QUOTE ...   Jan 13 2011, 06:21
|||- - C.R.Helmrich   QUOTE (jdoering @ Jan 13 2011, 07:21) I...   Jan 13 2011, 10:25
|||- - pbelkner   QUOTE (C.R.Helmrich @ Jan 13 2011, 11:25)...   Jan 13 2011, 10:37
||- - 2Bdecided   QUOTE (pbelkner @ Jan 12 2011, 12:14) QUO...   Jan 13 2011, 11:23
||- - Notat   QUOTE (2Bdecided @ Jan 13 2011, 03:23) Yo...   Jan 13 2011, 15:41
|- - pbelkner   QUOTE (googlebot @ Jan 12 2011, 13:58) PS...   Jan 12 2011, 17:07
- - googlebot   How large are the expected differences? Is there a...   Jan 12 2011, 18:46
- - C.R.Helmrich   True. I guess for the averaging we should leave ou...   Jan 12 2011, 19:00
- - Raiden   What is so special about pink noise? How does pink...   Jan 13 2011, 11:44
- - googlebot   Pink noise has equal energy over all octaves. It...   Jan 13 2011, 12:02
- - jangk   Thank you Notat for the link to AES "Loudness...   Jan 13 2011, 13:57
- - benski   I'm with David. I think we should verify the ...   Jan 13 2011, 17:27
- - Fandango   So if the old tags are used, how do I know whether...   Jan 13 2011, 18:22
6 Pages V   1 2 3 > » 


Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 29th August 2014 - 19:30