Hi,
I own a laptop, that I run with Linux, using the ALSA for controlling the laptops built in sound card. The laptop comes with built in speakers and microphone, as well as two plugs for headphones and a microphone respectively. Those plugs would come in quite useful, for attaching a headset to talk on VoIP Internet telephony software.
However, there is a problem with this Laptops audio system.
What I would expect is that as soon as I drive the plug into the headphone jack, that the built in speakers remain silent, while the audio is routed into my headphones. However, this does not happen. The tunes from my music player software happily chung along on both the internal speakers and the headphones. Does this behavior make any sense?
What if I’d like to use the headphones in an environment where I ought to make no noise? Then the speakers continuing to transmit the audio would be quite offending.
Ok, so it does not work automatically. Every self respecting Linux distribution today comes with an extensive audio mixer control panel. Turning my attention to that control panel, I tried to achieve the required circumstances for making use of my headphones, I was disappointed severely. While there are controls that are labeled headphones, those actually do not act as expected, in fact they do nothing. Playing around with other control items with cumbersome names, I was unable to resolve the situation to my satisfaction.
So I am asking myself, why does this happen, and turn my eyes to the available ALSA support channels. What I find there suggests that other users experience the exact same grief, however, without resolution, unfortunately.
Being a techno-geek of course, it is quite clear to me why this happens. There are a couple of standardized audio chips, used by various manufactures. ALSA recognizes those chips and exposes the available mixer controls in its control panels. The manufactures using those chips in their hardware, are likely not wiring them up in identical matters to other manufacturers. For example, if a laptop that uses that chip has no headphone plugs, the chip will still have the mixer controls built in, yet there is no wire attached to those chip pins. Und careless manufacturers, might even wire them up wrongly accidentally. Like connecting the headphone pins to the speaker wires?
So the ALSA people are in some kind of predicament here, they cannot know how the chip is wired up, and they quite obviously cannot own all the available laptops and computers to test them with their individual configuration.
So how could a solution to this situation look like?
I am not an ALSA programmer, so I don’t know whether that is feasible, but what I would suggest is the following:
Create a simple and friendly software tool, that guides a not so technical user to the process of identifying and testing all the different mixer configurations, and asks the right question to test whether all of them work as intended. The tool would collect that information, along with an identifier that allows to recognize the model of the laptop used, and send that information back to the ALSA developers. Those could then integrate this information into the project, and whenever a future user starts ALSA on an identical machine, it would already know the perfect configuration for this machines individual mixer control setup.
What do you think?
Cheers
-Richard
November 5th, 2008 at 9:23
I experienced that effect on my laptop too at first, but they fixed it in the kernel alsa code several months ago. I think the input is called ‘headphone jack sense’.
November 5th, 2008 at 19:52
Hm, thx for the hint, doing some Google Research here.