Switch sound devices on Windows with a hotkey
SoundSwitch is a free open source program for Microsoft Windows devices that enables you to switch between sound devices using a hotkey.
You may sometimes need to switch between different sound devices, be it for playing sound or recording it. Maybe you have a setup that uses speakers by default, but you are switching to headphones when you use Skype or start playing games.
If you don't use a specialized software like SoundSwitch, you are stuck with making the changes using Windows configuration menus.
The main advantage that SoundSwitch offers is that you can switch between any playback or recording devices using a hotkey. It is a fast process that requires a one-time setup, and that SoundSwitch runs in the background.
Switch sound devices on Windows with a hotkey
You may need to install SoundSwitch with elevated rights, as it may not install otherwise. The application wants to install a certificate for making updates more comfortable, but you can disable the installation of the certificate during setup.
SoundSwitch displays all connected and disconnected sound devices in its interface on start. Playback and recording devices are listed separately in tabs, and the first thing you want to do is select the devices that you want to toggle between.
All that requires is to check any of the devices, connected or not, to add it to the list of devices that the program iterates through when you use the hotkey.
Please note that SoundSwitch uses different hotkeys for playback and recording, and that you can modify the hotkeys in the interface directly. This is useful if you run into compatibility issues with the default hotkey selection of Alt-Ctrl-F11 and Alt-Ctrl-F7, or if you prefer to use other hotkeys, for instance because you find them more convenient or easier to remember.
You may also double-click on the system tray icon of the program to toggle playback devices.
You can test the switching of sound devices right after you have selected at least two in playback and/or recording. When you hit the hotkey, the next audio device is selected provided that it is connected to the Windows PC at the time.
An onscreen hint displays the name of the device, so that it is easy to pick the right one if you have added multiple devices to the list.
The program settings provide you with options to enable the "switch default communication device" option as well. SoundSwitch changes only the multimedia device by default. Windows distinguishes between multimedia and communication, and if you enable communication, SoundSwitch will change both when you use it.
You may change the notification type as well in the settings. The default is the onscreen banner, but you may change it to a Windows notification, a (custom) sound notification, or a Toast notification.
Verdict
SoundSwitch is a handy tool for Windows users who switch between different audio devices regularly. It speeds up the process, and makes it more comfortable. The program uses about 13 Megabytes of RAM when it runs in the background.
we’ve been there before : nircmd dot exe setdefaultsounddevice
a knee way, thanks again, Martin, for triggering learning
PS my comment’s been rejected because of a keywording?
re-PS. Confirmed after replacing the “.” with “dot”… hummm, I wonder what the robot guard uses, an aAvast! database of suspicious substantives?
oops, looks like I dropped the last argument, which is the “DeviceName”
(and maybe the “” I used were the rejection culprits)
yes, it was the angle bracket which wasn’t “cool”, even between quotes (as shown missing just above)
over now
seriously? it’s not that hard to right click on the speaker icon in the taskbar tray, select either playback or recording devices to change defaults..
admittedly it’s a bit tedious to have to do it every time you update your nvidia drivers (if.. for example you use display port for the monitor and uses its speakers)
more usually you can just do them within your programs like vlc or what not, so certain programs can default to different devices if that’s your thing (especially if it’s simply whether it uses sound or communication devices)
I was not aware of this software.
I use AudioSwitch (https://github.com/sirWest/AudioSwitch) who does pretty much the same thing (there’s also https://audioswit.ch/er that I know of).
thanks this absolutely nailed exactly what I wanted – makes it so easy to switch between my headphones and monitor soundput.
Somewhere I found this commandline executable “EPC.EXE” a long time ago. With no arguments it lists the audio devices, numbered from zero. Given an argument of one of those numbers, it sets the playback device to that device. I have no idea where I found it, and there is no identifying string inside the file. :( Its MD5SUM is b4eb8d2d3e57376340bc7bdc79bff96c and it is 7168 bytes.
Example:
D:\util>epc.exe
Audio Device 0: Speakers (Realtek High Definition Audio)
Audio Device 1: Headphones (Plantronics .Audio 478 USB)
Audio Device 2: Realtek Digital Output (Realtek High Definition Audio)
D:\util>epc.exe 1
For several years I had an autohotkey script that invoked this; I could press Win-[ to set headphones and Win-] to set sepakers. Now, though, I find the Windows 10 audio switcher just fine: click the speaker icon in the system tray; then click the upward-pointing arrow next to the name of the current device; then select the device wanted. Bingo.
Found the source! Although it appears I don’t have the most recent version on my machine :)
https://github.com/DanStevens/AudioEndPointController
A Windows command-line program for listing audio end-points and setting the default
>EndPointController.exe –help
Lists active audio end-point playback devices or sets default audio end-point
playback device.
USAGE
EndPointController.exe [-a] [-f format_str] Lists audio end-point playback
devices that are enabled.
EndPointController.exe device_index Sets the default playback device
with the given index.
OPTIONS
-a Display all devices, rather than just active devices.
-f format_str Outputs the details of each device using the given format
string. If this parameter is ommitted the format string
defaults to: “Audio Device %d: %ws”
Parameters that are passed to the ‘printf’ function are
ordered as follows:
– Device index (int)
– Device friendly name (wstring)
– Device state (int)
– Device default? (1 for true 0 for false as int)
– Device description (wstring)
– Device interface friendly name (wstring)
– Device ID (wstring)
awesome thx for that find!
Martin, you sexy beast, this is exactly what I’ve needed since win10 broke my sound /////
Are you sure you’re not mistaking with Pants?
If you don’t know who Pants is then please consider my question as obsolete :)
Don’t make me blush ;)