Help - Search - Members - Calendar
Full Version: I get different mp3 when using lame.exe vs. dBpoweramp
Hydrogenaudio Forums > Lossy Audio Compression > MP3 > MP3 - Tech
psycho
I decided to test dBpoweramp Music Converter and I have compared the mp3 it produces with mp3 that lame.exe makes. Oddly, the resulting files are not identical, in fact, the difference is quite obvous.
Why is this so?

Here are my settings:
CODE
g:\Temp>lame -V 0 --vbr-new test.wav lame_exe.mp3
LAME 3.97 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding test.wav to lame_exe.mp3
Encoding as 44.1 kHz VBR(q=0) j-stereo MPEG-1 Layer III (ca. 5.7x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
   557/557   (100%)|    0:00/    0:00|    0:00/    0:00|   20.237x|    0:00
32 [ 22] %******
40 [  0]
48 [  1] *
56 [  0]
64 [  0]
80 [  1] *
96 [  8] %**
112 [ 64] *******************
128 [198] %*******************************************************
160 [244] *********************************************************************
192 [ 15] *****
224 [  4] **
256 [  0]
320 [  0]
-------------------------------------------------------------------------------
   kbps        LR    MS  %     long switch short %
  138.1        0.5  99.5        97.6   1.3   1.2
Writing LAME Tag...done
ReplayGain: -4.4dB


IPB Image

And here are the original wav and the two mp3s:
lame_exe.mp3
dBpoweramp Music Converter mp3
wav
robert
Calling LAME on the command line you are using the default qval=3 and with dBpoweramp it looks like qval=5.
psycho
robert... that's what I thought too.
Therefore I have used -h with lame.exe now and High Quality in dBpoweramp Music Converter.
EncSpot now says that the files have the same Quality Index, but they are still not identical when you comare them.

CODE
g:\Temp>lame -V 0 --vbr-new -h test.wav test2\lame_mp3_2.mp3
LAME 3.97 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding test.wav to test2\lame_mp3_2.mp3
Encoding as 44.1 kHz VBR(q=0) j-stereo MPEG-1 Layer III (ca. 5.7x) qval=2
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
   557/557   (100%)|    0:00/    0:00|    0:00/    0:00|   18.256x|    0:00
32 [ 22] %******
40 [  0]
48 [  1] *
56 [  0]
64 [  0]
80 [  1] *
96 [  8] %**
112 [ 64] *******************
128 [198] %*******************************************************
160 [244] *********************************************************************
192 [ 15] *****
224 [  4] **
256 [  0]
320 [  0]
-------------------------------------------------------------------------------
   kbps        LR    MS  %     long switch short %
  138.1        0.5  99.5        97.6   1.3   1.2
Writing LAME Tag...done
ReplayGain: -4.4dB


IPB Image

The mp3s:
lame -V 0 --vbr-new -h
dBpoweramp Music Converter HQ

My conclusion is that there still is something different between reference lame and the lame dBpoweramp uses.

Another idea to test lame has come to my mind.
I have compared lame.exe vs. lame_enc.dll

The files are again not equal!

lame.exe
lame_enc.dll
spoon
If you switch on Debugging in dBpoweramp Configuration you can see the command line that is being passed to lame.exe
robert
I'm not sure, but I think dB's slow mode is equivalent to -q0. You may want to take a look at the advanced settings page to see what else is activated there.
psycho
robert... even if that is so, -q0 and -h do nothing on this VBR setting, am I right?

spoon, here's what I get:

CODE
  Converting to 'G:\Temp\test.mp3' encoder settings ' -V="0" -encoding="SLOW"'
  Initializing Lame (lame_init): Ok
  Setting Lame Config: Ok
  Initializing Lame (lame_init_params): Ok
  ==============Lame Settings===========
  Encoding as 44100 KHz  2 Channels (joint-stereo)
Varibale Bit Rate (quality = 0)
MPEG-1 Layer III
Quality 2
  
LAME 3.97 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz


OK, I think the mystery of why lame.exe and dBpoweramp Music Converter produce different mp3s is solved. Merely because lame_enc.dll and lame.exe produce different mp3s.

I have now compared lame_enc.dll encoded mp3 with the one encoded with dBpoweramp Music Converter and they are virtually the same (3 differences can only be found in the header)!

So the real mystery here is why are lame exe and lame dll different!

To compare:

lame dll
dBpoweramp
lvqcl
QUOTE
So the real mystery here is why are lame exe and lame dll different!


Maybe they are from different compiles?
spoon
It is well known that different compiles (msvc vs. Intel) create different outputs with lame, hence why for R13 we went to Lame.exe
psycho
OK, so I need to do some more testing, but I don't have time right now.
Both lame_enc.dll and lame.exe are ICL9.1 compiles, FYI.

I thank you all for your input.

Maybe I'll be posting here again after I try some different compiles and then compare the dll versions with exe versions.

EDIT: Typo.
robert
QUOTE(lvqcl @ Jun 22 2008, 13:10) *

QUOTE
So the real mystery here is why are lame exe and lame dll different!


Maybe they are from different compiles?

Or, lame_enc.dll was linked against the release build of LAME library and LAME executable against the release build with assembler optimizations.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.