On Tue, Jul 26, 2022 at 11:06 AM Tim via users <users@lists.fedoraproject.org> wrote:
Hi George N. White III:
> It would be helpful to have a tutorial "How to manage multiple audio
> devices" using slots. 

Yes!

> The capabilities to get around the order in which devices are
> discovered is there, but the user tools need a higher-level way to
> present and manage the priority and switch between devices.  I
> suspect a really effective solution might require some changes at the
> hardware level to support UUID's that would be the same when a (USB)
> device is moved to a different system.

If I switch on my USB audio device and then read the tail of dmesg, I
see this:

[508825.312474] usb 1-12: new high-speed USB device number 7 using xhci_hcd
[508825.424455] usb 1-12: device descriptor read/64, error -71
[508825.637493] usb 1-12: device descriptor read/64, error -71
[508826.514480] usb 1-12: new high-speed USB device number 8 using xhci_hcd
[508826.638210] usb 1-12: New USB device found, idVendor=1397, idProduct=0503, bcdDevice= 1.00
[508826.638221] usb 1-12: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[508826.638228] usb 1-12: Product: UMC1820
[508826.638235] usb 1-12: Manufacturer: BEHRINGER
[508826.638240] usb 1-12: SerialNumber: 04BBF4FF

If I switch it off, wait, switch it back on again, I see this:

[568753.073218] usb 1-12: USB disconnect, device number 8
[568766.062266] usb 1-12: new high-speed USB device number 9 using xhci_hcd
[568766.174287] usb 1-12: device descriptor read/64, error -71
[568766.387286] usb 1-12: device descriptor read/64, error -71
[568767.264274] usb 1-12: new high-speed USB device number 10 using xhci_hcd
[568767.387993] usb 1-12: New USB device found, idVendor=1397, idProduct=0503, bcdDevice= 1.00
[568767.388004] usb 1-12: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[568767.388011] usb 1-12: Product: UMC1820
[568767.388017] usb 1-12: Manufacturer: BEHRINGER
[568767.388023] usb 1-12: SerialNumber: 04BBF4FF

One would presume there's enough in there to associate the device with
a fixed ID.  Even if it fakes the serial number, it's different from
the other audio hardware in a consistent manner.  Some don't provide
much in the way of useful identifies, but they each use different
drivers:

HDMI audio through the monitor:
[    9.884206] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    9.890273] snd_hda_intel 0000:00:1f.3: irq 127 for MSI/MSI-X

On-board audio:
[    9.916659] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC892: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[    9.916663] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    9.916664] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[    9.916665] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[    9.916666] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[    9.916668] snd_hda_codec_realtek hdaudioC0D0:      Front Mic=0x19
[    9.916669] snd_hda_codec_realtek hdaudioC0D0:      Rear Mic=0x18
[    9.916671] snd_hda_codec_realtek hdaudioC0D0:      Line=0x1a

More about the on-board audio:
[    9.936627] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input7
[    9.937820] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input8
[    9.937879] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1f.3/sound/card0/input9
[    9.937938] input: HDA Intel PCH Line Out as /devices/pci0000:00/0000:00:1f.3/sound/card0/input10
[    9.937979] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input11

More about the HDMI audio:
[    9.938019] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
[    9.938060] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input13
[    9.938819] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input14
[    9.939107] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input15
[    9.939154] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input16

Outboard USB audio device:
[   10.753506] usbcore: registered new interface driver snd-usb-audio

[508825.312474] usb 1-12: new high-speed USB device number 7 using xhci_hcd
[508825.424455] usb 1-12: device descriptor read/64, error -71
[508825.637493] usb 1-12: device descriptor read/64, error -71
[508826.514480] usb 1-12: new high-speed USB device number 8 using xhci_hcd
[508826.638210] usb 1-12: New USB device found, idVendor=1397, idProduct=0503, bcdDevice= 1.00
[508826.638221] usb 1-12: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[508826.638228] usb 1-12: Product: UMC1820
[508826.638235] usb 1-12: Manufacturer: BEHRINGER
[508826.638240] usb 1-12: SerialNumber: 04BBF4FF

Switching the USB audio device off and on again is often enough to get
the device noticed by my system and sound go over to it.  I'm fortunate
that it's a device with a power switch.  Though I really shouldn't have
to do that.

My devices don't have a power switch, so I unplug the USB cable, but then I
end up wanting more front-panel USB ports.   I just installed Fedora on an
old iMac which has much better speakers than the HDMI connected monitor
so has reduced the need to connect better audio devices (by USB), but no
front ports unless you count the ones on the keyboard.
 
--
George N. White III