HomeSounds Sync plays Apple Music through your HomePods and your Mac's wired speakers at the same time — and gives each speaker its own delay so the late HomePod and the early desk speaker snap into a single clean sound instead of an echo.
The HomePod across the room arrives a fraction late, so vocals smear, drums double, and the whole space sounds like a hallway with the reverb stuck on. You've nudged volumes, unplugged a speaker, given up and picked just one. It was never the music. It was the timing.
AirPlay buffers audio before a HomePod plays it, so a wired speaker on your Mac runs ahead. HomeSounds Sync gives every local speaker its own delay that you tune by ear: nudge it up if the desk speaker leads, down if the HomePod leads, and stop the moment the echo collapses into one voice. Most setups land around 1.5–2 seconds. That moment — the room closing up around a single sound — is the whole point.
Apple Music stays on Computer output. HomeSounds Sync captures that stream with a Core Audio process tap, sends a delayed copy to each local speaker, and streams the same audio to your HomePods through OwnTone over AirPlay 2 — which keeps the HomePods in step with each other, so your local speakers only align to one reference.
Two HomePods in the living room, a wired pair on the desk, a DAC or a monitor in the closet — add as many as you have. The lists grow as your devices appear, and everything is saved automatically.
Tune each speaker by ear until the echo vanishes.
Multiple HomePods and multiple Mac speakers, together.
Wired, USB, monitor, audio interface, or DAC.
Speaker lists refresh as devices appear on your network.
Delay, volume, and selection persist across sessions.
Switch the whole UI on the fly.
MIT-licensed, with the full source on GitHub — the capture code, the ring buffer, the sync engine, the tests, the setup script. And the trade-offs, up front:
You'll need macOS 15+ (Sequoia), Homebrew, and Xcode Command Line Tools. setup.sh installs dependencies, builds everything, and wires up the audio.