What it is
1-bit bridge is a small Go server you run on a Mac, Windows PC, Linux box, or Raspberry Pi alongside your music library. It serves the iOS app over HTTPS instead of SMB — same files, same bit-exact audio, but a transport designed for the app rather than a decades-old file-sharing protocol.
It's free and open source under the MIT license. The canonical site — setup, troubleshooting, protocol spec, every release note — lives at acoseac.github.io/1-bit-bridge.
Everything practical — install, pair, configure, recover — is on acoseac.github.io/1-bit-bridge. This page is just the elevator pitch.
Why use it instead of SMB
- Faster. A pre-indexed library manifest replaces the iOS app's two-phase SMB scan. The first sync finishes in seconds, not minutes.
- Reachable remotely. SMB is a LAN protocol. The bridge speaks HTTP/2 over TLS — Tailscale, WireGuard, or any direct route works without extra plumbing.
- Easier to set up. Run the installer, approve the device on the admin console, you're paired. No share permissions, no Samba quirks.
- Same audio path. The bridge ships bytes; the iOS app still owns DSD, DoP, gapless, and everything else. No server-side transcoding, ever.
What's new in 0.1.5
Forty-five commits since 0.1.4. The iOS wire protocol stays at v1 — everything below is additive, older app builds keep working unchanged, and the bit-exact audio path is untouched:
- DLNA / UPnP MediaServer (opt-in, LAN-only). Serve your library to
DLNA/UPnP renderers on your network — the Chord 2Go is the headline
target, plus generic players (mconnect, BubbleUPnP, Linn Kazoo). Presents an
All Tracks list and a Folders hierarchy with free-text search; audio is
bit-exact, with cached upscale variants surfaced as alternate streams. UPnP has no
authentication, so this is off by default, only ever binds private /
link-local interfaces (never a routable public IP), and a public-mode bridge refuses to
start it — the LAN bind is the gate. Enable with
dlna.enabled: trueor the admin Settings toggle, and only on a network you trust. - Per-device playlist backup. Back up the playlists you build in the iOS app so they survive a reinstall or re-pair. Anchored to a durable per-device identity, not the bearer token. Playlists that mix in tracks from another bridge or local / SMB storage keep those as opaque references the bridge never resolves.
- Opt-in listening history. Turn it on per-bridge in the iOS app (off by default) and the app reports each play — track, when, how long, codec, and where available the output route / device and DAC sample rate. It's your data: stored on the bridge host, surfaced only in the admin console's new Data page (histograms, most-played, event log, JSON / CSV export), and never sent off-host by the bridge on its own.
- Public-mode pairing QR fix. A public (Let's Encrypt) bridge now bakes the served cert fingerprint and the public dial URL into the pairing QR, so scanning from a phone no longer hits a TLS-pin mismatch.
- Stability + honesty.
sudo bridge updateno longer fails config-load when the library root (e.g. anrcloneFUSE mount) is unreadable by root; honest variant accounting across the dashboard / library / audio-quality views; an admin DLNA enable/disable toggle; and more accurate Tailscale status.
Full release notes and upgrade guidance: github.com/acoseac/1-bit-bridge/releases.
Bit-exact, by design
The bridge never decodes, resamples, or transcodes the source files. It serves the bytes the iOS app asks for — DSF, DFF, FLAC, ALAC, WAV, AIFF, MP3, AAC — and the iOS app does the rest. The full DSD pre-cache that protects DoP marker alignment still applies; the bridge just gets the bytes there faster. Optional upscaled variants are generated alongside the originals, never in place of them.
Open source, MIT
Source, releases, the protocol spec, and the admin console all live on GitHub under MIT. Issues, PRs, and security reports are welcome.
- Docs: acoseac.github.io/1-bit-bridge
- Source: github.com/acoseac/1-bit-bridge
- Releases: latest tagged build for macOS, Windows, and Linux (arm64 / amd64)