-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Scanning mono MP3 files does not yield correct results. #125
Comments
I came here to say the same thing. Great tool! I think this is due to how the algorithm measures mono signals. There is a 3 LU difference between mono measurements and stereo measurements. Since typically mono signals are played back as stereo (dual mono) signals a -3 LU offset needs to be applied to mono files. See the "Multi-channel reproduction of single-channel content" section of this AES doc on loudness: I think the solution is to subtract 3.01 dB for mono files, per Figure 3 in the doc. Or convert the mono audio to stereo before scanning, since playback will be in stereo, and scan the stereo version which will produce the correct offset measurement. |
That is an interesting case. Thanks for sharing. Out of curiosity, I modified the code so that it force remixes all audio to 2 channels before sending to the loudness meter. Here is the existing code (v3.5.2, no remixing), using the file that @DrZAjV provided:
And here is the experimental code which remixes files to 2 channels:
So, we see the 3 LU shift in the peak value, but not loudness. I will have to do some more research later to see what should be the correct behavior in this particular case. |
So here are some additional data points. It's strange that in your testing the True Peak measurement is changing by 3 dB instead of the Integrated Loudness. I measured the original mono sample file in three apps that do loudness measurement and support true peak measurement: Ocen Audio, Youlean Loudness Meter, and iZotope RX 9. And they all measure the True Peak to be -8.89 dB, same as your experimental code, but not the same as the existing code. Converting the original mono MP3 into a stereo AIFF file and measuring it again with the three tools, the true peak measurement is unchanged, but the integrated loudness is 3 dB higher for the stereo version, which is what the AES and EBU docs say to expect. Screenshots and sample files: |
Thank you to @ben-nason and @complexlogic for sharing the information. Below is some information I've recently come across, which I hope will be useful for the professionals here: The result is similar to rsgain, as shown in the image below: ITU-R BS.1770-3 Loudness: -29.25 LUFS. It is said that: Default mode of operation in fb2k is to play audio with the exact channel mapping it contains. Nothing is upmixed unless the user asks for it. |
Based on the previous content, If a mono file is intended for playback on a stereo system, its EBU R128 measurement will be perceptually incorrect.
https://ffmpeg.org/ffmpeg-filters.html#loudnorm @complexlogic Could the author consider adding this dual_mono option to implement the corresponding functionality? |
Thanks for the information. I looked at the source code for FFmpeg's The same option exists in rsgain's loudness meter (libebur128). So I just added an option in a new feature branch that can be invoked with
You can download a Windows development build here. Please give it a test. |
I tested some files right away, and rsgain worked very well. The problem was resolved effectively. |
Summary of usage scenarios based on the above theory:
(Please correct me if there are any errors.) |
@DrZAjV That seems right. I'm going to merge the feature into |
First, I want to thank the developer for creating this tool, it's very useful.

I noticed during use that the results obtained for mono MP3 files differ from those produced by other tools.
The scan results with fb2k_with true-peak scan plugin:
The scan results with EZ CD Audio Converter:

The scan results with rsgain:

As you can see, the results from fb2k and EZ CD Audio Converter are the same, with a loudness of -26.21 LUFS.
However, the result from rsgain differs by about -3 LUFS compared to the other two.
1ch.zip
The text was updated successfully, but these errors were encountered: