English · Русский
Headphones for a call. Speakers for a film. A shortcut for everything in between.
Smart Audio Switcher is a Windows tray app for switching audio outputs, controlling media and muting the microphone. Give each device a name and a hotkey, or let a scenario choose the output when you move between applications.
↓ Download the latest release · First minute · Report a problem
Actual WPF interface, rendered with example devices and scenarios. The current app interface is in Russian.
| Your devices | Your applications | Your controls |
|---|---|---|
| Keep headphones, speakers and other outputs in one list. Assign a name and shortcut to each. | Pick an application and the output it should use while it is in the foreground. Enable speaker fallback if you want it. | Mute the microphone, change volume and control playback without opening the main window. |
- Reconnect without rebuilding your setup. Saved hardware identity helps recover device bindings when Windows recreates an audio endpoint, provided the match is unambiguous.
- A reminder when you mute. An optional small overlay appears when you mute the microphone using the app's shortcut. It does not track mute changes made by other applications.
- Keep it in the tray. Choose startup and window-closing behavior, notifications and the overlay in settings.
- Get update prompts. The app checks GitHub at startup; a manual check is also available in the tray menu and settings.
Both builds are for Windows x64. The current release targets Windows 10/11.
| Download from Releases | What you need |
|---|---|
SmartAudioSwitcher_Full.exe |
The .NET runtime is included. Choose this if you are unsure which build to use. |
SmartAudioSwitcher.exe — Light |
Install .NET 8 Desktop Runtime, x64 first. The app download is smaller. |
Run the EXE directly; there is no installer. Settings are stored in %APPDATA%\SmartAudioSwitcher\settings.json, so moving the EXE alone does not move your configuration. To update manually, close the running app before replacing its EXE.
- Open the app and choose the actual Windows output in each device card. Rename the cards if you like.
- Click a shortcut button and press your preferred key combination. The initial headphones and speakers shortcuts are
Alt + HandAlt + S. - To create a scenario, open the target application, select it in Сценарии (Автосмена), choose an output and click +. Scenario switching follows the foreground application; it changes the Windows default output, not a separate per-app audio mixer route.
- Enable Автовозврат на колонки if you want to return to the speakers when leaving a matching scenario. This uses the second managed device card.
| Action | Shortcut |
|---|---|
| Headphones / speakers | Alt + H / Alt + S |
| Mute / unmute microphone | Alt + M |
| Volume up / down | Ctrl + ↑ / Ctrl + ↓ |
| Previous / next track | Ctrl + ← / Ctrl + → |
| Play / pause | Alt + P |
All of these can be reassigned. If Windows or another application already reserves a combination, choose a different one.
- If an older saved device disappears before its hardware identity has been recorded, you may need to select its replacement once. Ambiguous matches are not guessed.
- A settings backup is kept when a valid configuration is replaced. Diagnostic logs are stored in the application's AppData directory.
- The app currently has a Russian UI. Both English and Russian documentation are maintained here.
Built with C# / .NET 8, WPF, Windows Core Audio COM and Hardcodet.NotifyIcon.Wpf.
Build, run and check the project
Use Windows x64 and the .NET 8 SDK. From the repository root:
dotnet run --project SmartAudioSwitcherTo build the two release variants, run these commands inside the application project directory:
cd SmartAudioSwitcher
dotnet publish -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=false -o bin\Publish\Light_SingleFile
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o bin\Publish\Full_SelfContainedBoth commands produce SmartAudioSwitcher.exe in their respective output directories. For a release, the Full file is distributed as SmartAudioSwitcher_Full.exe.
From the repository root, run the regression checks and an isolated rendering check:
dotnet run --project SmartAudioSwitcher.Tests -c Release -- --renderThis command checks the test fixtures and renders XAML without switching your real audio devices. The additional hardware-switching test flags are for deliberate manual validation, not a routine build step.
To refresh the README images from the current XAML with example data:
dotnet run --project tools/ReadmeScreenshots -c Release -- .Found a switching problem? Open an issue with the app version, Windows version, output-device names and steps to reproduce it. Check diagnostic logs for personal information before attaching them.
The project currently has no license file. For reuse or redistribution permissions, contact the author through the repository.

