I have a number of identical USB sound devices connected to a Linux machine via a 7-port USB hub (which, internally is two daisy-chained 4-port USB hubs). I’m accessing them using python-sounddevice. I need to ensure that the sound cards are available in the same order to python-sounddevice across reboots (or anything else that might happen to the system). The USB topology will not change across boots. python-sounddevice appears to use ALSA hardware addresses (e.g. hw:1,0) – how can I map these deterministically to specific devices in the USB tree (e.g. bus/port/device)?