Speaker Sync is a small Windows desktop utility made to solve a very specific problem: when a PC and its Bluetooth speakers fall out of sync, the audio arrives late and the sound feels off. This app lets you route one input stream to multiple outputs and compensate for delay on each speaker independently.
It was built to help with that frustrating "Bluetooth speakers are slightly behind the PC" issue, and it ended up becoming a practical tool for pairing multiple outputs with manual timing correction.
This project is intentionally lightweight and practical, focusing on solving the synchronization problem without unnecessary complexity.
- Captures audio from a selected input device
- Sends that audio to multiple selected output devices
- Lets you set a custom delay for each output in milliseconds
- Lets you adjust the volume of each output independently
- Works as a simple sync tool for devices that drift out of alignment
- Saves your configuration automatically so it can be restored when you reopen the app
Bluetooth speakers and other audio devices can introduce different amounts of latency, causing noticeable synchronization issues. Speaker Sync provides a simple way to compensate for those differences without additional hardware or complicated audio settings.
This project is released under the MIT License and is free for anyone to use, modify, and share.
This project is licensed under the MIT License. See the LICENSE file for details.
- Route audio from one input to multiple outputs
- Independent delay per output device
- Independent volume per output device
- Built for Windows with WPF and NAudio
- Supports multiple sample rates: 44.1 kHz, 48 kHz, and 96 kHz
- Automatically saves your output settings and restores them on launch
- Windows 10 or newer
- .NET 10 SDK
- A virtual audio source such as VB-CABLE or similar if you want to route desktop audio into the app
winget install Microsoft.DotNet.SDK.10Check the installation:
dotnet --versionFrom the repository root:
dotnet builddotnet runYou can also use the included helper script if you prefer:
.\run.ps1- Select your input device.
- Select your output devices.
- Choose a sample rate.
- Adjust each output's volume and delay.
- Click Start to begin routing audio.
- Use Auto Sync to calibrate the per-device delays.
- Keep the app running while you listen and tweak the delay values as needed.
This is a practical utility rather than a commercial product. It is intentionally simple, direct, and focused on solving audio synchronization problems.
If you want to improve it, contribute, or adapt it to your own setup, the project is fully open and free to use.
This repository is ready to be shared publicly on GitHub.
To create a release, create and push a version tag from the commit that should be published:
git tag v1.0.0
git push origin v1.0.0The GitHub Actions workflow builds a self-contained Windows executable and attaches SpeakerSync.exe to a release with the same version as the tag. Tags are not required to use the v prefix, so any pushed tag can be used as a release version.