1-bit 2.1 is on the App Store. Same URL, new build, free update.
The codename is a nickname. Johnny Griffin was a short man with one of the biggest, fastest tenor saxophone sounds in jazz, and they called him the Little Giant. So: a point release that carries more than its number suggests. 181 commits and close to 600 files since 2.0.1, and most of what follows is the kind of change you will never see directly. That is rather the point of it.
What’s new
When the download falls behind
Starting a file before it has fully arrived sounds simple until the network has a bad moment. The rule I built it around: never play something that isn’t there yet. If playback catches up with the download, 1-bit pauses on Buffering, waits until it has a comfortable few seconds in hand, and carries on from exactly where it stopped. No silence passed off as music, no skipped bars.
Most of the work in 2.1 went into the awkward moments around that pause. Drag the scrubber while it is buffering and it waits for the part you asked for, rather than sitting there until the whole file has arrived, which an early version did. Take a call, ask Siri, or let the sleep timer run out during the pause, and it comes back cleanly. Pull your headphones out while it is buffering and it stays paused, instead of quietly resuming on the iPhone speaker once the data turns up. And when a transfer ends early, which some file servers do without saying so, the track now ends where the audio really ends. Before, you got the missing part as silence, followed by a skip.
A file is read piece by piece as it lands, and a piece only plays once all of it is on the phone. Nothing half-delivered reaches your DAC.
DSD, and a DAC that changes its mind
USB DACs come and go in the middle of things, and 2.1 is much better at noticing. Plug a DAC in while a DSD track is still loading, and it plays as DoP on the DAC instead of starting the version it had prepared for the phone’s speaker. If the next track was already lined up for a gapless join, it gets lined up again for the new DAC. Unplug while a track is loading, and it pauses, the same way it does when you unplug in the middle of a song, instead of starting on the speaker.
Some DACs take a moment to lock onto DSD after you reconnect them. If yours doesn’t make it in time and you tap Skip back to retry, playback now picks up where you were rather than at the start of the album. And moving between tracks at different sample rates on a USB DAC no longer freezes the app for most of a second while iOS changes the DAC’s clock.
Signal Path got stricter
Signal Path is the screen that shows exactly what happens to your music on its way to the DAC, and the whole point of it is that it doesn’t flatter. In 2.1 it reads a FLAC file’s real bit depth instead of the decoder’s working format. It no longer vouches for a 32-bit file the audio path can’t carry exactly. Its bit-exact seal checks the phone’s volume as it is right now, not as it was when the track started. And with DSD conversion set to Always, the per-DAC switches say plainly that they have no effect, while the Audio settings name any DAC you have set to PCM. If the app can’t prove a path is bit-exact, it doesn’t claim it is.
The parts nobody asks for but everybody notices
Your hearts, downloads and playlists are harder to lose. Pick a music folder again with Choose Folder Again and every track comes back as itself, with its heart, its playlist slots and the date you first added it, and album hearts and album downloads stay too. A heart or a download you add while the app is re-reading your library is no longer undone by that re-read. And when a tag edit moves tracks into a different album, the album’s heart and download move with them.
Offline is more honest. Files that live on the phone itself count as available offline, so an album of them no longer claims to be half-downloaded. A Download failed or a 2 of 2 offline that 2.0.1 left behind over music that is all there fixes itself at the next launch, and in CarPlay those albums now open in Downloads instead of showing an empty list. On iOS 27, when your home bridge is switched off or you drive through a dead zone, the app moves straight past the tracks it can’t reach instead of stalling on each one.
Your tags are read more carefully. Files tagged with MusicBrainz Picard keep their ReplayGain values. MP3, M4A, WAV and AIFF files on a network share or on the phone have their tags read in full. A WAV holding an unusual compressed format is labelled Lossy rather than Hi-Res, and a file iOS can’t play at all is skipped like a missing track instead of being played as silence. Big network shares rescan faster, too, because folders that haven’t changed are no longer listed again on every pass.
When ReplayGain changes between two gapless tracks, the new level now starts on the very first sample of the new track, not a few milliseconds early or late.
Then there is the work you will hopefully never notice. The app went through an outside security review together with the bridge. A pairing link now carries a single-use code, so a link that has been used, or is more than ten minutes old, is no good to anyone else. A deliberately broken tag file, or a misbehaving device on your home network, can no longer freeze the app or tie up a library scan. And before 2.1 went out, a library written by 2.0.1 was opened with 2.1 and checked row by row, so your update starts from everything you had.
And on the bridge side
Bridge 0.2.1 came out the day before the app. It is a hardening release, much of it from that same security review.
Pairing links carry a one-time code, and you can sign every console session out at once. The logs keep no client addresses and never print a password typed into a URL. The bridge reads more of your tags: a FLAC or Ogg date it couldn’t parse no longer reaches your phone as the year 1, and the compilation flag now arrives, so 2.1 can file those albums under Various Artists. The PCM copies it makes of DSD files, for outputs that can’t take DSD, now set their level per album, so an album keeps the loudness differences it was mastered with.
As always, none of it is required. 2.1 runs fine against bridge 0.2.0, the wire protocol is still v1, and nothing needs re-pairing. The first scan after you update the bridge re-reads your library once. One catch: if you update a Mac or Windows bridge from 0.2.0 through its own console, run bridge restart once afterwards. From 0.2.1 on, a restart from the console brings the bridge back by itself.
Same audio path
No transcoding. No resampling. No mixer in the path. DSD still goes out as DoP to your USB DAC, and PCM still goes out at the file’s own sample rate. Starting a big file early changes when the music begins, never a byte of it. Converting DSD to PCM, always or for one DAC, is a choice you make, and Signal Path shows it when you do. With everything left at its defaults, the bytes that reach your DAC are the bytes in your files. How DSD playback is handled →
The down-to-earth version
If you already have 1-bit: open the App Store and tap update. Your sources, bridges, folders, playlists, hearts, downloads and settings all carry over, and there is nothing to re-pair. The new browsing and DAC settings are waiting in Settings, and Big files start sooner stays off until you switch it on in Settings, Audio. If you run a bridge, update it too.
If you are new: it is a free download for iPhone and iPad, iOS 26.1 or later. Bring a NAS, a bridge, a UPnP server, or just a folder of files on the phone, plus a USB DAC if you want DSD. Or add the demo library from Sources and borrow mine for an evening.
A lot of 2.1 started as messages from people using the app. Thank you, and keep them coming.