Handling Identical USB Sound Cards

September 10th, 2021
jammer, tech
My Pi Sound Box has two output channels, each on a USB sound card. One has a mic input and runs my whistle synth, the other has no audio input and runs fluidsynth. This worked fine, up until my first gig out (busking in the park) where it decided to swap the devices: my whistle card moved from hw:0,0 to hw:1,0, and vice-versa.

Here's someone else with the same problem in 2011.

Cheap USB devices don't have a serial number, and these two sound cards present identically. On the other hand, it's possible to identify them by their location in the USB tree:

$ for x in /sys/bus/usb/devices/*/product; do
    echo $x $(cat $x)
  done
/sys/bus/usb/devices/1-1.2.1.3/product USB Audio Device
/sys/bus/usb/devices/1-1.2.1/product 4-Port USB 2.0 Hub
/sys/bus/usb/devices/1-1.2.2/product HP Elite USB Keyboard
/sys/bus/usb/devices/1-1.2.4/product AXIS-49 2A
/sys/bus/usb/devices/1-1.2/product 4-Port USB 2.0 Hub
/sys/bus/usb/devices/1-1.3/product USB Audio Device
/sys/bus/usb/devices/usb1/product DWC OTG Controller

(lsusb --tree can do this too, but it's harder to read)

Since this is based on physical ports, it will be consistent across reboots.

It looks like you can write udev rules to tell the system how to map 1-1.2.1.3 to hw:*,0 (docs). Unfortunately, this was getting well beyond what I considered fun, so I gave up. I added a key combination to swap the outputs (commit), so if I notice it's wrong while setting up at a gig I can fix it. Possibly at some point I'll come back and deal with udev?

Comment via: facebook, lesswrong, substack

Recent posts on blogs I like:

Americans: call your senators today to stop the Save Our Bacon Act

The Farm Bill currently under consideration by the U.S.

via Thing of Things May 7, 2026

Fiddle Practice

For a while I wasn't learning how to play violin very well because whenever it was time to practice I didn't want to. I didn't really like practicing, because (1) it's boring, (2) I have better things to do, and (3) actually I guess there …

via Anna Wise's Blog Posts May 3, 2026

New Pony

I have a new pony. I got her from the Goodwill. Her name is "Rainbow" and her nickname is "Sparkles". We went the usual way, in the pink stroller. We went downstairs and I played with some of the toys. I found the pony in the toy area. …

via Nora Wise's Blog Posts May 3, 2026

more     (via openring)