So, I have a speakers, a usb headset, and HDMI output available to my system and would like to switch which is used by any specific application, or all of them on the fly. So far I am able to use asoundconf to swap which device is used when a new application opens however I haven't found a way to do this by dynamically.

I would prefer not to use pulseaudio if possible. Any suggestions?

1 Answer 1


If you only want to use one output device at a time, you could copy the streams to all output devices and switch which one isn't muted instead.

If you want to use two outputs at a time, you could create three virtual devices, each of which copies to two different outputs, and only mute one of the outputs. This would restrict which devices an application using those could output to, though.

The catch-all solution would be to have three virtual devices that copy to two of the other virtual devices of the previous paragraph each. These "top level" devices could output to all three outputs, but with selective muting of the virtual devices be restricted to two or one each, which can be different for up to three sets of applications, but is unwieldy to keep track of.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .