[pulseaudio-discuss] Mic input volume controls

David Henningsson david.henningsson at canonical.com
Wed Dec 1 05:55:31 PST 2010

Hi folks,

The way we control mic input is quite broken. I've tested here with both 
IDT codecs and Realtek codecs (the two most common HDA Codecs AFAIK) and 
as far as I see they're both broken in the same ways.

Let's assume that we have an internal mic and an external mic jack, with 
autoswitching in the kernel. We have a "Mic Boost" affecting the 
external mic jack, a "Front Mic Boost" affecting internal mic, and a 
"Capture" control affecting both.
"Mic Boost" and "Front Mic Boost" go from 0 to 60 dB in 20 dB steps, and 
"Capture" goes from 0 to 22.5 dB in 1.5 dB steps.

The first problem is PA is unable to combine both of them correctly: for 
the first 0 to 22.5 dB, PA moves the "Capture" control only. After that 
say at 25 dB, "Mic Boost" moves to +20 dB, keeping "Capture" at 22.5 dB, 
then using softvol to compensate, instead of lowering "Capture". I've 
been suggested that changing the order of "Mic Boost" and "Capture" 
improves this situation, so we should probably do that. Any objections?

The harder problem is that PulseAudio does not know whether to control 
"Mic Boost" or "Front Mic Boost", since it doesn't know what path is 
active at the moment. While we really need some kind of module, and 
appropriate kernel support, the question is what we do before that 
becomes sufficiently available. The next best solution, would probably 
be to have different profiles and manual autoswitching. While I yet have 
to look into the details, I guess we'll have to add different profiles 
for "Mic", "Front Mic", "Rear Mic" and so on, instead of having them in 
the same file as we have today. Any thoughts?

It'd be great if we could present something else than "Microphone 1", 
"Microphone 2" and so on when we have more than one mic input. Any idea 
of where this name actually comes from, and how we can make it better?

Thanks/credits to Vitaliy Kulikov for helping with the analysis.

David Henningsson, Canonical Ltd.

More information about the pulseaudio-discuss mailing list