As far as fixing the table in the wiki...
LAME's console output shows whether the polyphase lowpass filter was enabled, what its transition bands are, and any resampling. For LAME 3.99.5 I get the following results:
With 44.1 kHz stereo input:
-b320 = 20094–20627 Hz
-V0 = polyphase lowpass disabled
-V1 = 19383–19916 Hz
-V2 = 18671–19205 Hz
-V3 = 17960–18494 Hz
-V4 = 17249–17782 Hz
-V5 = 16538–17071 Hz
-V6 = same as -V5
-V7 = polyphase lowpass disabled, resampled to 32 kHz
-V8 = polyphase lowpass disabled, resampled to 24 kHz
-V9 = polyphase lowpass disabled, resampled to 22.05 kHz
-V9.999 = polyphase lowpass disabled, resampled to 8 kHz
With the same 44.1 kHz stereo input, but with --vbr-old:
-V0 = 19383–19916 Hz
-V1 = 18671–19205 Hz
-V2 = same as -V1
-V3 = 17960–18494 Hz
-V4 = 17249–17782 Hz
-V5 = 15826–16360 Hz
-V6 = 15115–15648 Hz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9774–10065 Hz, resampled to 24 kHz
-V9.999 = 3903–4000 Hz, resampled to 8 kHz
With 48 kHz stereo input:
-b320 = 20323–20903 Hz
-V0 = polyphase lowpass disabled
-V1 = 19548–20129 Hz
-V2 = 18000–18581 Hz
-V3 = same as V2
-V4 = 17226–17806 Hz
-V5 = 16452–17032 Hz
-V6 = same as V5
-V7 = polyphase lowpass disabled, resampled to 32 kHz
-V8 = polyphase lowpass disabled, resampled to 24 kHz
-V9 = polyphase lowpass disabled, resampled to 22.05 kHz
-V9.999 = polyphase lowpass disabled, resampled to 8 kHz
With the same 48 kHz stereo input, but --vbr-old:
-V0 = 19548–20129 Hz, no resampling
-V1 = 18774–19355 Hz, no resampling
-V2 = same as -V1
-V3 = 18000–18581 Hz, no resampling
-V4 = 17226–17806 Hz, no resampling
-V5 = 15677–16258 Hz, no resampling
-V6 = 15115–15648 Hz, resampled to 44.1 kHz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9774–10065 Hz, resampled to 24 kHz
-V9.999 = 3903–4000 Hz, resampled to 8 kHz
LAME 3.98.4 has different results as well. Stereo 44.1 kHz input:
-b320 = 20094–20627 Hz
-V0 = 19383–19916 Hz
-V1 = 18671–19205 Hz
-V2 = same as -V1
-V3 = 17960–18494 Hz
-V4 = 17249–17782 Hz
-V5 = 16538–17071 Hz
-V6 = 15115–15648 Hz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9336–9602 Hz, resampled to 22.05 kHz
-V9.999 = 3903–4000 Hz, resampled to 8 kHz
And stereo 48 kHz input:
-b320 = 20323–20903 Hz
-V0 = 19548–20129 Hz
-V1 = 18774–19355 Hz
-V2 = 18000–18581 Hz
-V3 = same as -V2
-V4 = 17226–17806 Hz
-V5 = 16452–17032 Hz
-V6 = 15115–15648 Hz, resampled to 44.1 kHz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9336–9602 Hz, resampled to 22.05 kHz
-V9.999 = 3903–4000 Hz, resampled to 8 kHz
48 kHz and --vbr-old:
-V0 = 19548–20129 Hz
-V1 = 18774–19355 Hz
-V2 = same as -V1
-V3 = 18000–18581 Hz
-V4 = 17226–17806 Hz
-V5 = 15677–16258 Hz
-V6 = 15115–15648 Hz, resampled to 44.1 kHz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9774–10065 Hz, resampled to 24 kHz
-V9.999 = 3903–4000 Hz, resampled to 8 kHz
LAME 3.97, 44.1 kHz stereo input:
-b320 = 20094-20627
-V0 = 19383–19916 Hz
-V1 = 18671–19205 Hz
-V2 = same as -V1
-V3 = 17960–18494 Hz
-V4 = 17249–17782 Hz
-V5 = 15826–16360 Hz
-V6 = 15115–15648 Hz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9774–10065 Hz, resampled to 24 kHz
-V9.999 = 9774–10065 Hz, resampled to 24 kHz
LAME 3.96, 44.1 kHz stereo input:
-b320 = 20094–20627 Hz
-V0 = 19383–19916 Hz
-V1 = 18671–19205 Hz
-V2 = same as -V1
-V3 = 17960–18494 Hz
-V4 = same as -V3
-V5 = 16538–17071 Hz
-V6 = 15826–16360 Hz
-V7 = 14581–14968 Hz, resampled to 32 kHz
-V8 = 12516–12903 Hz, resampled to 32 kHz
-V9 = 9774–10065 Hz, resampled to 24 kHz
-V9.999 = 9774–10065 Hz, resampled to 24 kHz
They're all different.
Some things I don't understand:
- None of these line up with what's in the wiki. What's up with that?
- When the polyphase lowpass filter is disabled, the input still has to be filtered to half the output sample rate. What is the transition band in that situation?
- The documentation says the transition band defaults to 75% of 1/64th of the [output] sample rate. Well, 44100 divided by 64 = 689.0625. Multiply by 0.75, and you get 516.796875. Yet we can see the actual ranges vary between 532 and 534. To get in the ballpark you'd have to divide by 62 instead of 64. So is the formula right at all? And then how do you account for the variance (532, 533, 534)? Is it just due to rounding of the displayed numbers, or is there an actual variance?