|
|
Subscribe / Log in / New account

Can you hear me now?

By Jonathan Corbet
April 29, 2009
The Fedora 11 preview release announcement went out on April 28. Around the world, Fedora users responded by downloading, testing, pondering the ext4 filesystem, and generally feeling a little "jaunty" themselves. One Fedora developer, though, had a moderately strange response which might be a little hard to understand out of its full context:

I'm sorry, I can't hear you. Can you turn it up a bit?

What do you mean, it won't go any louder? The _last_ release used to go louder.

Anybody who has been sufficiently distant from the disturbance on the fedora-devel mailing list can be forgiven for wondering what is going on here. In short: changes to the PulseAudio volume control widget shipped in Fedora 11 have made it hard for some users to get sound out of their systems in the manner to which they have become accustomed, and they're not happy about it.

The longer version goes something like this. The low-level ALSA sound system provides a great deal of control over the underlying hardware, exposing all of the knobs supported there. Volume-control applications have typically made all of those knobs available to the user. That sounds like the proper way to give users full control over their hardware, but, as anybody who has pulled up the mixer on moderately-complicated hardware knows, the result can be an unbelievable mess of confusing sliders. See this image for an example. There is a clear usability problem here.

[Volume widget] The solution, as found in Fedora 11 (and, ultimately, GNOME 2.26), is to reduce the number of sliders slightly. OK, more than slightly: there is now a single "output volume" slider and a single "input volume" slider. The user has a single knob to play with, and PulseAudio somehow makes everything else work right in some magic, behind-the-scenes manner that need not be worried about. And, in fact, on a reasonably normal system, the "just works" factor is pretty high. If one is trying to get normal audio output from a number of applications, the single volume control does the right thing. Many users will, your editor suspects, never miss all those other sliders.

But the Fedora user base goes beyond "many users." And some of Fedora's testing users are finding that they can no longer make things work. Sometimes the behind-the-scenes magic doesn't get things right for specific hardware, and sometimes these users are just doing something strange that PulseAudio developer Lennart Poettering didn't envision. These users have, at times, filed bugs noting a regression in Fedora 11; they have been dismayed to see those bugs closed with a "not a bug" or "won't fix" status. To these users, the behavior of Fedora 11 is, indeed, a regression, and they are not happy about it.

It must be said that Lennart has, by virtue of a strong "not my problem" attitude, made the problem worse. His responses tend to look like this:

If you want to do weird stuff, use weird tools. Don't expect us to support all the exotic use cases minds could come up with to support in a single simple UI.

What he generally tells users who are unable to get the behavior they need is that they should drop down to alsamixer and fix things there. But users, strangely, dislike the idea of moving to a curses-based tool to gain access to functionality that was once part of their desktop. And, of course, just running "alsamixer" yields a beautiful, 24x80 rendering of, yes, the single PulseAudio output control; one must first figure out the proper command line options to get alsamixer to talk to the system at the right level. It just doesn't seem like much of a solution.

In the middle of this, the Fedora engineering steering committee (FESCo) held one of its regular meetings. The terse meeting summary includes the following:

Long and contentious discussion about concerns with the VolumeControl feature. FESCo decided to get gnome-alsamixer packaged and added to the default desktop live/install spins to allow users whose use cases are not covered currently by VolumeControl to have a GUI way to adjust mixer settings. Hopefully this will be dropped/revisited in F12.

This is a solution which has pleased nobody. Lennart thinks it's a big mistake, of course. Others don't like last-minute changes to the Fedora 11 feature set. And the people who are unhappy with the current state of affairs really would rather not have to go digging through the menus to find an emergency backup volume control which does what they really need. Many Fedora users, it is feared, will just see that functionality has disappeared and won't know where to go to find it again.

So what is the right solution? It seems pretty clear that the "one slider fits all" approach will never work for everybody. David Woodhouse expresses it well:

People will always need access to mixer controls. One set of people will need them because they want to do things that the PulseAudio folks call "weird", like using that line-in socket on the side of their laptop, or playing CDs without chewing CPU time doing all those strange unreliable heuristics we do to knit audio back together when we rip it off a CD. Or turning their speakers on or off. Or setting the relative levels of bass and mid-range speakers. Or any number of other things.

On the other hand, a general return to the "ALSA mixer of doom" (David's term) is clearly not in the cards. Presenting users with hundreds of sliders is, in most cases, not going to leave them feeling more empowered. The simplification work which has been done in the volume control application is clearly needed.

One suggestion which has come out of this is that the volume control should have an "expert mode" which makes more sliders available. That would allow those sliders to remain hidden for the (presumed) majority which will never want to adjust them, but it also makes them available in the obvious place for users who do need to go deeper. This solution, too, fails to please everybody, but it may please enough of the people involved to, eventually, cause the noise of this debate to subside a bit. Because, alas, there is no slider to turn that particular noise down, even in expert mode.


to post comments

Can you hear me now?

Posted Apr 29, 2009 14:52 UTC (Wed) by elanthis (guest, #6227) [Link] (13 responses)

ALSA just needs to fix is freaking mixer interface to better identify and classify the different mixers, so that the truly esoteric ones can be reliably sorted out from the more commonly useful ones by end-user applications, and so that the mixers have a common naming scheme so end-user applications can reliably apply user-friendly and internationalized labels.

I usually agree with Lennart's assessments of how Linux audio is mucked up, but trying to pretend that a single output volume slider is correct is definitely wrong. In an ideal world with ideal hardware with ideal drivers, maybe that would work. In Linux land with ALSA and with shoddy audio hardware in many laptops, that just doesn't fly.

Can you hear me now?

Posted Apr 29, 2009 16:06 UTC (Wed) by ESRI (guest, #52806) [Link] (2 responses)

Honestly, I think the Windows volume control (which has been the same forever) has got it pretty right on. Just copy that and give an "Advanced" button to display less commonly used items.

It is, as usual, a driver problem.

Posted Apr 29, 2009 17:04 UTC (Wed) by etrusco (guest, #4227) [Link] (1 responses)

In Windows, the hardware providers themselves can identify the tens of knobs much better.
Not to mention that MS made in Vista the exactly same mistake Fedora is "trying to reproduce" now. Try a cheap notebook (e.g. a Clevo with VIA chipset); in Vista it's even worse since you don't even have the option of low-level/expert tool to fix the setup.

It is, as usual, a driver problem.

Posted Apr 30, 2009 12:13 UTC (Thu) by cortana (subscriber, #24596) [Link]

At least with Vista, the manufacturers test their audio device & drivers and make sure it works. That is the problem with Linux. I've had an Intel-based laptop for over a year now, and sound still doesn't work properly. I doubt it ever will at this rate.

Can you hear me now?

Posted Apr 29, 2009 16:19 UTC (Wed) by tialaramex (subscriber, #21167) [Link] (8 responses)

The "expert mode" thinking is nearly right.

What these extra sliders are exposing is the same kind of thing as the controls under the flap on your VCR. The people too scared to even programme the VCR clearly shouldn't be playing with these sliders, but there was a reason they were provided.

You shouldn't need to fiddle with this stuff once the system is working. But unfortunately some people's needs are so esoteric that even this rule doesn't stand - if you switch between headphones and a set of Hi Fi speakers plugged into the same mini-jack then you are probably going to have to tweak things or be deafened in one mode or the other...

The old UI had the problem that users are looking for a way to make that annoying Mudkip Youtube video quieter, and they get a set of controls for adjusting the output levels of their soundcard, which is a bit like looking for the windscreen wiper controls and finding the knob which adjusts headlight dip to compensate for weight on the rear axle...

Can you hear me now?

Posted Apr 29, 2009 16:37 UTC (Wed) by tialaramex (subscriber, #21167) [Link] (2 responses)

I guess I should give some technical background

In software, while the sound is still PCM data, we can process it pretty heavily with no negative consequences. If we work in 32-bit floats we have far more dynamic range than we could ever need. So if something is temporarily too quiet or too loud we can fix that easily so long as the normal output level is right.

The ALSA hardware mixer controls aren't in software though, they're usually controlling tiny amplifiers. These work on electrical signals out in the real world, where you're lucky to have 100dB of dynamic range in non-professional gear. If you get these settings wrong everything may be too loud or quiet, but it could just as well be distorted, or noisy, or messed up in a dozen other ways. There is no reason to fiddle with these when a particular CD is too loud or the "new mail" sound annoys you.

So what we want to do is tweak the hardware controls only when there's a hardware problem [eg you just bought $100 headphones and they're much quieter than your old ones so you need more gain] and the rest of the time be satisfied with level controls (and anything else we want) in software. It's remarkably difficult to convince users that this will actually achieve what they want though, there's a lot of cargo cult audio settings knowledge out there.

Can you hear me now?

Posted Apr 29, 2009 17:59 UTC (Wed) by drag (guest, #31333) [Link] (1 responses)

Well still the 'expert mode' is the way to go... almost.

What I want is Expert Mode + DOCUMENTATION + Reset button.

What gets people into trouble is that they go into Alsamixer or something else and start playing with settings. They fiddle with some bits that have unpredictable results and then they can't figure out how to fix it.

This has happenned to me, this happens all over the place. And rebooting does not fix it becuase Alsa settings are saved between reboots. So if you fork up your sound card then your toast. The only way to reset it that I've found is to delete the asound state text file and symbolic link it to /dev/null and reboot.

This is hardly user-friendly.

So the mixer controls should have a little button in the corner that says "Expert"

When they click on "Expert" they get a big fat warning that says (along with the normal 'checkmark to disable these notices':

------------------------------

"WARNING: These settings tweak the hardware and lowest level driver settings for your audio card. You probably do NOT want to be here and these settings can have adverse effects over the sound quality and functionality of your audio card. Proceed at your own risk"

(CONTINUE)

--------------------------------

Then when they click continue they get:

-----------------------------

"If you require to use this to get your sound card to work it may be because of a bug. It may be in your best interests to submit the mixer settings to the developers for the purposes of implimenting hardware tweaks. Thank you and sorry for any inconvience -- Gnome Project"

(CONTINUE)

-------------------------------

Then when you get to the expert settings you get a screen that looks vaguely like this:

-----------------------------------------

(tab1) Output controls \ (tab1) Input controls

*various mixing settings that depend on particular hardware and drivers*

(RESET SETTINGS) (HELP) (SUBMIT SETTINGS)

----------------------------------------

So you get 3 buttons and 2 tabs. The buttons are rather huge so that they are not missed.

The Reset settings reset things back to "factory defaults". This is so that users are free to tweak the settings and explore the various features of their sound card without consiquence. This makes a much more pleasent experience since they can always recover back to the defaults. This lowers frustration and makes the system feel more 'solid'.

The Help displays a help screen. It has various topics that explains the functions of the Reset and submit buttons. It also explains many of the terms that they are likely to run into, like PCM hardware, Master controls, what IEC956 means, and things of that nature.

The submit settings pulls up the equivelent of a bug report. They are asked to give a email address, which is not required, and probably have a selection of buttons that they can select that show what types of problems they were trying to solve and whether or not they solved them.

Stuff like:
* Increase Volume to acceptable levels
* Decrease Volume to acceptable levels
* Correct audio distortions, improve audio quality
* Ac3/DTS digital passthrough to receiver
* Digital stereo output to receiver
* Digital surround sound to receiver
* Digital input from external source
* Internal Mic input
* Unpowered external Mic input
* Powered external Mic input
* Front line analog input
* Rear line analog input
* Independent analog output for front stereo
* Independent analog output for front and rear stereo
* Independent analog output for surround sound 5.1/7.1 (including front channel and Low Frequency Effects)
* Direct playback from CDROM to audio card
* Professional Audio creation/manipulation (please specify)
* Other (please specify)

Then you'd have software on the backend so that developers can see statistics on what people are having problems with and what solutions they've come up with. That way they can more easily identify issues that they users are running into and find weaknesses in drivers and user interface.

Then this information should be user accessable for people that are skilled enough to navigate a website for other's experiences with various sound cards and whatnot.

Can you hear me now?

Posted May 3, 2009 12:00 UTC (Sun) by lacostej (guest, #2760) [Link]

I like what you said. I've been using Linux for years, and I sometimes have problems getting the sound right, especially with new hardware and programs like skype.

My volume control (ubuntu 9.04) has several playback devices

HTA intel (Alsa mixer)
Analog Devices AD1986A (OSS Mixer)
Playback: HDA Intel - AD198x Analog (PulseAudio mixer).

and 2 capture ones

When I play sound, it seems that all of these device affect it in some way. When I screw up, I never know why.

Would be happy to know how things are layered architecturally so that I can grasp these conceps better.

Can you hear me now?

Posted Apr 29, 2009 17:50 UTC (Wed) by nix (subscriber, #2304) [Link] (3 responses)

It's worse. You're often finding a bunch of knobs to adjust rear headlight
dip on your trailer, and searchlight dip on your roof-mounted
helicopter --- when you *don't have one*.

I don't know about you but my soundcard has about fifteen connectors at
the back of it. Only two are plugged into anything, and not being a
high-order audiophile I barely know what any of the others are. But all
the volume controls for these disconnected signal lines are *still
displayed*. Unless you've got more audio gear than I can easily imagine,
*most* of your ALSA-exposed volume controls will be like this, named in a
way that probably would make their function really clear if you even knew
what sorts of things those disconnected sockets were for (and why should
you?)

The useful controls are drowned in the disconnected dross.

Can you hear me now?

Posted Apr 29, 2009 18:12 UTC (Wed) by nix (subscriber, #2304) [Link] (2 responses)

Of course, Lennart's first quoted comment talked about this. Apparently
the sound cards can tell you whether something is plugged into a given
jack ('jack sensing') but ALSA doesn't export this information anywhere
and only reads it for a couple of cards... *sigh*

Can you hear me now?

Posted Apr 30, 2009 13:55 UTC (Thu) by zlynx (guest, #2285) [Link]

Speaking of this, I was quite impressed by the Vista Realtek driver package for my new X58 motherboard.

It uses jack sensing and whenever something is plugged in, it pops up a dialog window *with a connector diagram* and asks you what you just plugged in. Then it lets you test it and set levels.

It's very useful.

Can you hear me now?

Posted May 1, 2009 13:11 UTC (Fri) by broonie (subscriber, #7078) [Link]

That's not true any more - there is now a standard interface for reporting jack status to user space with a helper in kernel for the drivers and support is being added to drivers to use it - 2.6.29 has some that should cover a lot of common laptops.

Note that not all sound devices are going to be able to do jack detection - it does require hardware support and simpler devices will often not have that support.

Can you hear me now?

Posted Apr 29, 2009 19:30 UTC (Wed) by elanthis (guest, #6227) [Link]

"What these extra sliders are exposing is the same kind of thing as the controls under the flap on your VCR. The people too scared to even programme the VCR clearly shouldn't be playing with these sliders, but there was a reason they were provided."

For the odd use cases, sure.

For the common cases where the audio hardware just has 20 different knobs that all need to be set to specific values to get consistent audio volume out of the two or three common outputs on the hardware, I shouldn't have to touch any advanced knobs. It should just work. But ALSA is not making it just work, and ALSA is not exporting enough information for applications like PulseAudio or desktop volume tools to set the mixer values properly.

The applications could create some kind of database mapping sound cards and their respective mixers to a list of standardized labels and attributes, but there's no guarantee that ALSA won't just break those in the future by changing names, because they're non-standardized and not considered part of the API/ABI. The only way such a database would be useful is if it was maintained and shipped as part of ALSA itself.

But if ALSA were to do that, they could just fix the freaking issue at its core and be done with it.

Can you hear me now?

Posted Apr 30, 2009 6:01 UTC (Thu) by aigarius (subscriber, #7329) [Link]

There are two programs - gnome-volume-control and pavucontrol. The first one is the advanced one with all the knows the hardware provides. It is needed sometimes - to switch to 5.1 sound or to turn the correct microphone input on. Most of the time it is much easer to use pavucontrol which provides not only an easy volume control per-soundcard, but also provides the unique feature of volume control per-application.

Both must be available. Preferably pavucontrol should be the default one with gnome-volume-control or gnome-alsamixer provided when you press the 'Advanced...' button.

Can you hear me now?

Posted Apr 29, 2009 15:26 UTC (Wed) by ssam (guest, #46587) [Link]

my desktop has one analogue sound out. to control it currently i have to balance three sliders, master, PCM and front. it would be nice to have one slider that went from zero, as in silent, to loud, in a nice smooth way.

Can you hear me now?

Posted Apr 29, 2009 16:42 UTC (Wed) by jzbiciak (guest, #5246) [Link]

As someone who spent two weeks not being able to use his mic because he had changed the "surround jack mode" from "independent" to "shared" (which apparently triggered some other shenanigans that saturated my mic input port), I must say I would love a more coherent interface. Not necessarily simpler, but one that has less of a "spaghetti thrown at a wall" feel.

If this uber simplified VolumeControl had made the same mistake, I'd still not have mic input unless I found the right magic knob in the text interface. Not terribly appealing.

Why do we have all these mixer inputs anyway? And why is it I get the sneaking suspicion that the Windows mixer is simpler because the Windows drivers bundle up the overly fiddly and highly exposed hardware interface into a small number of sane buckets that it exposes to Windows? Here in Linux, we're left looking at the raw hardware without nearly enough context.

I remember playing with an AD1618-based card back in the day that I picked up for cheap. Whoever built that card decided to use the mixer inputs differently from the other cards that use the same chip, and I imagine this was all waved away behind the magic curtain in the Windows driver. That didn't help me in Linux--all I got was an ear piercing feedback squeal. I ended up sending a second card (they were certainly cheap enough) to the OSS developers so that they could figure out its wacky implementation and actually get some reasonable sound out of it.

Can you hear me now?

Posted Apr 29, 2009 16:57 UTC (Wed) by JoeBuck (subscriber, #2330) [Link] (7 responses)

What we really need is a good visualization. Imagine an interface that draws an accurate diagram of the audio paths in the system, with all available volume adjustments depicted at the correct place in the diagram. Instead of a bank of sliders, the sliders would be drawn in a way that makes it intuitively obvious that, say, the one labeled "Master" will adjust the volume of both the headphones and the speakers, while the one labeled "Primary Audio" only increases the volume of the speakers, and that to turn the volume all the way up you need to turn both knobs up. This would not be an "expert mode", it would be usable by most people.

If only if was so simple!

Posted Apr 29, 2009 19:59 UTC (Wed) by khim (subscriber, #9252) [Link] (4 responses)

Imagine an interface that draws an accurate diagram of the audio paths in the system, with all available volume adjustments depicted at the correct place in the diagram.

Yes, imagine that. Imagine the perfect world where ALSA knows what it's doing. Feel it, love it, then go back to reality. Where 90% of controls exposed by ALSA are doing god knows what.

ALSA exposes what the sound chip is exposing. But this worldview does not include "diagram of the audio paths in the system"!!! There are nothing to visualize!!! Only hardware maker knows what knobs are chaging what - and they are not saying. This knowleadge is embedded in Windows- driver or, even worse, control program for said driver - and does not exist in any other form...

We can try to build such a system - but right now, today it'll support just a few cheap soundcards. Where you just don't have enough knobs to organize complex scheme and so all these simplifications are not needed anyway...

If only if was so simple!

Posted Apr 29, 2009 21:19 UTC (Wed) by russell (guest, #10458) [Link]

The fact that it's embedded is the Windows driver probably means that it's useful information. Perhaps we ( Linux distros ) should start collecting and using this information too.

If only if was so simple!

Posted Apr 29, 2009 21:32 UTC (Wed) by JoeBuck (subscriber, #2330) [Link]

It's true that in many cases we don't have the knowledge to build the right diagram. But in many cases we do: for a standard laptop sold by a reasonably Linux-friendly company, or from a Linux-oriented reseller.

We couldn't expect the schematic to be filled in by asking the sound card, because the sound card doesn't know (or the driver isn't exporting what it does know, like what's plugged in to what). But I still think that it's an ideal to aim for. When the user has built the box herself, she could edit the diagram to match. It would be more useful than an array of ten sliders.

If only if was so simple!

Posted Apr 29, 2009 22:03 UTC (Wed) by farnz (subscriber, #17727) [Link]

For the case of HDA codecs (the majority of modern on-board sound chips), ALSA does has this information. Look at codecgraph to see how it can be drawn - and note that ALSA knows which of the nodes it's sending sound to or controlling with a mixer control.

If only if was so simple!

Posted May 1, 2009 13:25 UTC (Fri) by broonie (subscriber, #7078) [Link]

This stuff is all published by the hardware vendors (potentially not in public datasheets but still) - the audio devices really aren't usable without this information.

Can you hear me now?

Posted Apr 29, 2009 21:14 UTC (Wed) by russell (guest, #10458) [Link]

That's one of the most sensible ideas I've heard.

Can you hear me now?

Posted May 1, 2009 13:30 UTC (Fri) by broonie (subscriber, #7078) [Link]

There's quite a bit of demand for this - it would really rock in the embedded space where we're already collecting the audio routing information and it's is typically *much* more complex than what you see in a PC once get to something like the audio hubs used in mobile phones.

If I get my act together next year I may try posting this as a suggested GSoC project for ALSA or the kernel.

Can you hear me now?

Posted Apr 29, 2009 17:05 UTC (Wed) by mezcalero (subscriber, #45103) [Link] (15 responses)

Hmm, so we are now continuing this awful flamefest from fedora-devel here on LWN.net?

Gah, there's really no need to heat this up again. Everything that needed to be said has been said. I wished LWN wouldn't report about every second fedora-devel flamewar.

Can you hear me now?

Posted Apr 29, 2009 17:16 UTC (Wed) by corbet (editor, #1) [Link] (3 responses)

This particular discussion is quite likely to spread beyond Fedora when the volume control does. It also exhibits the tension between simplifying an interface and retaining needed functionality. I sure hope that the flame war does not persist here, but I do think that describing issues like this and their resolution is important.

Can you hear me now?

Posted Apr 29, 2009 17:33 UTC (Wed) by kh (guest, #19413) [Link] (2 responses)

I don't know if it is because of similar cleanup issues or not, but I wonder if at least some of the problems have already spread to Ubuntu.

I did have to resort to vi to stop the pain in my eardrums on shutdown with Jaunty.

Can you hear me now?

Posted Apr 30, 2009 1:35 UTC (Thu) by alankila (guest, #47141) [Link] (1 responses)

On the other hand, running alsamixer on ubuntu actually addresses the hardware sliders, so this one particular pitfall mentioned on the article is avoided.

Can you hear me now?

Posted May 8, 2009 15:56 UTC (Fri) by ariveira (guest, #57833) [Link]

Not here in my Ubuntu 8.10 system. It shows only one slider for pulseaudio

Can you hear me now?

Posted Apr 29, 2009 18:51 UTC (Wed) by Yenya (subscriber, #52846) [Link] (9 responses)

Lennart,

I, for one, am glad that the topic has been reported on LWN. I do not follow a fedora-devel list, but this is clearly interesting even for us, Fedora (and other pulse-based distros) users, who will use the new pulseaudio really soon (in F11).

I am also interested in the way how the new pulse will handle my laptop, where with Master=100%, PCM=50% the sound is distorted, while with Master=75%, PCM=75% it is perfectly OK. I don't think it is feasible to call most of the sound hardware "crap" and refuse to work around it.

-Yenya

Can you hear me now?

Posted Apr 29, 2009 19:04 UTC (Wed) by mezcalero (subscriber, #45103) [Link] (1 responses)

ALSA includes dB information for most its sliders. While it is not always clear what the reference level for those dB values is for the 'inner' sliders such as PCM it usually means amplification relative to the previous element in the pipeline. It is hence a good idea to set them to 0dB.

The % scale most mixers expose is pretty useless.

Can you hear me now?

Posted May 7, 2009 3:14 UTC (Thu) by obi (guest, #5784) [Link]

That's actually great! I've always been struggling trying to get maximum volume without distortion by trying to find the "right" percentage for master/pcm etc. I definitely won't miss having to tweak them manually, I look forward to the day this feature hits my distro.

Can you hear me now?

Posted Apr 30, 2009 10:20 UTC (Thu) by nhippi (subscriber, #34640) [Link] (2 responses)

> I am also interested in the way how the new pulse will handle my laptop, where with Master=100%, PCM=50% the sound is distorted, while with Master=75%, PCM=75% it is perfectly OK.

This seems to be a relatively common case. ie. top 10% of master mixer slider is sound distorted and bottom 5% expose hissing. So it seems any generic "one slider" solutions should avoid pushing any of the (analog) mixer controls close the limit.

> I don't think it is feasible to call most of the sound hardware "crap" and refuse to work around it.

This seems to have been the attitude of alsa developers from the beginning.. IE "your integrated soundcard sucks, get a real multichannel one if you want play sounds from many apps at the same time"...

But, crapitalism rules, if the hw is good enough for windows, that's what is going to be put on pc's.

slighly offtopic, does anyone know of "digital-output only" soundcard that just pipes the sounds to my dedicated amplifier with a digital input? And, ofcourse, works without problems in Linux..

Can you hear me now?

Posted Apr 30, 2009 12:31 UTC (Thu) by cladisch (✭ supporter ✭, #50193) [Link]

> does anyone know of "digital-output only" soundcard that just pipes the sounds to my dedicated amplifier with a digital input?

Any cheap onboard sound chip (HDA or AC'97) or CMI8738-based card with a digital output should work just fine for this; there aren't too many routing or amplification choices that could go wrong.

Can you hear me now?

Posted Apr 30, 2009 15:43 UTC (Thu) by mezcalero (subscriber, #45103) [Link]

First of all, on most drivers we have dB information. Hence setting anything to 100% or so is a bad idea. What makes more sense, as I already tried to make clear is to initialize to 0dB using that information. Forget about the % scale. If we habe the dB scale volume controls actually start to make sense!

And I often made clear that I think that onboard audio is more than good and is what I am focussing on. So if you claim we'd care only about proper external sound cards: that's complete and utter nonsense.

Can you hear me now?

Posted Apr 30, 2009 13:11 UTC (Thu) by zdzichu (subscriber, #17118) [Link] (3 responses)

Your doing it wrong. Do PCM=100%, Master=50% sound distorted? It's how PA will going ot control the volume, inner sliders to the max and outer to control actual volume.

BTW, if you happen to have soundcard with actual amplifier controlled by Master, you are hurting yourself by setting PCM to 50%. This way you decrease quality by reducing number of possible quantification steps.

Can you hear me now?

Posted Apr 30, 2009 15:44 UTC (Thu) by mezcalero (subscriber, #45103) [Link] (2 responses)

No, that's not how PA is going to do it.

PA will try to initialize the inner sliders to 0 dB! That is something different than 100%.

Can you hear me now?

Posted Apr 30, 2009 18:02 UTC (Thu) by rfunk (subscriber, #4054) [Link] (1 responses)

In the general case you're probably right. But I just checked on my old
SB Audigy2, and 0dB = 100%. I suspect that it's a common case if not
universal.

BTW, I'm happy to have the dB info; last time I looked at alsamixer I
don't remember that being there.

Can you hear me now?

Posted May 1, 2009 13:38 UTC (Fri) by broonie (subscriber, #7078) [Link]

0dB is a generally good reasonable default - where that is on the scale is largely irrelevant. If it's at the top of the scale then you have an attenuation only control and full scale would (typically) not be expected to clip or distort, it's mostly amplification where this is a concern.

Can you hear me now?

Posted May 6, 2009 10:56 UTC (Wed) by jschrod (subscriber, #1646) [Link]

Well, I found it interesting -- being not a Fedora, but a SUSE user, where PA is used by default as well and similar changes might be upcoming. And, as usual on LWN.net, the article was informative, not continuing any flame war.

Just because you are reading fedora-devel and are obviously involved in the development does not mean that we non-Fedora users are not interested to learn what happens in one of the major Linux distributions. This kind of information is what makes LWN.net so attractive.

More difficult to solve on embedded systems

Posted Apr 29, 2009 17:31 UTC (Wed) by lrg (guest, #48782) [Link]

ALSA mixer complexity is something I've been looking at wrt embedded devices since starting the ASoC project several year ago.

Mobile phones typically have more complex audio requirements than PCs or laptops and subsequently have a larger alsa mixer footprint (IIRC openmoko gta2 had 80+ controls). Phone hardware also usually has several different use case specific playback/capture volume controls and numerous controls that alter the audio routing (use case) within the device. i.e. the volume controls can change depending on use case.

I do think PulseAudio is on the right track here by providing a simple audio control that will satisfy *most* users needs (esp on PCs atm). I'm currently working on a library that will be able to give PulseAudio hints on the correct control for each use case on complex embedded devices. e.g. playback volume for headphone vs playback volume for handset.

More info is here if anyone is interested :-

http://www.slimlogic.co.uk/?p=40

Can you hear me now?

Posted Apr 29, 2009 17:58 UTC (Wed) by Trelane (subscriber, #56877) [Link] (1 responses)

two words: bike shed. :)

Two words

Posted Apr 29, 2009 18:15 UTC (Wed) by ncm (guest, #165) [Link]

No, "train wreck".

Can you hear me now?

Posted Apr 29, 2009 20:09 UTC (Wed) by jengelh (guest, #33263) [Link]

“Nobody can hear my comments!”

>an unbelievable mess of confusing sliders. See this image for an example.

Seriously, if you have that many sliders on one card, it must be a good one. I have seen utter crap on-board soundchips that have even less mixers than pcspkr.ko. Then again, 10+ chorus sliders? What for? Angels won't start singing even if you up them all.

Yeah, I side with "do it Windows style", i.e. display Master, Master Mono, Headphones, PCM, Line, CD, and Mic by default. kthx. Is that really so hard?

Can't possibly work

Posted Apr 29, 2009 20:26 UTC (Wed) by jmorris42 (guest, #2203) [Link] (1 responses)

One slider can't possibly work. Period end of story.

Problem the First:

Too many cards have poor (none) documentation or worse incorrect documentation. Manual intervention will be required to get those systems making sound. After it is working a single slider could work for the uninteresting use cases, see below.

Problem the Second:

Everyone doesn't have a simple desktop with two speakers (and perhaps a sub) hooked to a single port. Or a laptop with only the internal speakers ever being used. For example my Thinkpad has a seperate slider to control the built in speaker and another to control the line out on the dock. Unless Pulse is going to get smart enough to detect the dock and mute the internal speaker for me I need a second control exposed. Or I can open the lid and fiddle with the buttons on the keyboard I suppose.... NOT.

On my desktop I had to experiment to find the right position of the MASTER, PCM and VIA DXS mixers to give enough output level to drive my speakers without audible amplifier hum yet low enough to prevent horrible clipping in the sound card's analog circuits. Unless Pulse is going to develop an extensive database these issues will always require manual intervention.

Other people have surround sound systems that the tech for is anything but settled, thus frequent manual setup and adjustment.

Basically, it isn't going to "Just Work" and this attitude at GNOME that "We will make all these decisions for you, so don't you worry yer pretty little head none 'bout all that scary tech stuff." is getting a bit tiresome. Yes things should be made as simple as possible. But no more. That second part appears to be going right over the heads of the GNOMEs. If we wanted to trade simplicity and kewl design for usability I think we all know the URL of the Apple Store.

Can't possibly work

Posted May 7, 2009 11:18 UTC (Thu) by ovitters (guest, #27950) [Link]

If you cannot reply politely, suggest to refrain from replying. Your comment is not constructive with things like "going right over the heads of the GNOMEs".

This was solved once already

Posted Apr 29, 2009 21:56 UTC (Wed) by ikm (guest, #493) [Link] (3 responses)

Just do the way Windows does. That's not trolling, seriously - I like the way they did.

This was solved once already

Posted Apr 29, 2009 23:01 UTC (Wed) by jmitchel (guest, #11611) [Link] (2 responses)

Which version of Windows? Vista is just as cussedly bad! The speaker output is almost never loud enough on my new laptop, except when it is, and I can't find any secondary sliders to twiddle to set things right.

This was solved once already

Posted Apr 29, 2009 23:24 UTC (Wed) by ikm (guest, #493) [Link] (1 responses)

Never saw Vista, but XP had it ok. Single click on a tray icon brings you a master slider, double-click shows more sliders -- but not like on that screenshot, of course, usually around 10 at max. You can opt-in to show some more in the options.

I think the root of the problem is in Alsa. It doesn't try to differentiate between different types of controls. Whoever was designing this haven't thought that through, I guess. And also the fact that driver writers don't all eat the same dog food -- if you develop a driver under Windows, you've got that mixer app already and you'll surely check if it looks alright or not. Under Linux, well, no UI's a standard. I think it is some kind of a Linux immaturity stereotype -- there are always too many options, and no one's good enough. Or, returning to the initial topic: either have just one control, or whole hundreds of them. No middle options :)

This was solved once already

Posted Apr 30, 2009 0:24 UTC (Thu) by drag (guest, #31333) [Link]

Well the difference is that Alsamixer is low-level. It's actually reflecting the capabilities of the card and the drivers. I have a feeling that many of the mixers are proceedurally built simply from hardware features.

With Windows 2000/XP they introduced Kmix, which is a mixer for the Win32 sound system. Thus everything you do in Windows is software mixed, from the beginning. Then, I beleive, it's up to the sound card makers to provide their own applications and mixer controls for situations were they have features that can't be controlled via the bog-standard Windows stuff.

Which is why you end up with people bitching and moaning about creative drivers and their bloated apps and stuff in Windows. They need all that because the functionality they need are not provided for by the operating system.

And on top that you have huge latency issues and other things that affect Windows users. Similar to what people are running into with PulseAudio. (of course PA is not nearly as mature right now, as the Kmix stuff that was introduced with Windows NT-based desktops)

Of course for the needs of psuedo-professional purposes.. like doing high quality recordings, running low-latency recording, multiple I/O streams and such things.. then any sort of functionality provided for Windows is a complete wasteland.

The audio industry for the longest time stuck with Windows 9x systems and Mac OS systems due to the performance latency issues that newer versions of Windows introduced.. but since Microsoft is the dominate force in PCs and everybody uses them people eventually relented and created their own audio and driver stack for Windows XP called ASIO.

In order to use ASIO, of course, you need special hardware that supports is and you need to use special drivers. This, of course, conflicts with the normal operation of Windows audio.

All in all Windows audio in XP is quite a bit of a cluster-fsck. The only reason it works as well as it does is becuase of the huge amount of money and effort poured into it by the industry and individual card manufacturers providing their own sane default settings and so on and so forth.

The nice thing about Alsa is that it avoids all that stuff.. the drivers are suitable for high performance as well, with the addition and growing maturity of Pulse-Audio, is gaining usefulness as the desktop.

I know that the Windows interface may seem simple and attractive, but it's actually quite a bit more confusing then at first blush. Getting high quality mic results out of it is actually kinda confusing and can take a long time to get set just right.

Which is probably why Microsoft scrapped the whole thing for Vista.

Of course that is nothing compared to the current state of Linux audio confusion.. but what can you do?

----------------------------
----------------------------

Probably the most correct approach is a policy-driven or profile-driven way to setup the drivers.

Does the user want... Stereo out? Digital out to a receiver? 5.1 Surround sound? 7.1 surround sound? Quadraphonic sound? Ac3 or DTS pass-thru? etc etc.

The user selects the profile and the UI adjusts accordingly, hiding all the little weird tweaks that needs to be done on Alsa's low-level. Doing that will easily surpass what you can get in Windows in terms of user friendliness.

Having a 'Expert Mode' is just admitting failure and is a fundamentally broken design.. but it may be necessary for the time being.

What is ultimately needed is a 'sound card tweak database' that can be used to answer such questions as "What low-level settings on the card can lead to working digital output?" and "What low-level settings lead to the Mic being useful". Then tie that into udev or hal or devicekit or whatever then hell is going to be used to keep track of driver settings.

Of course the difficult part is gathering that sort of information...

Can you hear me now?

Posted Apr 29, 2009 22:57 UTC (Wed) by eklitzke (subscriber, #36426) [Link] (1 responses)

*sigh*

I've been using Ubuntu for a long time on my laptop at work, and had just recently installed the F11 Beta over this, since that's what I've been using at home and I prefer Fedora. I ended up switching back after a couple days to the latest Ubuntu release over this because audio was messed up in Fedora.

In my case, I'm using an older Macbook Pro that has some sort of headphone detection problem. When headphones are plugged in, the volume on the front speakers are reduced, but not all of the way. This means I can't listen to music or do anything else audio-related since it's distracting for everyone else nearby. The solution I've been using up until now is to just mute the front speaker device; this works great because I had headphones, so I don't care about the fact that the speakers don't work. Unfortunately I couldn't figure out how to do this with the new Pulseaudio tool in Fedora. The alsamixer tool was also displaying to me a single output device, without knobs to change the front speaker/headphone volumes indepently.

I know this is kind of a corner case, and if the hardware just worked it wouldn't have been a problem. But as we all know, the hardware doesn't always just work. If the Fedora developers end up changing this, I have Fedora installed on another partition, so I might try switching back...

alsamixer

Posted Apr 30, 2009 5:34 UTC (Thu) by tialaramex (subscriber, #21167) [Link]

alsamixer can be instructed to talk to a specific device instead of your default (which is now PulseAudio)

e.g "alsamixer -c 0" shows the low-level mixer for the first card, or "alsamixer -D any-device-name" if you know the ALSA device name of the mixer you are interested in.

This is obviously not an adequate solution for my mother, but it should get you back where you were before.

Signal vs. noise

Posted Apr 30, 2009 12:10 UTC (Thu) by stickster (guest, #40146) [Link]

I hope that people who are interested in improving the situation read this message from Adam Williamson on fedora-devel-list:

http://www.redhat.com/archives/fedora-devel-list/2009-Apr...

There are instructions in that message for helping to identify problems with their sound card drivers that are being exposed by PulseAudio's volume control change. Please take the time to download and burn the Fedora 11 Preview on a Live CD, follow these instructions, and file a bug with results.

Can you hear me now?

Posted May 1, 2009 11:42 UTC (Fri) by liljencrantz (guest, #28458) [Link]

I'm still having occasional problems with Pulse Audio killing all sound on my system on Intrepid. The extra functionality provided by PA is of the «nice to have» variety, but for a lot of people, getting sound out of their computer is critical. For well over a year, we have been experiencing highly reduced reliability in a critical functionality in order to obtain a couple of «nice to have» functions. This is very bad prioritising.

Can you hear me now?

Posted May 2, 2009 6:27 UTC (Sat) by sfink (guest, #6405) [Link]

In my long and ultimately unsuccessful struggle with Linux audio, I did come to the opinion that Pulse is on the right track technically. My main issue is that I wanted both low-latency triggered audio and zero-dropout music tracks at the same time. Sounds simple, but as far as I could tell, was impossible by design in everything up until Pulse.

In Pulse, it's merely impossible in practice. I get more glitches in its glitch-free playback than I did pre-Pulse (I'm using Fedora 10). But the underlying design seems like it may eventually lead to functional audio, finally.

I've also noticed that the various audio projects seem to attract some of the least empathetic developers around, people who are willfully clueless about usability. That happens in a lot of areas, but some areas -- like audio -- seem to actively chase away the people who could actually make things work nicely for other people. The pack senses the lack of purity and exploits it as a weakness or something.

Can you hear me now?

Posted May 8, 2009 11:57 UTC (Fri) by muwlgr (guest, #35359) [Link] (1 responses)

I use KUbuntu 9.04 on my laptop (very simple system with snd_hda_intel driver) and I have lost an ability to record sound from its embedded microphone perhaps since the arrival of 8.10. In 8.04, that mic "just worked" in my Skype for some now unknown reason. Under Windows, it still works well. Do I have a reliable way to determine what channel name corresponds to my embedded mic and how to unmute it ? Skype gives me a list of channels with 'hw' or 'plughw' in the name, as well as variances of each with the number '0' or '6' after the comma. Total of 4. As 'Default' choice does not work, I am probably supposed to guess by myself which one of these is correct. And then, every of them could be muted, and I am supposed to know how to really unmute them and control recording gain level. In KMix, I see the proverbial picture very similar to shown above (why-alsa-sucks), only a little shorter. Of course there is no any hint about which is hw/plughw/0/6, but anyway I am able to guess that 'Front Mic' is a suitable input source for my case, as by unmuting it I can hear interference whistle from laptop's speakers, also it really reproduces other sounds heard around of it. I set 'Input Source' to 'Front Mic' in KMix but still have no luck of getting these sounds into my Skype (complete silence is heard in test calls). I turn 'Capture' on, or off, ho changes.

There should really be an understandable and convenient testing tool for sound inputs of the system (mic built-in or mic plugged into socket, as well as line input), and also accessibility of these inputs to the sound-system-of-the-day (oss-alsa-arts-gstreamer-pulseaudio-phonon-qtaudio-whatever). Like Sound Recorder in Windows, for example: if it works and I see waveforms and can hear them back, every other multimedia app should work as well. Else it is going to be useless for me. Soon I am going to reboot into Karmic 2.6.30-2 kernel in the hope this could give me any help. But now, I really really feel myself in the hell, and a prolonged hell.

Can you hear me now?

Posted May 9, 2009 4:47 UTC (Sat) by muwlgr (guest, #35359) [Link]

Ok, the mic is fixed now with 2.6.30-2. But anyway, it was a memorable hell.


Copyright © 2009, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds