1-bit

Free companion server

1-bit bridge

Reach your home library over HTTPS, with QR-code pairing and TLS fingerprint pinning — typically faster than SMB, and reachable from outside your home network. As of 0.1.9 it resolves far more of your library’s metadata, serves one copy of each duplicated track, and can tell you whether a “hi-res” file really is one.

Architecture

Bytes, the short way.

A small Go binary indexes your library into a manifest and serves byte ranges over HTTP/2 with a pinned TLS fingerprint — no SMB round-trips, no transcoding.

  1. Host machine Your library Mac · Windows · Linux · Pi — files on disk, indexed into a manifest
  2. 1-bit bridge · Go Serves byte ranges HTTP/2 over TLS · fingerprint-pinned · no transcode
  3. iPhone → DAC Lock-free render DoP / native PCM · bit-perfect to your USB DAC

TLS fingerprint-pinned · direct byte-range streaming · no server-side transcoding

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 to self-host, and the full source is public under the FSL-1.1-MIT license — every release automatically becomes MIT-licensed two years after it ships. The code, binaries, wire protocol, and release notes live on GitHub; everything you need to install, pair, and run it is documented right here.

New here?

The setup walkthrough takes you from a blank machine to a paired iPhone in about ten minutes. Hit a snag? The troubleshooting page is symptom-to-fix.

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.9

Since 0.1.8. The iOS wire protocol stays at v1 — everything below is additive, so older app builds keep working unchanged, no re-pairing and no app update are required, and the bit-exact audio path is untouched:

  • Metadata that actually resolves. The bridge was throwing away matches it had already been handed: a curly apostrophe instead of a straight one, an en dash instead of a hyphen, an accent, an ampersand where the catalogue spells out "and". Titles and names are now folded to a comparable form before they're compared, and the search retries in a wider ladder. On a 19 482-track library, the tracks left short of a cover, artist, or release identifier fell from 5,435 to 2,25088% of the missing artist identifiers and 43% of the missing release identifiers recovered — so covers, artist portraits, and bios appeared on records that had sat blank for months. For the files no text match can fix — the ones tagged CD 01 by An Unknown Artist — an opt-in acoustic fingerprint identifies the recording from the audio — it resolved 50 of a 60-track sample the text path had given up on.
  • One copy of each track. Libraries collect duplicates — a re-rip beside the original, an album uploaded twice, a lossy copy next to the lossless one. The bridge now groups them and serves the best one, so albums stop appearing twice on your phone. DSD and PCM editions are never collapsed into each other, FLAC copies are compared by the checksum their encoder stored — so "bit-identical" is a fact, not a guess — and anything ambiguous is left alone. Nothing on disk is touched.
  • Is that file really hi-res? The same offline decode that draws your waveform now measures a whole-track frequency spectrum, which is what gives a CD-sourced upsample away: the resampler's wall at 22.05 kHz. It also adds true-peak, a DR score, and — for FLAC — a real integrity check against the checksum the encoder wrote into the file. Where it can't answer honestly it returns nothing rather than a number, and DSD is left out entirely, because the measurement doesn't separate the cases there.
  • Your data keeps up. Favorites now back up to your bridge alongside playlists and history, readable from any device you've paired, and they seed a Smart Mix of their own. Deletions finally travel on incremental syncs instead of waiting for a full re-scan, so a track you removed disappears from your phone on the next ordinary sync. Artwork is right-sized once at scan time and served with validators, so devices revalidate a cover instead of re-downloading it.
  • A console that explains itself. New Diagnostics and Duplicates pages, plus a rebuilt Jobs page that shows every background pass — scanning, analysis, upscaling, fingerprinting, backups — with a live per-worker view of what each one is doing and what failed last. You can run the preflight checks in the browser and export a log, or a bug-report bundle that's redacted by default because it exists to be sent somewhere. There's also an opt-in sweeper that builds CarPlay-optimized variants ahead of the request rather than mid-drive.
  • Under the hood. 148 pull requests, 72 of them fixes — a full bug review, a security-scanner triage, and 29 fuzz targets now covering the three surfaces that parse untrusted input (audio files, the LAN-facing UPnP parsers, path resolution). Windows got its first real portability pass: the largest test package had never once been compiled for Windows, and the suite now runs natively on Windows and macOS in CI.
The 1-bit bridge admin console at phone width — stat cards stacked two-up, the master-quality composition breakdown below, and the theme toggle in the header.
The console at phone width — check on your library from the device in your hand.

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.

Get it

Run the bridge, pair your iPhone.

Grab a build on the download page, then follow the setup walkthrough. Source and releases live on GitHub.