microsoft / microsoft/PowerToys
[New Utility] SyncWave - Multi-Device Audio Routing with Per-Device Volume & Latency Control
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Description of the new feature / enhancement
I am proposing a new utility called SyncWave that allows users to stream system audio to multiple Bluetooth, USB, and wired devices simultaneously.
The expected behavior includes:
Multi-Output Routing: Casting system audio to multiple connected output devices at the same time.
Per-Device Volume Control: Providing independent volume sliders for each active output device.
Granular Latency Adjustments: Offering a built-in delay/latency offset slider for each device to fix sync issues and eliminate the "echo" effect that occurs when outputting to mismatched hardware.
### Scenario when this would be used?
Windows currently lacks native, granular support for outputting system audio to multiple distinct devices seamlessly.
Common Power User Scenarios:
Shared Listening: Two people want to watch a movie on a Windows laptop using two separate pairs of Bluetooth headphones. Currently, this results in out-of-sync audio or requires complex third-party software.
Seamless Transitions: A power user wants their audio routed to both their desktop speakers and their wireless headset simultaneously, but with different volume levels and latency offsets to prevent echoing.
Currently, workarounds involve bloated third-party tools like VoiceMeeter, complex virtual audio cables, or the basic Windows "Stereo Mix" (which completely lacks latency correction). A native, lightweight PowerToys utility would solve this highly requested power-user pain point without the bloat.
### Supporting information
I have already built a fully working proof of concept for this utility. The core logic is built entirely in C# and .NET, handling the audio hooking, routing, and latency offsets.
Because the backend is already in .NET, it aligns perfectly with the PowerToys architecture. I am fully willing to adapt my frontend to WinUI 3 so that it integrates seamlessly into the standard PowerToys settings dashboard.
You can view the working C# repository here: [https://github.com/NARESH-ASHOK-MALI/SyncWave](https://www.google.com/search?q=https://github.com/NARESH-ASHOK-MALI/SyncWave)
ScreenShot before Syncing:
ScreenShot After Syncing:
Contributor guide
Research direction
Start by reviewing the linked SyncWave C# proof-of-concept repository and comparing its audio hooking, routing, and latency-offset approach with the PowerToys architecture. Then investigate the WinUI 3 integration requirements; the feature is complete only when multi-device output, per-device volume, and per-device latency controls are defined and integrated into the standard PowerToys settings experience.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- audio-video-rtc, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100