Hi,
I wrote a little rant today, that I published on my blog:
http://propirate.net/oracle/archives/2008/11/05/alsa-headaches-erm-headphon…
I send it to the Linux Audio Developers List, in the hope that it will
be read by the right people, or by someone who knows who to talk to.
Also I would like to encourage a little discussion and brainstorming
about source and solution of the problem I am describing:
------------------------------------------
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