How can I switch an application to a different playback device on Windows 10

46

12

Googling for solutions to this problem seems to lead to third party solutions like this, sometimes with scripting like this. I'm no stranger to either, but It seems crazy to me that there isn't a better solution.

I'm on Windows 10. I use HDMI audio to my monitor from my AMD video card, and I use a set of headphones plugged into the back of my motherboard. I use both often, but right now I need to tediously switch the default playback device to switch between them (sometimes, for reasons I don't yet know how to replicate, I even need to fully disable the device currently making sounds.


This is what I see in the volume mixer after starting my computer up with AMD HDMI as the default, and opening Chrome to watch a video:

AMD HDMI is playing System Sounds and Chrome's audio.

When I switch to the Speakers device

About to select Speakers device.

I see that it is not assigned any applications, and I see no way to reassign applications:

Speakers device is lonely.

I can usually hammer all of the applications over to the Speakers device by switching the default playback device, and usually vice versa. But that sometimes that only switches some applications, and sometimes it doesn't do anything. But that's besides the point...

How can I assign an application to a specific audio playback device? The Volume Mixer looks like the right place, but it doesn't seem to do it unless I'm missing something.

kdbanman

Posted 2015-09-05T19:50:24.910

Reputation: 1 466

Question was closed 2016-11-19T13:18:53.180

2Like many others, I'm coming from Google. I'd just like to make an additional question: Why on earth would Windows recognize per-application audio output and yet does not allow us to change? It would be far better just not provide this feature at all and let us pick a single device for all output. It's so frustrating. – Henrique Jung – 2017-11-20T21:31:22.697

@HenriqueJung basically because is not a windows task to do so. What you change in windows is actually default audio device but application can select any audio device it likes. Some apps can handle this change and switch device when user switches default device but many may not. It's quit easier for OS to change volume of the app than force it to switch audio context. In many cases it may be even not posible. For ex. how to handle DTS sound on devices that dose not support it etc. That why windows left decision on which sound device should be played music to an application. – Logman – 2018-05-31T13:04:10.007

I wish this question wasn't closed without a single answer mentioning that Windows 10 does let you configure output, and input, audio per application. I also wonder why the hell Google always send me the duplicate instead of the original answer (well, observation bias -- I don't know there are duplicates when I'm sent to the original, but it still bothers me!). – Daniel C. Sobral – 2018-09-10T16:59:02.523

Answers

53

Found a free (GPL) alternate and thought I would throw it out there for anyone else stumbling in from google... before anyone throws away $20 to CheVolume or installs their adware-containing trial software (at least according to my AV scan on version 0.5.0.0, downloaded directly from their site).

found something called Audio Router on reddit / github / alternative.to

https://github.com/audiorouterdev/audio-router

I'm on Win 7 SP1 x64. I've only been playing with it for about 2 minutes but it's correctly playing my Firefox (youtube) audio through the TV and my game (SR3) audio via my headset with minimal effort. I think I might have a winner.

Will report back if I run into any probs. Otherwise, if all works I'll have to kick the guy a few bucks as a thank you; looked like there was a paypal link on his github page

spiritpyre

Posted 2015-09-05T19:50:24.910

Reputation: 841

This looks like the ideal solution. Do report back if you find issues. – kdbanman – 2016-06-10T03:56:35.880

4This seems to crash windows 10 apps. – Brain2000 – 2016-08-07T18:48:03.370

I was able to achieve this using Windows only. Set your default device to headphones and you're good to go. – alcfeoh – 2016-11-22T19:27:49.897

1It's amazing Windows doesn't have this. Forced to switch to Windows 10 in my new job after using Linux for 8 years and the sound control has been driving me insane it's so poor compared to Linux alternatives. – twigg – 2017-06-22T09:20:36.467

Also see this crashing some apps in Windows 10. NVidia ShadowPlay for one. Also cannot duplicate/reroute PUBG to a different audio playback device (e.g. Virtual Audio Cable). – Roy – 2017-11-01T16:44:09.460

Windows 10 tested working on the Fall creators update. Happily routing Chrome audio to speakers, Discord to headset – David Colwell – 2017-11-08T01:07:55.783

7

Go to "Playback devices" and disable the type of output you want to unassign from the app. The application will automatically switch to the next available sound output, and you can then re-enable disabled output device.

EasyCargo Support

Posted 2015-09-05T19:50:24.910

Reputation: 71

2And how do I assign an app back to that disabled output device? My question is about putting different apps on different playback devices. – kdbanman – 2016-08-15T21:05:01.620

Welcome to Super User! This is really a comment and not an answer to the original question. To critique or request clarification from an author, leave a comment below their post - you can always comment on your own posts, and once you have sufficient reputation you will be able to comment on any post. Please read Why do I need 50 reputation to comment? What can I do instead?

– DavidPostill – 2016-08-16T07:28:07.297

Alternately disabling the device you don't want to use would be tedious indeed. If, however, as happened with me on Win7, some apps started using a device they weren't supposed to and I never use, this is just the ticket. – CodeLurker – 2017-12-11T22:01:55.213

4

To the best of my knowledge Windows does not have the option to switch playback devices for programs that are currently playing audio.

Try the third-party program, CheVolume:

http://www.chevolume.com/

user2597747

Posted 2015-09-05T19:50:24.910

Reputation: 261

2

I'm sorry, but Windows just does not have a concept of an application-specific sound output device. Many apps just use whatever the default is. Some (the more elaborate "multimedia" apps) include an option menu that let you pick a device from a list, and most of them will let you save that as a default, but the app has to be coded to provide that option.

I like the scripting option. You start a program via a script that changes the default to whatever you want it to be for that program, then after the program is good and running, it sets the default back to whatever you want most programs to use. PowerShell can do this too.

Jamie Hanrahan

Posted 2015-09-05T19:50:24.910

Reputation: 19 777

8"Windows just does not have a concept of an application-specific sound output device.". But it happens quite often that my headphones are assigned one application and my speakers are assigned another. I just don't know how to control it. I'm willing to believe it's just a bug, but it is definitely windows assigning apps to separate playback devices. – kdbanman – 2015-09-06T14:04:45.227

I've worked on multimedia drivers and apps. I am unaware of any place to put "this is the default device for app X" except in the app's own settings. But, some apps are coded to look for certain types of devices first, or to use e.g. the highest-quality device, rather than the default. Windows has a separate setting for "default communications device" and e.g. Skype will use that device by default, as opposed to the "ordinary" default device. Failing that, comm programs may look for a device with a mic input (the HDMI sound device, for example, does not have one) and use that. Etc. – Jamie Hanrahan – 2015-09-06T20:23:33.097

I understand what you mean about I/O device types. That app settings config you're talking about - is it part of the .NET System.* API? Maybe the Environment.* API? Or is it lower level in the Win32 API? If I read those docs I'll have a much better understanding of what's going on, so I'd really appreciate a link or some keywords :-) – kdbanman – 2015-09-06T23:55:31.067

Scripts switching default device would not work in many cases since many applications will follow the switch immediately or upon certain action. CheVolume does work for a fraction of applications, but not nearly as much as you'd like and sometimes fails on those as well. It seems that this is an OS-level function that is just missing - why require the same feature to be implemented in all applications separately? – Jacek Gorgoń – 2016-02-26T22:41:37.160

@JamieHanrahan How? Is everyone in on some conspiracy to leave out easy solutions? There was a similar issue with google not supporting transparent proxy setting... Can you enlighten me as to why the pipe concept is too much to ask for? – Milind R – 2016-10-16T13:30:42.783

All I can tell you for certain is that it's not a technical impossibility. I imagine that Microsoft just doesn't think it's a widespread enough issue for them to build a solution into the OS. – Jamie Hanrahan – 2016-10-17T06:41:34.200

Windows 10 is perfectly happy to let you assign different input and output devices per application. – Daniel C. Sobral – 2018-09-10T16:56:50.450

@DanielC.Sobral That feature was added with the Spring 2018 update but it was not present in 2015 or 2016. Thanks for the useful update. Here's how to do it: https://www.howtogeek.com/352787/how-to-set-per-app-sound-outputs-in-windows-10/

– Jamie Hanrahan – 2018-09-10T18:13:48.537

@JamieHanrahan Interesting. The first time I wanted, which was last week, it was available, so I never considered the possibility it wasn't present before! – Daniel C. Sobral – 2018-09-14T17:52:57.003