AudioSync

Free and open source · for macOS 15 and later

Every speaker in the house, on the same beat.

AudioSync plays your Mac's audio on AirPlay speakers and the Mac's own outputs all at once. It lines them up, so you hear one song instead of an echo. Think of it as a free Airfoil alternative that does less, on purpose.

Free software under the GPL (GPL-3.0-or-later). Alpha, so expect a few rough edges.

The AudioSync main window: audio source, Now Playing, master volume, presets and the equalizer set to Loudness on the left; on the right, the Mac's own speakers, a Downstairs zone with two speakers in it and the connected speakers, each with a volume slider and, for local outputs, a sync delay

One Mac, every speaker

I wanted the music on my desk speakers and the HomePod in the next room at the same time. That's really all this does: it grabs the audio once and sends it everywhere you switch on.

Plays from

  • Everything the Mac is playing
  • One app, along with its helper processes
  • An input, like a mic, a line-in or an audio interface

Plays to, all at once

  • AirPlay speakers and Apple TVs
  • Built-in speakers and the headphone jack
  • HDMI or DisplayPort, USB and Bluetooth outputs
  • A Google Cast speaker (Google Home groups come in the next version)

Why it echoes, and the fix

Every speaker takes its own time to make a sound. AirPlay holds about two seconds of audio before it plays, while a speaker plugged into the Mac plays right away. Same song, two start times: it sounds like it's playing twice.

AudioSync holds back every output attached to the Mac by its own amount, so they all play the same moment of the song at once. The AirPlay speakers stay matched to one another as well.

Without a delay

Desk speaker
HomePod

With AudioSync

Desk speaker
HomePod
Left: the desk speaker starts about two seconds before the HomePod. Right: the desk speaker waits those two seconds, and both play together.

What's in it

A small Dock app with a main window, plus a compact panel in the menu bar for quick switching.

A delay for each speaker

Each local speaker sits anywhere from 2 seconds before to 20 seconds after the Mac's built-in speakers, and it changes live while you listen, so you can nudge it until the echo is gone.

Calibrate with the mic

Put the microphone where you listen. AudioSync plays a short sweep on the built-in speakers and then on a local speaker, and sets that speaker's delay from the difference. Measuring every speaker in one go comes in the next version.

A remote on your phone

Coming in the next version. Turn on Web Remote, scan its QR code and enter the pairing code. Your phone can then switch speakers, set volume and delay, and show what's playing. It uses plain HTTP, so keep it to your home network.

Volume, your way

One master volume for everything, and a separate one on every speaker.

A 10-band equalizer

32 Hz to 16 kHz, ±12 dB, a preamp and 12 presets. It's applied once, so every speaker gets the same sound.

Now Playing

Artwork, title and artist, with play, pause and skip, when the music comes from Spotify or Music.

Groups and auto-connect

Save a set of speakers as a group, let favorites connect on their own, and start AudioSync at login if you like.

Codes, just once

An Apple TV that asks for a code gets a prompt the first time. After that it connects without one. A speaker with a password asks for it once each time AudioSync starts.

The AudioSync menu bar panel: power switch, audio source, the Evening preset and master volume, then the Mac's speakers, a Downstairs zone with its two speakers and the connected speakers, each shown as on or off
The menu bar panel, for when you just want to flip a speaker on.
The AudioSync equalizer window, switched on with the Loudness curve: a preamp and ten band sliders
The equalizer. Pick a preset or drag the bands yourself.

Good to know first

A few limits to keep in mind before you install it.

  • There's a two-second lag. AirPlay adds a fixed delay of about 2 s, and nothing can shorten it. You won't notice with music, but it gets in the way of video and games.
  • You set the delays. Every output except the Mac's own speakers gets a delay you pick (AirPlay speakers share one), and AudioSync remembers it per device.
  • Not every speaker plays yet. AudioSync now streams with its own AirPlay sender, which speaks the original AirPlay for now, so a speaker that only takes AirPlay 2 won't play unless you start AudioSync with AUDIOSYNC_AIRPLAY2=1. That experimental support plays one AirPlay 2 speaker at a time. The next version adds a switch for it in the menu.
  • Pairs and HomePods are untested. Showing a stereo pair or a home theater group as one speaker comes in the next version, and no real pair has been tried yet. I haven't tried the new sender on a HomePod yet, so if yours doesn't show up or play, please open an issue on GitHub with the debug log.
  • Track info is limited. Now Playing only picks up Spotify and Apple Music.
  • It's an alpha. Expect rough edges.

Coming from Airfoil?

The idea is the same: send the whole Mac, or one app, to AirPlay speakers and local outputs together. AudioSync just does less. It plays to AirPlay receivers, Google Cast speakers (one at a time, with an offset you set by ear; Google Home groups come in the next version) and the outputs macOS already knows about, and it needs macOS 15 or later. AirPlay 2 is still experimental and off by default.

Get AudioSync

It's free. Grab the latest build, or build it yourself from the source.

Download

For macOS 15 (Sequoia) or later. Open the disk image and drag AudioSync to Applications.

The builds aren't notarized yet, so macOS blocks the first launch. To get past it:

  1. If macOS says it can't verify AudioSync, click Done.
  2. Open Privacy & Security in System Settings.
  3. Scroll down, click Open Anyway and confirm with your password. You only do this once.
Latest release

Or, from Terminal. A copy fetched this way skips the extra step:

curl -fsSL https://raw.githubusercontent.com/yassersutojoyo/audiosync/main/scripts/install.sh | bash

Build from source

You'll need:

  • macOS 15 (Sequoia) or later
  • The Command Line Tools for Xcode 16 or later
  • A Rust toolchain (rustup)
git clone https://github.com/yassersutojoyo/audiosync
cd audiosync
./setup.sh

The first run needs a network connection and takes a while. After that, ./build.sh is all you need. The development notes have the details.

Windows 11 and Linux versions are in the works too. They aren't out yet.