1-bit

Support

Help, FAQ, and troubleshooting for the iOS DSD music player.

Getting started

1-bit can play music from three places: an SMB share on your home server, a 1-bit bridge companion server (HTTPS, faster, optionally remote-reachable), or the on-device library (files you've dropped into the app's Documents folder). You can use any combination — each source shows up in the Sources tab.

Add an SMB share

  1. Open the Sources tab and tap + → Add SMB Share
  2. Enter your server details:
    • Host — IP or hostname (e.g. 192.168.1.10 or synology.local)
    • Share — the share name (e.g. Music)
    • Username / Password — your SMB credentials
  3. Tap Save. The password is stored in your iPhone's Keychain and never leaves the device.
  4. Grant Local Network permission when iOS prompts — required to reach servers on your Wi-Fi.

Servers that advertise via Bonjour (_smb._tcp) appear in the Nearby list — tap one to pre-fill the host.

Add a 1-bit bridge

The 1-bit bridge is a free, open-source companion 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 — usually faster, works over Tailscale / WireGuard, and avoids the Samba quirks. The bridge has its own canonical site with full setup and troubleshooting documentation:

Bridge documentation
  • Setup guide — install on macOS, Windows, Linux, or a Raspberry Pi; configure your library; pair your iPhone.
  • Troubleshooting — pairing failures, TLS errors, Tailscale gotchas, certificate rotation.
  • Full docs — overview, protocol spec, release notes.

The iOS-side pairing flow is the short version: open the bridge's admin console, click Devices → Pair new device, then on iPhone open Sources → + → Add 1-bit Bridge and either scan the QR code, tap a discovered bridge under Discover on network, or open a bridge:// link. The app probes the bridge, captures its TLS fingerprint, pins it, and the first manifest sync takes seconds.

Use the on-device library

For listening with no server at all — files you've dropped into the app via the Files app or USB:

  1. Open Sources → + → Enable On-Device Library.
  2. Add files: open the Files app on the iPhone, browse to On My iPhone → 1-bit, and drag or paste your music in. Or connect the iPhone to a Mac / PC and drop files into 1-bit via Finder's Files tab.
  3. Tap Rescan on the on-device source row. Tracks appear in the Library tab once the scan finishes.

Scan your library

  1. For SMB: open a share and tap Scan (top right of the folder browser)
  2. For bridge: scanning is automatic — the bridge ships its pre-built manifest in one paginated GET
  3. For on-device: tap Rescan on the source row in the Sources tab
  4. SMB scans run in two passes — Pass 1 walks the folder tree, Pass 2 opens each file to read tags, artwork, and duration. The Sources row shows a live status line.
  5. Switch to Library — albums, artists, and playlists are ready

Rescans are incremental — only folders whose modification time has changed are re-processed. Use Full rescan from the source menu after moving files around. For bridge sources the manifest itself drives change detection, so a regular rescan is enough.

Play


Settings, explained

A short tour of every Settings section. The defaults work for most people — these are the knobs to know about when something specific isn't doing what you want.

Appearance
Theme & app icon

Pick a light, dark, or system theme just for 1-bit. Swap the home-screen icon — the choice triggers the standard iOS confirmation alert.

Artist images
Fetch artist images (SMB shares)

Off by default. When on, artist names from SMB shares are sent to the Deezer public API to retrieve a public photo — no account, no key. Bridge sources fetch artist images from the bridge directly, regardless of this toggle.

Refresh
Auto-refresh & in-place change detection

Re-scans skip unchanged folders and already-tagged tracks, so they're cheap. Turn off auto-refresh on metered or flaky connections; turn on in-place detection if you re-tag files in another app.

Loudness
ReplayGain

PCM only — DSD always stays bit-exact. Off keeps the direct path; track or album mode inserts a mixer node to apply the file's ReplayGain tags.

Headphones
Crossfeed

1st-order Bauer crossfeed for headphones and Bluetooth. Breaks bit-exactness — and is automatically bypassed on USB DACs and DSD playback to keep the direct path intact.

Cellular New in v1.2
Streaming on cellular

Three modes: Always allow (default), Warn before streaming (asks once per track), and Wi-Fi only (refuses cellular streaming entirely). DSD files can run to several GB — turn this on if your data plan is metered. Local Documents files are unaffected. v1.3 extends the gate to the next-track preloader and honours Low Power Mode the same way.

Refresh New in v1.3
Opportunistic background scan

On by default. If your first scan of a large library didn't finish in the foreground, 1-bit schedules a one-shot background task that resumes the walk when the device is charging, idle, and on Wi-Fi. iOS picks the window and may decline; the work stays local. Off-switch in Settings → Refresh.

DSD pre-cache
Stream large DSD files

Off by default. The full pre-cache path protects DoP marker alignment and never underruns mid-track. Turn on for faster starts on a reliable local-network link — mid-track underrun on DSD can drop DAC lock.

Advanced
Deferred next-track preload

On by default. Arms the next track a few seconds before the current ends so most shuffle / repeat taps no longer have to swap a queued buffer (which clicks). Disable if your network is too slow to load the next track within the deferred window.

Resync delay
Override for unknown DACs

Some USB DACs need longer than the defaults (400 ms DSD, 150 ms PCM) to lock onto a new sample rate. Raise this if DSD starts silent or if FLAC stays silent after a DSD track. Profiled DACs use their own curated value and ignore this override.

Diagnostics
Profiled DACs & live session info

Browse the list of DACs we've characterised (each with a curated resync delay and DSD rate ceiling). The DAC Diagnostics view shows the detected DAC, the effective resync timing, and live session facts — handy when reporting an issue.

What else you might want


FAQ

What file formats are supported?

DSF (DSD64/128/256) bit-exact to DoP-capable USB DACs; FLAC, ALAC, WAV, AIFF at native rate; MP3, AAC for legacy files.

Why do DSD files need a USB DAC?

DSD is a 1-bit format iOS doesn't decode natively. The app packs DSD into DoP frames and sends them to a USB DAC, which unpacks and plays the original bits. Without a DoP-capable DAC, DSD files show a DSD rate not negotiated error.

Which USB DACs work?

Any USB DAC that advertises DoP (DSD-over-PCM) support. Connect via USB-C (newer iPhones) or a Lightning-to-USB camera adapter. If your DAC's documentation mentions DoP, it will work.

Why does DSD playback take a moment to start?

By default, the entire DSF file is downloaded before playback begins. This guarantees DoP marker alignment never hiccups mid-track. For large DSD256 files this can take 10–30 seconds on first play. Enable Settings → Stream large DSD files to trade that for faster starts — works well on stable Wi-Fi, less so on flaky networks.

Why is my library scan still going after I close the app?

If your library is large and the first scan didn't finish in the foreground, 1-bit schedules a one-shot background task with iOS to pick up where it left off — only when your phone is charging, idle, and on Wi-Fi. iOS decides when (and whether) to run it; there's no network traffic beyond the same SMB or bridge connection you'd already authorised. Turn it off in Settings → Refresh → Opportunistic background scan if you'd rather it didn't.

Does the app send my data anywhere?

No tracking, no analytics, no account system. The only outbound request is the optional Deezer artist-image lookup (anonymous, off/on per your setting). SMB credentials live in the iOS Keychain on-device.

Will this ever support streaming services?

No. This app is for playing files you own, from a server you control.

Should I use SMB or the 1-bit bridge?

Either works. SMB is fine if your server already speaks it well and you only listen on the same Wi-Fi as the server. The bridge is faster (a pre-indexed manifest replaces the SMB walk + tag-enrich pass), much easier to reach from outside your home network (over Tailscale, WireGuard, or any direct connection), and side-steps the Samba edge cases that cause most "Couldn't connect" reports. See the bridge page for the full picture.

How is the bridge connection secured?

TLS fingerprint pinning. The iOS app captures the bridge's certificate SHA-256 on first contact (during pairing) and pins it forever after. No public CA, no browser trust store, no MITM window after pairing. If the bridge's certificate ever rotates, the app refuses to connect and prompts you to re-pair from the admin console — this is by design, not a bug.

Why do I have to re-pair my bridge once a year?

iOS 26.4 enforces the Apple ATS 398-day cert-validity cap at the network layer, so the bridge's self-signed certificate must be re-issued at most once a year. The bridge handles this automatically (it warns in the admin console at ≤30 days), but you'll need to re-scan the QR code or open a fresh bridge:// deep link from the admin console when the cert rotates. The pin guarantees this is intentional — re-pairing is the only way to authorise a new certificate, and that's what keeps the connection MITM-resistant.

Can I reach the bridge from outside my home network?

Yes — Tailscale or WireGuard both work. The bridge speaks plain HTTP/2 over TLS; anything that gets a TCP connection to it can pair. Tailscale is the easiest: install it on the bridge box and your iPhone, and the bridge is reachable on its tailnet address from anywhere. See the Tailscale troubleshooting note below if you're using bare CGNAT IPs (the iOS-specific gotcha is documented there).


Troubleshooting

"Couldn't connect to server"

"Authentication failed"

DSD track plays silence or stutters

"DSD rate not negotiated"

Your DAC doesn't advertise DoP for that sample rate. Confirm DoP mode is enabled on the DAC, and try a DSD64 file before DSD128/256.

Scan stops partway through

Library looks stale after renaming an album on the server

Use Full rescan from the menu. Incremental scans skip folders whose modification time hasn't changed, so server-side renames need a full pass.

Bridge: pairing fails, TLS errors, certificate rotation, Tailscale gotchas

Bridge-side issues — pairing failures, "TLS fingerprint doesn't match", "certificate has changed since pairing", Tailscale CGNAT problems, protocol version mismatches, slow enrichment — are covered with full step-by-step fixes on the bridge troubleshooting page:

Bridge troubleshooting

acoseac.github.io/1-bit-bridge/troubleshooting

The short version, for the most common case (annual cert rotation): the bridge's TLS certificate is renewed at most once a year (Apple ATS caps self-signed cert validity at 398 days). When that happens, the iOS app refuses to silently accept the new cert by design. Open the bridge admin console, regenerate the pairing, and re-scan the QR or open the fresh bridge:// link on iPhone.


Known limitations

Contact

Still stuck, or have a feature request?

support@ars.md

Please include:

  • iPhone model and iOS version
  • DAC model (if DSD-related)
  • NAS or SMB server brand and firmware version (if connection-related)
  • What you tried and what happened

I read every email.