Even though Windows XP allowed to play audio through several devices simultaneously, newer versions like Vista, Windows 7 and 8 lacks this ability. You cannot play music through both headphone and line out, or digital S/PDIF out and HDMI out at the same time. The roots for this Microsoft decision can only be speculated.
Switching a default audio playback device requires at least 5 clicks, which is annoying and frustrating if you do it daily.
First you have to right-click the speaker icon in the system tray, then select Playback devices, then click on the desired device, then click Set Default and close the window.
Imagine you’re working with audio, trying to hear how it sounds through headphones and monitor speakers. Having to do 5 clicks over and over again to simply switch an audio output is over the top.
Naturally, attempts were made to speed up the process. On of the first ideas was to run mmsys.cpl (or mmsys.cpl ,0 to get the first tab) to open Control Panel Sound properties from command prompt, and then use some scripting software like AutoIt to simulate user clicking the buttons. This method is not elegant at all and has a major flaw: if any button is pressed during execution of the macro, it may not work.
A breakthrough was made by a Russian developer under the name of EreTIk who managed to reverse engineer the Microsoft API controlling the Sound options. The API is non-public to make sure driver and software manufacturers won’t abuse it: they could make programs that override the default playback device settings.
EreTIk released an utility called DefSound (password easylife), which rest in the system tray and allows the user to switch audio device from there. Unfortunately, the utility is very buggy and you still have to click several times to switch to the desired default playback device.
A better solution is to have an desktop shortcut for each playback device to switch it in one click. How to do that?
Another utility has been developed, based on EreTIk‘s discovery called PlaybackDevice (password easylife), which is a GUI for yet another utility, EndPointController.
The test machine has three audio outputs: HDMI through video card, analog speaker through audio chip and digital audio through the audio chip. Normal audio is played through HDMI by the display speakers, but for music and movies the playback device is switched to the digital output, which is hooked up to a 5.1 receiver via toslink. Analog speaker is not plugged in.
Running the PlaybackDevice.exe cycles the default playback device from HDMI to S/PDIF and back. The program also displays the appropriate output image on-screen during the switch. You may also use your own images by changing the .png files in Res\Images folder. Having the actual photos of your output devices displayed on activation is a great idea. Original bundled images with transparent background are stored in Res\Images_Original.
If you have more than 2 playback devices, you have to specify the exact amount in Res\settings.ini file:
Putting a shortcut for PlaybackDevice.exe on your desktop gives you a quick and convenient way to switch default playback device.
If you would like to switch to a specific device, you need to run the EndPointController.exe from Res folder with the number of the required audio device as argument.
You may create separate shortcuts for each playback device to make them default in one click.
A shortcut for PlaybackDevice.exe will cycle default playback device on each run.