macOS · free & open source
HomeSounds Sync app icon

One song. One sound.
Finally.

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.

Free · MIT · macOS 15+ · English & 한국어
two arrivals → one waveform
you know the sound

The song spills into the room twice.

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.

the fix, in milliseconds

Hold each speaker back by exactly the right amount.

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.

how it works

A small idea with careful plumbing.

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.

Apple Music → Computer output
↓ splits
Local speaker
delay 1.6s
Local speaker
delay 2.1s
OwnTone →
HomePods AirPlay 2
every speaker, its own clock

It fits your setup, not the other way around.

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.

Per-device delay

Tune each speaker by ear until the echo vanishes.

Many at once

Multiple HomePods and multiple Mac speakers, together.

Any local output

Wired, USB, monitor, audio interface, or DAC.

Grows live

Speaker lists refresh as devices appear on your network.

Saved per device

Delay, volume, and selection persist across sessions.

English & 한국어

Switch the whole UI on the fly.

open & honest

Honest tools age better than magic ones.

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:

  • About two seconds of total latency you can't remove — the AirPlay buffer is just like that. For music, only the sync between speakers matters.
  • Each local speaker needs its own delay; device latencies differ.
  • AirPlay 2 here leans on OwnTone's reverse-engineered support, so an Apple update could break it someday.
  • No account, no telemetry, no upsell.
run it yourself

Clone, run setup, flip your speakers on.

You'll need macOS 15+ (Sequoia), Homebrew, and Xcode Command Line Tools. setup.sh installs dependencies, builds everything, and wires up the audio.

# get the code and set everything up
git clone https://github.com/techjuicelab/homesounds-sync
cd homesounds-sync
./setup.sh