Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
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
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.
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.
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
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 31
Mono: Playback 25 [81%] [-9.00dB] [on]
Simple mixer control 'PCM',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 217 [85%] [-7.60dB]
Front Right: Playback 217 [85%] [-7.60dB]
Simple mixer control 'Front',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 27 [87%] [-6.00dB] [on]
Front Right: Playback 27 [87%] [-6.00dB] [on]
Simple mixer control 'Line',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 25 [81%] [3.00dB] [on]
Front Right: Playback 25 [81%] [3.00dB] [on]
Simple mixer control 'Mic',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 18 [58%] [-7.50dB] [on]
Front Right: Playback 18 [58%] [-7.50dB] [on]
Simple mixer control 'Mic Boost',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 2 [67%]
Front Right: 2 [67%]
Simple mixer control 'IEC958',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'IEC958 Default PCM',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 31
Front Left: Capture 24 [77%] [24.00dB] [on]
Front Right: Capture 24 [77%] [24.00dB] [on]
Simple mixer control 'Capture',1
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 31
Front Left: Capture 28 [90%] [30.00dB] [off]
Front Right: Capture 28 [90%] [30.00dB] [off]
Simple mixer control 'Beep',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 0 [0%] [-34.50dB] [off]
Front Right: Playback 0 [0%] [-34.50dB] [off]
Simple mixer control 'Digital',0
Capabilities: cvolume
Capture channels: Front Left - Front Right
Limits: Capture 0 - 120
Front Left: Capture 88 [73%] [14.00dB]
Front Right: Capture 88 [73%] [14.00dB]
Simple mixer control 'Input Source',0
Capabilities: cenum
Items: 'Mic' 'Line'
Item0: 'Mic'
Simple mixer control 'Input Source',1
Capabilities: cenum
Items: 'Mic' 'Line'
Item0: 'Line'
pwa@Lepiota:~$ lspci | grep Audio
00:14.2 Audio device: ATI Technologies Inc IXP SB4x0 High Definition Audio Controller (rev 01)
pwa@Lepiota:~$ cat /proc/asound/card0/codec#0
Codec: Realtek ALC883
Address: 0
Function Id: 0x1
Vendor Id: 0x10ec0883
Subsystem Id: 0x1025009f
Revision Id: 0x100002
No Modem Function Group found
Default PCM:
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
[snip]
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.
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:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.