Meaning of kmix microphone controls
kmix displays the following microphone controls:
Mic Mic boost Mic boost (capture) Capture 1 Capture 2 The kmix help provides no information about what these mean. Alsamixer has something similar: Mic boost Capture Capture 1 Digital Input source Input source 1 The last two of these are on/off. What do all of these mean, and how do the kmix settings correspond to the alsamixer settings? I assume that all this relates, somehow, to the existence of two microphone inputs: the socket on the front of my laptop, and the built-in microphone on the laptop. My sound chip is a Realtec ALC883. |
These names are the names provided by the driver of your sound card. Alsamixer and kmix just take the names and show them to you. There exists a convention to name the controls but the driver needs not to stick to it.
Because you are using a Realtek ALC883 sound chip, I assume your sound driver is snd-hda-intel. Since the same codec may be used in many different kind of devices, the driver does not know, what is connected to the pins of the chip. Depending on the manufacturer there might be some information on the wiring on the sound card (you can see it by inspecting /proc/asound/card0/codec#0 for codec0 on card0). If the hda driver can use this information or can determine your laptop model from the PCI ids, it can create the mixer elements correctly. If it cannot, it either uses a default configuration or refuses to drive the codec. But there are some generic names used in the HDA driver: Mic: Default Microphone controls (volume and mute) Capture: Volume settings and mute for the first ADC Capture 1: ... for the second ADC Input Source: If your HDA codec provides a mixer or audio selector you can control it with this setting Input Source 1: Second mixer/selector ... Front: your front speaker ... (the hardware mixer elements are called e.g. "Front Playback Volume" "Front Playback Mute" etc.) Besides these hardware controls, the alsa library provides some software mixing capabilities. The "Digital" element is such an example: It amplifies the microphone input using a digital (software based) amplifier. (Same for "Master", ...) There are standard names for some mixer controls (like Master, Front, Mic, ...) and so the mixer application knows what they are supposed to mean and sometimes rename tem by itself (which can be a source of confusion). To show all hardware mixer controls, use "amixer". If you want to know the exact meaning of the elements, you have to inspect the driver code: /usr/src/linux/sound/pci/hda/patch_realtek.c |
Capture volume vs. mike volume vs. boost
I've looked at the modules you suggested I examine, but the code doesn't really help me understand what the controls do. It names them and associates pins with them -- but since the only hardware access I have (on the mike side, anyway) are the mike input jack and the built-in mike, pin information isn't of much help.
I've more or less concluded that "capture" by default is the built-in mike and "capture 2" is the jacked-in mike. kmix seems to provide a way of switching those around. But that still leaves me puzzled. How do the volumes and settings on "capture" relate to those on "mic" and "mic (capture)"? Is it some kind of two-stage thing where the effects of the two are concatenated? Does "mic" affect "capture" and "mic boost" affect "capture 1", or is it the other way round? Really, my question is this: what are the audible effects of moving each of the controls? Hardware details don't help me answer this if I'm not intimately familiar with the hardware. One particular aspect of this question is: which controls relate to the built-in mic and which ones to the jacked-in mic? I'd love to find a document with that kind of information -- and most of it, I'd think, would be common to most sound chips. After all, most laptops provide the same functionality that mine does. This is information that would be useful to a great many users. I appreciate the help. |
If you post the contents of /proc/asound/card0/codec#0 and the PCI ids of your sound card (or the model of your laptop), I can help you to associate the mixer controls with the hardware elements, because for the ALC883 there are many different models supported by the driver. (Please also provide the output of amixer)
Normally the elements are associated as follows: Capture (*) sets the amplification values for the ADC (analog to digital converter) Mic (*) sets the amplification values for the Microphone Input. Normally there is a control for each input and each ADC. The signal source that is recorded by the ADC can be selected in many cases by another mixer control (Input Source or something). Thus the audible effects are: Mic sets the volume for the microphone input and will of course have influence on the recorded loudness. Capture sets the volume for the ADC and is something like a master volume control for everything recorded. Input Source provides a way to choose what you want to record. Capture 2 or similar corresponds to the seconds ADC, ... Mic Boost is an extra amplifier for the microphone (although it only increases the noise on my laptop) Which control belongs to which hardware device cannot be said without have the information above. But it is more probable, that the microphone controls with lower or no numbers correspond to the jacked microphone. |
amixer, lspci, etc.
Below you'll find most of the output you suggested I post. I couldn't send it all because that exceeded the forum message length. If you need the stuff I had to omit, I'll send it in another post.
But first, a naive question: is the output of the microphone sent to the ADC? If I double the volume of the ADC and also double the volume of the microphone, will the volume of the recorded sound be quadrupled (or something like that)? I don't see any controls in kmix or elsewhere that specify how the microphone is connected to the ADC, if it's connected at all. Code:
pwa@Lepiota:~$ amixer |
For your hardware details /proc/asound/card0/codec#0 is essential.
Yes indeed, if you double the volume on the ADC and on the microphone, you will get a four times louder signal recorded. I have to look at the codec#0 file to tell you if the microphone is connected to the ADC. Normally it should be. Now to our question about the connection of the microphone to the ADC: Although the hardware will most likely support to change the connection, most drivers won't offer this option to the user via a mixer control, for what reason ever. |
codec#0
Here's the first part of codec#0:
Code:
pwa@Lepiota:~$ lspci | grep Audio |
Rest of coded#0
Here's the rest of codec#0:
Code:
Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out |
Ok let me explain your hardware and mixer controls:
Your "Input Source" Mixer element allows you to select node 0x23 to mix in either from pin 0x18 or pin 0x1a Same is valid for "Input Source 1". (node 0x22 here) Pin 0x18 is a jack for a microphone at the front of your device. Pin 0x1a is a jack for "line-in" at the front of your device. Now to the other pins: pin 0x14: headphone jack (at the front) pin 0x15: internal speaker pin 0x16: internal speaker pin 0x18: mic-in (at the front, jack) pin 0x1a: line-in (at the front) pin 0x1d: the source for the PC-Beep pin 0x1e: spdif digital output (at the front) pin 0x1f: digital input (not connected in your case) all other pins are not connected in your case. All other controls should do the correct thing. But from the possible settings for your "input source" mixer elements I conclude that the driver only lets you to select either the jacked microphone or the line-in jack as a record source. But as I cannot find the subsystem id 0x1025009f to be supported by the snd-hda-intel driver (kernel 2.6.32), I think that you are using a generic driver for your sound card (selected automatically by the snd-hda-intel driver). This generic mode will enable you to use the basic functionality of your sound card but not all features. Maybe you can also try to load the kernel module with "model=acer-aspire". (Your subsystem id suggests this option). If this does not help, you might try to select one of the model listed below: Code:
static const char *alc883_models[ALC883_MODEL_LAST] = { |
All times are GMT -5. The time now is 03:54 PM. |