Encode a file in console and you'll see:
LAME 3.99.5 32bits (http://lame.sf.net)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Resampling: input 44.1 kHz output 24 kHz
polyphase lowpass filter disabled
Encoding test.wav to test.mp3
Encoding as 24 kHz j-stereo MPEG-2 Layer III VBR(q=5.2)
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
7069/7069 (100%)| 0:03/ 0:03| 0:03/ 0:03| 43.280x| 0:00
So yes, LAME 3.99 changes the value of VBR Quality.
Here's the code in lame.c that does it:
/* WORK IN PROGRESS */
/* mapping VBR scale to internal VBR quality settings */
if (gfp->samplerate_out == 0 && (gfp->VBR == vbr_mt || gfp->VBR == vbr_mtrh)) {
float const qval = gfp->VBR_q + gfp->VBR_q_frac;
struct q_map { int sr_a; float qa, qb, ta, tb; int lp; };
struct q_map const m[9]
= { {48000, 0.0,6.5, 0.0,6.5, 23700}
, {44100, 0.0,6.5, 0.0,6.5, 21780}
, {32000, 6.5,8.0, 5.2,6.5, 15800}
, {24000, 8.0,8.5, 5.2,6.0, 11850}
, {22050, 8.5,9.01, 5.2,6.5, 10892}
, {16000, 9.01,9.4, 4.9,6.5, 7903}
, {12000, 9.4,9.6, 4.5,6.0, 5928}
, {11025, 9.6,9.9, 5.1,6.5, 5446}
, { 8000, 9.9,10., 4.9,6.5, 3952}
};
for (i = 2; i < 9; ++i) {
if (gfp->samplerate_in == m[i].sr_a) {
if (qval < m[i].qa) {
double d = qval / m[i].qa;
d = d * m[i].ta;
gfp->VBR_q = (int)d;
gfp->VBR_q_frac = d - gfp->VBR_q;
}
}
if (gfp->samplerate_in >= m[i].sr_a) {
if (m[i].qa <= qval && qval < m[i].qb) {
float const q_ = m[i].qb-m[i].qa;
float const t_ = m[i].tb-m[i].ta;
double d = m[i].ta + t_ * (qval-m[i].qa) / q_;
gfp->VBR_q = (int)d;
gfp->VBR_q_frac = d - gfp->VBR_q;
gfp->samplerate_out = m[i].sr_a;
if (gfp->lowpassfreq == 0) {
gfp->lowpassfreq = -1;
}
break;
}
}
}
}