today's rabbit hole:
Giving pipewire a third chance to do my audio routing for me
I think it clicked today, and I have the solution I was hoping for in the first place!
I have an USB audio interface with a built in mixer (so that I can for example control the volume of music and a game independently with a physical fader) and it obviously doesn't have any first party linux software support - all my computer sees is a single device with 10 input channels, with no way of knowing that channels 4 and 5 are meant for "music"
My first attempt at this was with qpwgraph which technically worked, but failed to start about once a week, and it really didn't like me unplugging the interface. The 2nd one involved two null-audio-sinks and still qpwgraph - that at least made it so that I only had to reconnect four channels when the config got screwed up again, but it didn't do anything about the occasional crash
Today's success involved the loopback module, which has the neat option of specifying a preferred target device to pipe the audio to - and apparently that just does not care if the preferred device disappears, it reconnects just fine when available
So now I have two new virtual audio devices that are there no matter what, can do all my routing through the system's native audio settings, and the whole thing doesn't go belly-up when I turn off the interface, and the whole thing only needs a single config file and no external dependencies other than pipewire! Wohoo!
In case anyone's interested (or I need this again in four years), here's the config: https://gist.github.com/Sirs0ri/5f18c26d9380d91fe3d53aea591df0f4
#pipewire #RodeCaster #AudioInterface