Skip to content

Releases: barongartner/Split

Split for Windows 1.0.0

Choose a tag to compare

@barongartner barongartner released this 29 Jul 16:00

Several people, one PC, everyone hearing their own thing — the Windows build.

Download Split-1.0.0-windows-x64.zip, unzip, run Split.exe. No .NET to install, no driver, no permission prompt. Requires Windows 10 version 1803 or later.

The exe isn't code-signed, so Windows shows "Windows protected your PC" on first run — click More infoRun anyway. Once.

Please read: this has never been run on Windows

It was built and audited on a Mac, with no Windows machine available to test on. Everything is compile-verified, not runtime-verified. It leans on an interface Microsoft has never documented, so the first real launch is the real test.

If audio ends up somewhere strange: Diagnostics → Restore system audio puts everything back. Bug reports very welcome.

What it does

  • Per-app output routing — send each app to its own output device, reapplied as apps launch and quit
  • Per-route volume and mute, live, with level meters
  • "Everything else" route sets the system default output
  • Tray icon with per-route volume, for adjusting someone's level mid-movie
  • Presets save and restore a whole set of routes
  • Diagnostics showing live route state, plus a one-click restore

How it differs from the Mac app

No delay sliders and no sync wizard. macOS Split captures each app and re-renders it, which is what makes a delay line possible. Windows has no equivalent of Core Audio's capture-with-mute, so this build hands routing to the system mixer and never touches audio samples. More reliable and zero added latency — but there's nowhere left to insert a delay.

One Bluetooth headphone, not two. The Microsoft Bluetooth stack only streams to a single A2DP sink at a time; a second Bluetooth route will be silent. This is not fixable from an app — macOS manages two, Linux manages more, Windows does not. Give the other listeners wired or USB headphones. Split warns you when two routes point at Bluetooth.

DRM video just works, and there's no permission prompt — nothing is ever captured.

Two copies of the same app can't be split, because Windows stores the routing preference against the executable rather than the process.

Notes

The Mac and Windows apps version separately and share this releases page. windows-v… tags are Windows; plain v… tags are macOS. macOS 1.1.2 remains the latest release for Mac users.

Full detail in windows/README.md, and the undocumented-API provenance in windows/docs/WINDOWS-AUDIO.md.

Split 1.1.2

Choose a tag to compare

@barongartner barongartner released this 14 Jul 04:38

The beat-match tuner now looks the way it feels: two arrows fly in from the edges and meet at a center line exactly on the beat, rhythm-game style, with a flare on contact. Tap ← → until the beep in your ears lands right as they meet — your eye can ride the motion in, which makes tuning faster and more precise than the old pulsing ring.

Install: open the .dmg, drag Split to Applications. First launch on a new Mac: Privacy & Security → Open Anyway (one time).

Split 1.1.1

Choose a tag to compare

@barongartner barongartner released this 14 Jul 04:31

Download, drag to Applications, done — nothing to build.

Install: open the .dmg, drag Split into Applications. First launch on a new Mac: System Settings → Privacy & Security → Open Anyway (Split is signed but not Apple-notarized — that program costs $99/yr). When you add your first route, allow System Audio Recording. Both are one-time.

Everything from 1.1.0 (the beat-match sync wizard) plus: releases now ship a proper .dmg, and signatures are timestamped so old releases keep launching after the signing certificate expires.

Split 1.1.0

Choose a tag to compare

@barongartner barongartner released this 14 Jul 04:27

Delay tuning stopped being homework.

Hit Sync: each listener keeps their headphones on, watches a pulsing ring, and taps arrows until the beep lands on it — about 15 seconds per person. That answer doubles as a latency measurement, so Split aligns the whole group to the slowest headphones automatically. Then (optionally) a group click test — everyone hears ONE click when it's right — and a single master slider to match the picture. No microphone, nothing to hold, no new permissions.

Also: sync-age captions with a Bluetooth drift hint, a per-route Beep button in Diagnostics, and an honest warning when the Direct route's device can't keep up with the group.

Scheduling verified end-to-end on hardware: beeps land on a shared time grid with 1000.0 ms spacing, delay shifts measured exact to the millisecond. Details in docs/AUDIO-PIPELINE.md.

Split 1.0.0

Choose a tag to compare

@barongartner barongartner released this 14 Jul 03:22

First release.

Route each app's audio to its own output device — several people, one Mac, everyone hearing their own thing. Per-route volume and delay (for syncing video across headphones with different latencies), a Direct route for DRM video apps (Apple TV, Netflix-in-Safari), presets, menu bar quick controls, and a watchdog that survives app relaunches, device unplugs, and the tap API's silent failure modes.

Needs macOS 14.4+. Build from source with ./build.sh (see README — signing matters for the audio permission), or grab the zip: it's signed for local use, so right-click → Open the first time.

Full details in CHANGELOG.md; what's tested on real hardware is in docs/COMPATIBILITY.md.