All your speakers and your other Mac, as one. Video stays lip-synced.
Built-in speakers, Bluetooth, displays, a second Mac: one sound, one volume, from the menu bar.
Free and open source. No account, no tracking.
- Video stays lip-synced, even with Bluetooth speakers.
- Your other Mac plays along, at the same moment, with its media keys.
- One volume: the keys on either Mac move every speaker.
- The newest sound wins: play music on one Mac and the other pauses its own, like AirPods.
- 0.16 s from app to every speaker (AirPlay: about 2 s). Both Macs within 2 ms. How
- Free, open source, notarized.
| Ensemble | macOS Multi-Output | Tutti | FineTune | Airfoil | |
|---|---|---|---|---|---|
| Price | Free | Free | Free, Pro $7.99 | Free | Paid |
| Open source | ✅ | ❌ | ❌ | ✅ | ❌ |
| Several speakers on one Mac | ✅ | ✅ | ✅ | ✅ | ✅ |
| Your other Mac plays along | ✅ | ❌ | ❌ | ❌ | ✅ |
| Video in sync, in any player | ✅ | ? | ? | ? | ? |
| Volume keys move every speaker | ✅ | ❌ | ✅ | ❌ | ? |
| AirPlay, Sonos, phones | ❌ | ? | ❌ | ❌ | ✅ |
| Per-app volume and EQ | ❌ | ❌ | ✅ | ✅ | ? |
? = not measured yet. Need AirPlay or Sonos: Airfoil. Volume and EQ per app: FineTune, Tutti.
- Download Ensemble.dmg and drag it to Applications. Needs macOS 26.
- Open it: a short guide sets it up. For a second Mac on the same network, install it there too and pair.
Sound goes only to the Mac you paired, on your network, encrypted. Ensemble reads your apps' sound from its own sound device, and listens with the microphone only to tune. Once a day the app checks GitHub for a new version. Nothing else leaves your Mac.
Delete Ensemble from Applications, then remove its sound device:
sudo rm -rf /Library/Audio/Plug-Ins/HAL/EnsembleDevice.driver && sudo killall coreaudiodswift build with Xcode 26. How it works, CONTRIBUTING.md, and
the most useful help of all: a setup report from your Macs
and speakers.
MIT