I have 9 identical soundcards connected via USB to a PC running various audio rendering servers.
Each card is loaded in /etc/pulse/default.pa by disabling module-udev-dectect and manually loading module-alsa-card with device_id=[0-8] and card_name=various descriptive names e.g. sink_a.
These audio rendering servers need to connect to pulse sinks with the name corresponding to the function they provide (e.g. server_a needs to connect to sink_a, not sink_b,c,d...etc. so that audio is routed played on card_a to room_a)
The problem is that the cards change their device_id every boot, so if sink_a was device_id=0 on one boot, it might be device_id=1 on the next, causing playback through the wrong physical card.
What can I do to ensure that cards loaded with descriptive names in default.pa remain the same physical device on EVERY boot?