3

I am looking for a Alsa mixer GUI for Xfce (or better yet, desktop-independent) to replace PulseAudio Mixer. While I'm happy with the latter, my USB DAC is very poorly handled by PulseAudio and I need to remove it.

In the Alsa-based mixer I am looking specifically for the ability to:

  • detect plugged-in USB DACs
  • set default playback device for new programs (e.g. to USB DAC)
  • (optional) transparently change running programs currently outputting sound from one playback device to another (e.g. from integrated HDA PCH to USB DAC)

So is there a pavucontrol-like Alsa mixer out there?

landroni
  • 10,288
  • 12
  • 30
  • 48
  • These features are not implemented by ALSA but by PulseAudio. – CL. Jul 19 '15 at 10:57
  • @CL. Can I at least set the default playback device for new programs to the `USB DAC`? I tried things like `QasMixer` or even `alsamixer` to select the USB DAC as device, but new programs would still output things to the builtin laptop soundcard... – landroni Jul 19 '15 at 11:31
  • 1
    In a mixer, selecting a device just changes which mixer controls are shown *in the mixer*. As for changing the default sound card, this is a different question, which [has been asked before](http://unix.stackexchange.com/search?q=default+sound+card). – CL. Jul 19 '15 at 11:40

2 Answers2

0

As mentioned in the comments, Alsa doesn't seem to be able to transparently change running programs from one playback device to another, as this is a feature specific to PulseAudio. Moreover, selecting a device in an Alsa mixer will only define which mixer controls are shown within the mixer, and it has no bearing on the default sound card used by media players.

There is a minimalistic python GUI that allows to detect plugged-in USB DACs and set the default playback device for new programs: asouncdconf-gtk (originally written for Ubuntu with Xfce in mind). This utility relies on the asoundconf python script. Even if unmaintained for a number of years (last update in 2011), it seems to still be working alright on modern distros (e.g. Ubuntu 14.04).

enter image description here

Ubuntu users can install the packages from the asoundconf PPA (officially Ubuntu has decent support only for PulseAudio). For Arch Linux see Is there an easy way to switch playback soundcards?. But since it's Python code, it can run virtually on any distro: grab the Ubuntu .deb, unpack it with an archive manager, and put the scripts in /usr/bin.


Alsa's official docs only indicate a manual way to set a default soundcard:

Find the relevant card:

cat /proc/asound/cards

and then put in /etc/asound.conf:

defaults.pcm.card 1
defaults.ctl.card 1

Replacing "1" with the number of the relevant card. Hardly something you would want to do often, e.g. with a USB DAC.


Additional reading:

landroni
  • 10,288
  • 12
  • 30
  • 48
-1

You can use pavucontrol to set the default (and fallback) audio output device. But this needs pulseaudio (one of the reasons pulse was developed).

killermoehre
  • 161
  • 4
  • I'm specifically looking for a mixer app that is NOT based on PulseAudio, simply because PulseAudio plays very badly with my USB DAC... – landroni Jul 22 '15 at 10:14
  • Alsa can't do this. Alsa is for static setups with one sound card. No need to downvote my answer. – killermoehre Jul 22 '15 at 15:58
  • Surely Alsa allows to set the default playback device for new programs... (As it is, the answer doesn't address my original question.) – landroni Jul 22 '15 at 19:23