Hi all, Sound is always a pain in the labonze. It's even more so when you're always plugging in and removing USB microphones and webcams. So I developed a system for easily making sure that when the card number of my sound card changes, I can quickly address the situation.
First of all, I stopped running the alsa daemon. I found it unnecessary, and I found it just complicated sound troubleshooting. So I removed it from runit and it no longer tries to start. My system consists of three files: 1) ~/.asoundrc 2) alsa.sh that is on $PATH 3) whatever.sh (name it what you want) that is on the path. ============ ~/.asoundrc ============== # CRITICAL!!! For "hw:num:othernum" in slave, match num to card number # CRITICAL!!! See comments at bottom for readout of card numbers pcm.!default { # Must be type plug type plug slave.pcm "my_arbitrary_name" } pcm.my_arbitrary_name { # Must be type dmix type dmix # Must be ipc_key 1024, I don't know why ipc_key 1024 slave { # Card comma device. Device is probably 0 # Preceding numbers are what needs to change # If your card order changes. # cat /proc/asound/cards for list pcm "hw:1,0" # Following stuff probably unnecessary, possibly harmful, # but might help with certain songs #period_time 0 #period_size 1024 #buffer_size 4096 #rate 44100 } } ======================================= ============ alsa.sh ============== #!/bin/sh lxterminal -e "alsamixer -c 1 -V playback" ======================================= ============ whatever.sh ============== cp -p .asoundrc asoundrc.bup echo '' >> .asoundrc echo '' >> .asoundrc echo '# WARNING: Must change card number in both' >> .asoundrc echo '# ~/.asoundrc and /d/bats/alsa.sh !!!!!' >> .asoundrc echo '# Use Vim :bn, which is next buffer,' >> .asoundrc echo '# to access alsa.sh!!!!!' >> .asoundrc echo '# The -c arg in alsa.sh is the card num!!!!!' >> .asoundrc echo '' >> .asoundrc echo '#========================================================' >> .asoundrc cat /proc/asound/cards | sed -e's/^/#/' >> .asoundrc echo '#========================================================' >> .asoundrc echo '' >> .asoundrc echo '# Delete this comment and stuff between equal signs when done troubleshooting.' >> .asoundrc gvim .asoundrc /d/bats/alsa.sh ======================================= Some of the longer echo lines in whatever.sh might wrap in your email, but you get the idea. So when you run whatever.sh, both ~/.asoundrc and alsa.sh come up in Vim, with the bottom of ~/.asoundrc containing info about which card is what, so you can easily change the card number in both ~/.asoundrc and alsa.sh. The reason I created this system was that I never again want to take 10 minutes fixing a "no sound" symptom while in a Jitsi meeting. I'm figuring with my new system it will be about 30 seconds and if I play it right, my fellow meeting attendees won't even know :-) By the way, this system is made for an ALSA-only computer. If Pulseaudio gets thrown into the mix, I'm sure this system will need to be substantially expanded. SteveT Steve Litt Spring 2021 featured book: Troubleshooting Techniques of the Successful Technologist http://www.troubleshooters.com/techniques _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng