Why 1-bit?
DSD is a 1-bit format. Where PCM stores each sample as a 16- or 24-bit integer, DSD stores a single bit per sample at 2.8, 5.6, or 11.2 MHz — the DAC reconstructs the waveform from density instead of amplitude. It's how SACD worked, and it's the format most modern audiophile DACs prefer when given a choice.
iOS has no first-party way to play DSD. Most third-party players silently transcode everything to 48 kHz PCM and call it a day. This app doesn't.
What it does
- Browses any SMB (Samba / macOS File Sharing / NAS) share on your Wi-Fi
- Scans your folders into a proper library — albums, artists, playlists, artwork
- Plays DSD (DSF) files bit-exact to a USB DAC via DoP — DSD64, DSD128, DSD256
- Plays PCM (FLAC, ALAC, WAV, AIFF, MP3, AAC) at the file's native sample rate, no resampling
- Gapless between tracks when the format matches
- Now Playing, Lock Screen, AirPods, and CarPlay controls
The audio path
The things audiophile readers actually want to know:
DSD → DoP → USB DAC. DSF files are read off the network, packed into DoP frames, and written straight to the USB audio endpoint. Nothing in between touches the samples. If the DAC reports DoP lock (Chord Hugo 2, iFi, Topping, and most modern USB DACs do), you're hearing the original 1-bit stream.
PCM goes direct. The audio graph skips the mixer for PCM — the player node connects straight to the output node, and the hardware sample rate is negotiated to match the file. 44.1, 88.2, 96, 176.4, 192 kHz — whatever's on disk is what the DAC receives.
Full pre-cache by default. DSD playback starts only after the whole file has landed locally. This adds startup latency proportional to file size over SMB, but it's the only way to guarantee DoP marker alignment doesn't hiccup if the network stutters mid-song. There's an opt-in "stream large DSD" mode in Settings for when you'd rather trade a bit of robustness for quicker starts.
No hidden processing. No EQ, no loudness, no crossfade, no sample-rate conversion, no dithering to 16-bit. The DAC does the DAC's job; the phone's job is to move bytes.
Library
A two-phase scanner: first it walks your folders and lays down track rows, then it enriches them with ID3v2 tags (for DSF) or AVFoundation metadata (for everything else). Per-folder mtime tracking means rescans skip what hasn't changed — add an album on your NAS, run a scan, keep listening.
Artwork is cached locally at two sizes. Artist images are generated from album art, or optionally augmented via Deezer's public search if you want avatars for artists whose albums don't ship cover portraits.
Requirements
- iOS 18.6 or later
- An SMB share on your local network — NAS (Synology, QNAP, TrueNAS, Asustor, Unraid), macOS File Sharing, or any Linux box running Samba
- For DSD: a USB DAC with DoP support, connected via USB-C cable or a Lightning-to-USB camera adapter. PCM plays through any output, including Bluetooth and the built-in speaker.
Privacy
- SMB passwords live in the iOS Keychain on your device. They don't leave it.
- No account. No sign-up. No tracking SDKs. No ads.
- The only outbound request — and only if you enable it — is an unauthenticated GET to Deezer's public search for artist images.
- Your music stays on your server. The app only reads it to play it.