I'll say it again to be clear - ALSA on the command line works fine (after I delete/modify .asoundrc after it's auto-broken by PIXEL).
The most seemingly contemporary answer I've found on modern Raspbian ALSA config was here (I have no idea where @Housni read about the slots
option being needed for recent versions of Raspbian, though). It seems that ALSA on Raspberry Pi is a bit funny and I don't see any official docs that are relevant to non-standard audio anywhere (just directions on HDMI or the PWM outputs). I have looked at MANY websites, including raspi forums, this SE site, Adafruit, and the ALSA docs.
My situation:
- I can set my USB device to default for alsa, as either device 0 or 1, except...
- .asoundrc gets regenerated each login to LXDE/PIXEL. Somehow it knows where the built-in device is and selects that card. Doesn't matter if a good .asoundrc was there vs. no such file.
- So, by default, I get the built-in sound on the command line after login, but I can edit/delete
.asoundrc
and everything's fine on the CLI. - The GUI (e.g.,
pimixer
aka "Audio Device Manager") ONLY seems to see the built-in audio. The USB card is visible via e.g.,aplay -l
, but not in the pimixer drop-down.
Based on the pimixer
README, it seems PIXEL (aka sorta LXDE) is using Gstreamer for GUI stuff.
As far as I can tell, this issue could reside in:
- LXDE
- PIXEL LXDE mods
- Gstreamer
- the XFCE4 mixer settings (pimixer related stuff)
- Pulseaudio
I trashed my .config
directory, and this doesn't change any behavior.
I'm open to simply using a different distro - I'm on an RPi3. I welcome solutions at any level!
I will also happily upvote comments / answers shedding light on some of the mysteries above, like:
- What is generating that
.asoundrc
? - What sound framework is Chromium talking to?
UPDATES
- this rpi SE post describes the same issue. The fix doesn't work for me. It also doesn't explain what's going on - it feels like breaking the system, not understanding it.
- this rpi forum post explains how that doesn't work for some people and how you can just disable the internal audio. This also doesn't work - pimixer says "No ALSA audio devices were detected." (
aplay -l
still shows my USB device - a Blackjack Onyx.)
pimixer
was already showing "bcm2835 ALSA (Alsa mixer) (Default)" in the Sound Card drop-down.