(Posted as part of my review of number 144, posting here in the interest of completeness)
Auto-normalization for the volume of songs would be nice. This would be a pretty serious software undertaking, but it would be so cool. The unit could peek ahead at the next song (using some free CPU cycles) and decide what relative volume level the next song should be played at.
Here's a transcript of a post I made to the Empeg Mailing list on this issue, in case anyone wants to open a full discussion of this subject.
>Any known utilities to normalize MP3s directly? I see that
>Audio Catalyst will allow you to normalize WAVs but not songs
>in the MP3 format.
I don't think that a direct-MP3-normalizer exists. For a couple of reasons:
First, there's the compression issue. Due to the nature of audio data compression, normalization would require that you decode the MP3 into wave data, normalize the wave data, then re-compress the data back into an MP3. Since MP3 is a lossy compression scheme, this could induce audible artifacts. Re-compressing something that's already been lossy-compressed once is generally a bad idea.
Second, since some people are picky about which MP3 encoders they use (different encoders have different levels of quality and speed), any direct-MP3-normalizer would probably not satisfy all users.
So, for volume normalization, you only have two options: 1) Normalize the source WAV files before encoding them, or 2) Utilize the Version 2 tagging specification to include a relative-volume variable in all your MP3 files (but the Empeg Car does not yet read Version 2 tags as I understand it).
However.. here's an idea...
An AUTO-NORMALIZING PLAYER program is not a farfetched idea. An MP3 player could use some extra CPU cycles to peek ahead at the next song and decide what volume level it should play the next song at.
In theory, all the peek-ahead routine would need to do is to use a single variable to store the maximum peak volume level of the next song. It could decode each frame individually, comparing its maximum volume with the variable. When the routine finished reading through the song, the variable would contain the next track's maximum peak, and could set the playback volume modifier accordingly. It could do this all in the background, while it's playing the current song.
There would be some minor issues, like how do you handle the first song in a playlist? Or if you go back and forth between songs quickly, it might induce a pause as it scans the upcoming song. Still, it could be done.
I wonder if anyone has written a WinAmp plug-in that would do this? If so, then it might be possible to have the Empeg Car do it as well.