On Tue, Apr 20, 2010 at 6:34 PM, Ken Restivo <ken@restivo.org> wrote:
Kind of a general mastering question, but obligatory Linux screenshots of JAPA are included, I promise.

I've noticed with some professional cd's/oggs/mp3s I have, the high end is rolled off at around 20Khz.

Some roll off hard core:
http://storage.restivo.org.s3.amazonaws.com/rolloffs/hardrolloff.png

Some have a softer, gentler rolloff, but they still roll everything off:
http://storage.restivo.org.s3.amazonaws.com/rolloffs/softerrolloff.png

The roloff is done to prevent Nyquist artefects from being audible -- the 44.1KHz CD sampling rate means you can't have anything above 22.05Khz or you'll hear it as aliasing: http://en.wikipedia.org/wiki/Nyquist_frequency#The_aliasing_problem . LPF's aren't perfect, and can cause other annoying artifacts such as phasing or ringing as they progress to the theoretically ideal brickwall filter ( http://en.wikipedia.org/wiki/Brickwall_filter#Brick-wall_filters ). So some recordings might choose a gentler slope, rolling off at a lower frequency in order to hit the drop-dead at 22.05Khz. This may account for the observations made.

The other issue is that MP3 encoders themselves have filters built-in in order to prevent aliasing artifacts at low bitrates. For example, in Fedora&Ubuntu the "stock" sound-juicer/rhythmbox/etc settings cut-off at 16Khz, even if you up the bitrate. I fix this by setting  'gconf-editor /system/gstreamer/0.10/audio/profiles/mp3/pipeline'  to:

audio/x-raw-int,rate=44100,channels=2 ! lame name=enc mode=0 vbr=4 vbr-quality=0 quality=0 vbr-min-bitrate=192 vbr-max-bitrate=320 lowpass-freq=20500 ! id3v2mux
 
Note the lame(1) arguments that affect the LPF:

       --lowpass freq
              Set a lowpass filtering frequency in kHz.  Frequencies above the
              specified one will be cutoff.

       --lowpass-width freq
              Set the width of the lowpass filter.  The default value  is  15%
              of the lowpass frequency.

Note that many built-in settings in LAME automatically set the HF roloff frequency. Particularly, with VBR, the issue is that the bitrate is changing: if you have VBR from 128k-320kbps, you need to set the filter for 15.5Khz.in order to prevent aliasing at the lowest bitrates: ( http://lame.sourceforge.net/gpsycho.php )

Lowpass filtering based on the compression ratio. For high compression ratios, low pass filtering will improve the results. The exact amount of filtering needed depends on the music and personal preferences - the formula to decide how much lowpass filtering to use may need some tuning. At 256kbs, no filterings is done. At 128kbs, the lowpass filter is around 15.5khz.
 
Note that I set the min VBR at 192k so I can move my filter up to around 20Khz. As the default 15.5K cutoff sounds nasty.

 -- Niels
http://nielsmayer.com