Thursday, 12 March 2009

Our new volume feature

The feature was some time in coming, but Jon bit the bullet, and created the new gnome-volume-control. I came in afterwards, and did bug fixing and small new features.

Compared to the old volume control, we're already winning in terms of ease of use: no more weirdly named ALSA mixers we need to work-around, easy selection of input and output devices, microphone level bar.

Even the applet (as well as the gnome-settings-daemon media keys plugin) is now simpler because it doesn't need to work-around weird sound cards, with weirdly named channels.

PulseAudio 0.9.15 brings a few new features that we'll be able to use in the near future, such as back/front fade, sound card profiles selection (one click to setup multi-speaker output), and probably even Bluetooth headsets integration. Speaker testing is also on the cards.

I haz 5.1!

Yay for the desktop with a modern sound system.

16 comments:

John said...

What about putting the left-right and front-back labels in a size group so they are the same width?

Anonymous said...

There needs to be an easy way to get to the old ALSAmixer controls as well, for example in my laptop there is a separate control for the subwoofer and if I use the regular controls to turn the sound down to 0, the subwoofer is still working. Previousely I linked Master and LFE channels to have a graceful sound regulation.

Also it is still frequent that people need to tweak tumbles to chose the correct microphone or turn on the right sound output.

Direct to hardware button exposing the old sliders is still needed. Otherwise we will be stuck saying to people to go into a terminal and run 'alsamixer -c 0' ...

Tretle said...

This is great news, I was a bit disappointed that the new volume control applet was taken out of jaunty because it was really good for setting allot of things up, like using my usb webcam as a microphone..
It was impressive stuff but the lack of controls for each speaker was a bit of a pain. I have a 7.1 system :D , Hopefully this will make it into karmic, is there any news about having the right amount of output controls show because that would be one more thing holding me back to alsa, alsa detects that I have a 7.1 sound system and shows me the relevant controls whereas pulse only ever showed me controls for the two front speakers unless I modify a config file.

Anonymous said...

Any plans to implement this http://farm1.static.flickr.com/20/70003494_668cfdc0dd.jpg
?

Pádraig Brady said...

Great no mention of PCM! That's one of my long time annoyances that names like that were presented to users.

Anonymous said...

@Anonymous: Such an user interface for quicly adjusting the volume independently for each application would be nice indeed!

Anonymous said...

@meastp and Anonymous
Have a look at:
http://code.google.com/p/gnome-pulse-applet/

Anonymous said...

Might be a modern sound system, but that GUI still looks like something out of the 1980's, I'm afraid.

triton said...

The Applications tab should definitely be the first, as it will be the most common use case a person will have in that volume window.

Sound effects should be last.

Anonymous said...

Would combining the balance and fade into one control makes sense? Something like this for people with speaker setups that support both.

Unknown said...

Wow...thats great for people living in some beautiful utopia. But for the 90% remainder of laptop users...WE NEED THE MIXER CONTROLS PRESENTED BY HARDWARE.

Unless you are willing to first fix everyone's system so that they work 100%, don't take away the mixer.

Kevin Kofler said...

@hadess: Good work! Now I just wish Phonon and KMix had PulseAudio integration like that. Work on better PulseAudio support is ongoing in upstream KDE, I guess I should help there. ;-) Phonon currently sees PulseAudio as one black box device and KMix can't touch its per-application volumes. Both somehow need fixing. I'm not sure how to get Phonon to see and send sound to the individual PulseAudio devices though.

@aigarius, Russ:

Well, if you need an ALSA mixer, you can always run alsamixer or KMix. (That said, having the option to configure the hardware volumes from the same app would be nice, but I guess having that many options would go against the GNOME philosophy.)

You'll also want to disable the "flat volumes" feature in PulseAudio (comment out the "load-module module-flat-volume" in /etc/pulse/default.pa) if you want fine-grained control of volumes.

Anonymous said...

One random comment on that dialog: choosing which output sound should go to should use checkboxes rather than radio buttons, since you might want sound to go to multiple places at once.

Anonymous said...

A test area would be nice for both output and input device. The input device can just be a level of sound detected, so you can test ur mic right away to see if it works rather than changing it and going to sound recorder constantly...

Anonymous said...

kevin: it's a bigger problem than you seem to realize. Quite a lot of chips - thanks to the generally crappiness of sound card design, and the fact that ALSA don't bother to try and mitigate this at all - require you to poke a mixer channel to get really basic functionality to work. In some cases you have to poke some obscurely named mixer channel in order to get any sound at all.

This change means there will no be no GUI app available in a default Fedora or Ubuntu install that will let you change these settings. Everyone will have to learn to use 'alsamixer -c0' (just plain 'alsamixer' usually gives you the PulseAudio 'card', which is no use), and learn how to use alsamixer (remember, most people won't automatically realize you can scroll the alsamixer screen to the right). Which sucks gigantic rocks.

This does need to be changed. And, ideally, ALSA need to start fixing this crap at a lower level, but that's not likely to happen, given past experience. :\

Anonymous said...

oh, and if you want to pick the input channel, you'll need to remember 'alsamixer -c0 -Vcapture'. is this the kind of thing we really want to be exposing to users?