Welcome Guest ( Log In | Register )

"MP3Gain: How can it be possible?", It 's indicated that the gain adjustments are lossless
post Aug 1 2012, 00:35
Post #1

Group: Members
Posts: 17
Joined: 19-December 10
Member No.: 86635

So I've been thinking of trying to write a similar program from scratch and there's one main thing that I don't even understand how it's possible, yet alone done. So as is said, the process MP3Gain uses is lossless. Thinking about it, the only way MP3Gain could work where any player would play back the songs with whatever the target volume was would be if the change is present in the waveform. After MP3Gain is applied, if it weren't obvious from the beginning, in any audio editing software, the gain reduction is clearly visible. I could somewhat understand how the process can be reversed with added value, even if the waveform clips, as the information could still somehow be stored (more easily than the other way around). On the other hand, when taken away, don't you permanently lose the dB that you took from the threshold? As an example, if a song starts with some 6 decibel ambient noise and you reduce the song by 6dB, wouldn't that intro just completely disappear? And if the change is undone, wouldn't you not get any of the data back (unless it's stored) and just make the existing data 6dB louder? If that's the case, it isn't really undoing the changes; it's really just adding the difference in value back between the indicated ReplayGain value and what it is now.

Sorry this was kinda long-winded but the last thing though I'd also like to ask about is clipping. If a track's peak values are clipping by default, reducing the loudness now would be too late, wouldn't it? Wouldn't it be clipping no matter what at this point, contrary to what is indicated? The peaks would be chopped off either way since the structure of the waveform is no longer saved after being finalized. And also, the maximized volume indications don't make sense (has to be turned on in the options). For example, I have a file which ReplayGain indicates peaks at about 1.05 (16-bit = 100.8dB) and yet it's marked that only a 1.5dB reduction would be necessary to get it maximized (the loudest point before clipping - 96dB). Is there something I'm missing?

Thanks guys! Answers to these would be extremely helpful.

PS- A lot of the things here indicate to me that the values, whether over or under, remain as part of the data in the container but just doesn't play back, or rather, clips since it's within the 16-bit parameter.
Go to the top of the page
+Quote Post
Start new topic
post Aug 2 2012, 13:03
Post #2

Group: Members
Posts: 1707
Joined: 24-June 02
From: Catalunya(Spain)
Member No.: 2383

@Typhoon859: You should read again your posts, and think again what you asked, what you knew and what you needed to know.

The first question is on the topic's name: "How can mp3gain be lossless?". That question is reasonable, from a user point of view, or someone more interested in the final output itself, or wondering how the word "lossless" can be used next to a lossy codec. But those weren't your reasons.

You then stated that you are interested in writing a program that does a similar thing (you don't say it's about mp3, but then you wouldn't talk about mp3gain, you should have talked about replaygain), and the followup from all your replies is that you have very little knowledge about how mp3 is encoded and how it is stored (its bitstream).
You also know some audio terms, but you also show incorrect usage of some of them.

Just some corrections on your assumptions:

16bit (integer) PCM: Audio range from -32768 to 32767 (0 is the middle). peaks are -32768 and 32767 because no value can be lower/higher than this. If a value has to be lower/higher, it uses -32768 or 32767 and that is what is called digital clipping.
The difference between the highest peak (-32768) and the lowest value (-1) determines the Signal to Noise Ratio (SNR). Since 0dBFS (deciBell Full Scale) is used as a reference for peak, the lowest value is -96dBFS . So no, 32768 is not 96dB.

24bit (integer) PCM: Audio range from -8388608 to 8388607 (0 is the middle). Same as above about clipping. lowest value is -144dBFS

32bit (float) PCM: Audio range from 0.0 to 1.0 (0.5 is the middle). peaks are +/-3.4028234 10^38. The smallest value is +/-1.18 10^−38 (or +/-1.4 10^−45 using denormalized numbers). Since the audio range is much smaller than the peak, digital clipping is almost impossible. Difference from max value to min value is: -758.56dBFS (if i've calculated it correctly), but the SNR also "floats", and so is much smaller (similar to 24bit integer PCM, due to the way 32bit float is stored).

These forums are a place where knowledge is shared and sometimes even born. We have codec developers and people that assist and give international conferences as members. The rules have always been made in favour of making scientific and repeatable tests instead of oppinions and beliefs.

What these forums are not is a help place or a support center of any sort. Individual questions and problems are answered, but usually when they are concrete, and answers are well known by members or there is interest in documenting the question in some way.
You should not expect to be taught on a subject here.
Go to the top of the page
+Quote Post
post Aug 2 2012, 17:38
Post #3

Group: Members
Posts: 1707
Joined: 24-June 02
From: Catalunya(Spain)
Member No.: 2383

QUOTE ([JAZ] @ Aug 2 2012, 14:03) *

32bit (float) PCM: Audio range from 0.0 to 1.0 (0.5 is the middle).

Ouch! what was i thinking about? Audio range is -1.0 to 1.0 and 0.0 is the middle. The rest still applies.
Go to the top of the page
+Quote Post
post Aug 3 2012, 02:52
Post #4

Group: Members
Posts: 46
Joined: 10-August 03
Member No.: 8294

QUOTE ([JAZ] @ Aug 3 2012, 03:38) *

QUOTE ([JAZ] @ Aug 2 2012, 14:03) *

32bit (float) PCM: Audio range from 0.0 to 1.0 (0.5 is the middle).

Ouch! what was i thinking about? Audio range is -1.0 to 1.0 and 0.0 is the middle. The rest still applies.

With one possible exception?

AFAIK the difference between 0dBFS and the min value is about 750dB, AND another ~750dB for the max.

Some years ago I artificially created a 32 bit float file with a 1500dB dynamic range. Not much practical use though...

Go to the top of the page
+Quote Post

Posts in this topic
- Typhoon859   "MP3Gain: How can it be possible?"   Aug 1 2012, 00:35
- - greynol   You appear to assume that mp3 data is 16-bit integ...   Aug 1 2012, 00:50
|- - 2Bdecided   QUOTE (greynol @ Aug 1 2012, 00:50) I rec...   Aug 1 2012, 13:59
- - saratoga   QUOTE (Typhoon859 @ Jul 31 2012, 19:35) I...   Aug 1 2012, 02:25
|- - greynol   Since we're not dealing with power, a ~0.2dB i...   Aug 1 2012, 03:30
|- - saratoga   QUOTE (greynol @ Jul 31 2012, 22:30) Sinc...   Aug 1 2012, 15:01
- - Typhoon859   Right, so, there evidently seems to be a lot I don...   Aug 1 2012, 13:24
|- - db1989   QUOTE (Typhoon859 @ Aug 1 2012, 13:24) In...   Aug 1 2012, 14:24
|- - saratoga   QUOTE (Typhoon859 @ Aug 1 2012, 08:24) Re...   Aug 1 2012, 16:06
- - pdq   I seem to recall that the dynamic range of the mp3...   Aug 1 2012, 14:16
- - mjb2006   QUOTE (Typhoon859 @ Jul 31 2012, 17:35) i...   Aug 1 2012, 19:31
- - Typhoon859   First of all, I'd just like to say that many o...   Aug 2 2012, 06:40
|- - saratoga   QUOTE (Typhoon859 @ Aug 2 2012, 01:40) QU...   Aug 2 2012, 16:05
- - Typhoon859   QUOTE (mjb2006 @ Aug 1 2012, 14:31) If yo...   Aug 2 2012, 06:45
|- - 2Bdecided   QUOTE (Typhoon859 @ Aug 2 2012, 06:45) Wh...   Aug 2 2012, 11:53
- - halb27   A short explanation of mp3 technology in the entir...   Aug 2 2012, 10:20
- - db1989   QUOTE (Typhoon859 @ Aug 2 2012, 06:40) QU...   Aug 2 2012, 11:05
- - [JAZ]   @Typhoon859: You should read again your posts, and...   Aug 2 2012, 13:03
|- - [JAZ]   QUOTE ([JAZ] @ Aug 2 2012, 14:03)...   Aug 2 2012, 17:38
|- - alanofoz   QUOTE ([JAZ] @ Aug 3 2012, 03:38)...   Aug 3 2012, 02:52
- - greynol   You're saying full scale is not maximum amplit...   Aug 3 2012, 04:51
|- - alanofoz   QUOTE (greynol @ Aug 3 2012, 14:51) You...   Aug 3 2012, 23:50
|- - [JAZ]   QUOTE (alanofoz @ Aug 4 2012, 00:50) QUOT...   Aug 4 2012, 10:55
- - [JAZ]   The signal to noise ratio is the difference betwee...   Aug 3 2012, 09:54
- - 2Bdecided   I think we scared him off. Interesting how, on a ...   Aug 3 2012, 09:58
|- - skamp   QUOTE (2Bdecided @ Aug 3 2012, 10:58) Int...   Aug 3 2012, 10:11
|- - 2Bdecided   QUOTE (skamp @ Aug 3 2012, 10:11) QUOTE (...   Aug 3 2012, 10:51
|- - Destroid   QUOTE (2Bdecided @ Aug 3 2012, 10:51) Ser...   Aug 3 2012, 11:17
|- - bandpass   QUOTE (2Bdecided @ Aug 3 2012, 10:51) The...   Aug 3 2012, 11:31
- - Destroid   Actually, I hope this person is still lurking and ...   Aug 3 2012, 10:50
- - greynol   Allow me to throw another reason into the mix as t...   Aug 3 2012, 15:36
- - alanofoz   Hmmm... I re-read my post and didn't think it ...   Aug 5 2012, 01:53

Reply to this 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: 19th April 2014 - 18:49