I love this place.I think it's here in optimum_bandwidth() in lame.c:
This defines the start of the stop-band. Later it is rounded up to one of the 32 band-buckets that lame is using. For example for 17000:Code:const band_pass_t freq_map[] = { {8, 2000}, {16, 3700}, {24, 3900}, {32, 5500}, {40, 7000}, {48, 7500}, {56, 10000}, {64, 11000}, {80, 13500}, {96, 15100}, {112, 15600}, {128, 17000}, {160, 17500}, {192, 18600}, {224, 19400}, {256, 19700}, {320, 20500} };
To verify:Code:17000 * 2 / 44100 = 0.771 23 / 31 = 0.742 24 / 31 = 0.774 therefore stop-band starts at: 24 / 31 * 44100 / 2 = 17071 and transition-band starts at: (24 - 0.75) / 31 * 44100 / 2 = 16538
Code:]$ lame -b 128 test.wav test.mp3 LAME 3.100 64bits (http://lame.sf.net) Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz ...
I'm not sure there are many other places than ASR, where someone will quote C source code to answer a question that is NOT about coding.
Thanks - fantastic.