Old 6th February 2006, 05:08   #1
mysh
Junior Member
 
Join Date: Feb 2006
Posts: 2
Graphic equalizer bug with AAC files?

Hi, i think you have a bug with the graphic equaliser regarding AAC files (mp4, m4a, etc). I wasn't sure if this is a bug with mp4_in.dll or the winamp EQ itself.

It's present in both winamp 5.13 and the 5.2 beta.

Basically, i recently started listening to AAC audio with winamp. I'm a reggae fan, and i have the winamp EQ set to +2dB for the 60 and 170 Hz bands. But all my AAC tracks sounded a bit hollow, no weight to them compared to mp3 versions. I did a quick search on this forum for AAC bugs, and nothing came up. I thought maybe i was imagining it.

Recently i was doing some audio hardware testing, freqency response sweeps, and remembered the AAC sound with winamp. So i converted the frequency sweep to 320kbit MP3 and AAC and played them through winamp to the analyzer, with winamp's EQ enabled. Here's the result:



Click to enlarge. Light line is MP3, darker line is AAC.

minor bug: Winamp EQ applies excess dB to aac files.

MAJOR BUG: Winamp EQ has incredibly steep falloff on each EQ band for AAC audio. The MP3 is EQ'd normally, with a nice smooth curve. But just look at the AAC, that's incredible. This must be a bug?!! i can't imagine it's that kind of steep EQ by design.

It explains why my AAC files had hollow bass after EQ'ing in winamp, the 60Hz band falloff is about 10Hz either side for AAC files!

Right now i'm using foobar2000 instead, but i prefer winamp, so if you could fix this, thanks. Or just let me know it's intentionally bad EQ, that would also be appreciated.

If you'd like to test yourself, you need a 3.5mm male-to-male cable, and a half decent soundcard. The analyzer is called Right Mark Audio Analyzer. It's designed for testing soundcards, but can export and import testing samples like the frequency sweep (acoustic tests in the options). I simply captured the winamp playback for each format through line-out to line-in, after calibrating it to winamp's output levels without EQ enabled.
mysh is offline   Reply With Quote
Old 6th February 2006, 11:11   #2
DJ Egg
Techorator
Winamp & Shoutcast Team
 
Join Date: Jun 2000
Posts: 35,894
What type of AAC file?
Raw lc-aac (.aac), Raw he-aac/aacplus (.aac), lc-aac in .m4a/.mp4 container, he-aac/aacplus in .m4a container, he-aac/Nero Digital in .mp4 container, cbr or vbr, all?

What encoder was used? What parameters? Were they encoded with Winamp's CT AAC Encoder?

Sample files?
DJ Egg is offline   Reply With Quote
Old 6th February 2006, 11:30   #3
Cianca
Senior Member
 
Join Date: Mar 2002
Posts: 336
i think this could be similar at my bug in the songticker with .aac

The universal god of light, love, wisdom and rok n rol
Cianca is offline   Reply With Quote
Old 6th February 2006, 12:03   #4
DJ Egg
Techorator
Winamp & Shoutcast Team
 
Join Date: Jun 2000
Posts: 35,894
And what bug would that be exactly? Link?
DJ Egg is offline   Reply With Quote
Old 6th February 2006, 12:50   #5
Cianca
Senior Member
 
Join Date: Mar 2002
Posts: 336
http://forums.winamp.com/showthread....57#post1853857

The universal god of light, love, wisdom and rok n rol
Cianca is offline   Reply With Quote
Old 6th February 2006, 18:15   #6
mysh
Junior Member
 
Join Date: Feb 2006
Posts: 2
Quote:
Originally posted by DJ Egg
What type of AAC file?
Raw lc-aac (.aac), Raw he-aac/aacplus (.aac), lc-aac in .m4a/.mp4 container, he-aac/aacplus in .m4a container, he-aac/Nero Digital in .mp4 container, cbr or vbr, all?

What encoder was used? What parameters? Were they encoded with Winamp's CT AAC Encoder?

Sample files?
I don't see how the container will affect how a file is EQ'd, the aac data stream is what is actually played, which is the same for raw .aac, mp4, and m4a.

I tested with he-aac encoded with nero at 60kbit, lc-aac encoded with nero at 130 to 190 kbit, and lc-aac encoded with itunes at 128 to 320 kbit. Also with various mp3 bitrates encoded with lame 3.97 beta 2. HE-AAC is too imprecise to accurately test with, it's frequency response is not flat due to the massive compression. I didn't use winamp's own aac encoder.

In the graph above i used 320kbit CBR mp3 from lame, and 320kbit VBR AAC from itunes, as the two formats calibrated identical to the wav output of the test sweep. That means with no EQ enabled, they both produced identical perfectly flat frequency response curves when played back from winamp. Only enabling winamp EQ at 60Hz +2 and 170Hz +2 will you get the differing curves shown in my first post. That's the bug.

Here's the calibration tone in wav and 320kbit aac, the original frequency sweep sample in wav, 320kbit cbr mp3, and 320kbit cbr lc-aac in .m4a container: http://ww.vapulus.com/w900i/testsamples.rar

You'll have difficulty spotting the bug from just listening to them, plus the high frequency in the sweep is not nice to listen to. You need the analyzer software and either a male-to-male 3.5mm jack lead, or a stereo-mix channel on your soundcard input. Software is here: http://audio.rightmark.org/download.shtml

I haven't tested other formats like ogg, flac, or mpc. But this bug is real for AAC, it's there, i didn't make any mistakes capturing the winamp EQ'd response curves.

If the developers actually read this forum, this is my opinion on why the bug exists.

Winamp's EQ was developed when mp3 was the primary format, possibly only format supported. MP3 has a 576 frequency band resolution (quote "The audio in Layer 3 is divided into 576 frequency bands" http://www.telos-systems.com/techtalk/mpeg/default.htm). I expect winamp smooths the EQ application by so many mp3 frequency bands either side of the EQ'd band. Giving that nice smooth curve we see for the EQ'd mp3 playback.

AAC has 1024 frequency bands (quote "instead of the hybrid filter in MP3, AAC uses a simple 2048-input MDCT, which produces 1024 spectral (frequency domain) coefficients" http://www.everything2.com/index.pl?node=AAC). So when winamp attempts to smooth the EQ application for AAC audio by the same number of AAC bands either side as it does for mp3 bands, the EQ falloff is a lot sharper. This is because the same number of AAC bands either side of the EQ'd band represent a much smaller frequency range compared to mp3. The band resolution is higher, and relative smoothing produces a different and much steeper falloff result.

It's just a guess and i could be wrong, but it does make sense. In which case you either need to add code to your EQ object that has a condition for AAC audio and increases the number of relative bands used for EQ smoothing, or you need to code in absolute smoothing values for each EQ band using Hz values, so that every format with different band resolution is given the same EQ curve. The first choice would be a lot less expensive in cpu cylces, but the second would produce more accurate audio levels between formats.

Anyway, this is surely enough information for the bug to be looked into now, so, i'll leave it with you guys.

P.S. I have actually paid for and registered my winamp, but i'm not going to start demanding things be fixed, nobody else even noticed this bug so i understand it won't be high priority based on one request for a fix.
mysh is offline   Reply With Quote
Old 6th February 2006, 22:04   #7
Benski
Ben Allison
Former Winamp Developer
 
Benski's Avatar
 
Join Date: Jan 2005
Location: Brooklyn, NY
Posts: 1,057
in_mp3 is definitely cheating on the EQ. You can disable this by turning off "Fast Layer 3 EQ" in the MPEG Audio Decoder preferences.

The behavior of the rest the EQ on AAC files (and all other files) is mostly correct. The lowest EQ band should probably be a low shelf filter instead of a bandpass, though. I also suspect that the Q on the filter is too high (rolloff is too steep, like you said). I plan on addressing Winamp's EQ in the future.
Benski is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Winamp > Winamp Bug Reports

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump