<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>1-bit</title><description>Release notes and guides for 1-bit, the bit-exact DSD &amp; hi-res music player for iPhone.</description><link>https://1-bit.app/</link><language>en-us</language><atom:link rel="self" type="application/rss+xml" href="https://1-bit.app/rss.xml"/><item><title>1-bit 2.0, Unfinished Symphony</title><link>https://1-bit.app/blog/1-bit-2-0-unfinished-symphony/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-2-0-unfinished-symphony/</guid><description>1-bit 2.0 is on the App Store. A private library we host for you, lyrics that follow the music line by line, DSD that plays on any output and says so, SACD rips and DST-compressed DSD that open like ordinary files, DSD256 with a wizard that profiles your DAC, and a player built for iOS 27.</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 2.0 is on the App Store&lt;/a&gt;. Same URL, new build, free update, and a new icon.&lt;/p&gt;
&lt;p&gt;It is the largest release since the app launched, and the first one that changes what the app &lt;em&gt;is&lt;/em&gt; rather than what it can do. Until now 1-bit was a player for files on a server you run. It still is. It can now also be a player for files on a server we run, if you would rather not keep a computer switched on at home. That is the headline, and it is the first thing in the app that has ever needed an account. Everything else still works without one.&lt;/p&gt;
&lt;figure style=&quot;max-width: 300px; margin: 0 auto 2rem;&quot;&gt;&lt;p&gt;&lt;img src=&quot;https://1-bit.app/_astro/whats-new.B6e1GLEc_ZxaJmA.webp?dpl=dpl_3uPV1MxmPrUS35s5av7zpZkk6aNw&quot; alt=&quot;The What&apos;s New in 2.0 sheet inside the app: the new icon, &amp;#34;Codename Unfinished Symphony. The largest release since 1-bit launched&amp;#34;, and the first three entries — 1-bit Cloud (beta), Lyrics, DSD on any output&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;739&quot; height=&quot;1600&quot;&gt;&lt;/p&gt;&lt;figcaption style=&quot;text-align: center; font-family: var(--font-sans); font-size: 0.85rem; color: var(--color-brand-muted); margin-top: 0.5rem;&quot;&gt;The in-app What’s New sheet, which lists the same six things as this post.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;1-bit Cloud (beta)&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;A private &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;1-bit bridge&lt;/a&gt; that we run for you. Sign in with Apple, drop music in through your library’s web page from any computer, and it turns up in Sources like any other bridge, with the same bit-exact playback. 20 GB is included free. It is yours alone: nothing is shared, scanned or matched across accounts, it is stored in Switzerland, every file is downloadable back bit-exact, and one button deletes the lot. We never see your email address. It is labelled beta because it is three weeks old and I would like more libraries than mine to have lived on it.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Lyrics&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Tap the artwork on Now Playing and it becomes the lyric sheet. Synced lyrics follow the music line by line, and word by word where the file carries word timing. They come from the file’s own tags first, then a sidecar beside it, then your bridge, and only if you switch it on, from an online source. That last one is off by default because it sends the title and artist somewhere, and the app should not do that without asking.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;DSD on any output&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;DSD used to refuse anything that was not a wired DAC, and the refusal was the honest answer while the only alternative was to pretend. It now plays on AirPods, AirPlay, CarPlay and the speaker, converted to PCM on the phone, and every screen that describes the signal says so: a neutral tier in Signal Path, a card naming the reason, a converter in the pipeline diagram. A wired DAC that takes the rate still gets the untouched DoP path. Set it to &lt;em&gt;Never&lt;/em&gt; in Settings and you get the old refusals back, word for word.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;SACD rips and compressed DSD&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;An SACD &lt;code&gt;.iso&lt;/code&gt; now opens into ordinary per-track rows that play, download and sit in playlists like anything else, with the disc’s own track names. DST-compressed DSDIFF, which the app used to refuse outright, decodes as it plays, gaplessly, through a port of the ISO reference decoder. Both were on the “parked, too expensive” list for a year. They came off it because the decoder turned out to run comfortably faster than real time on an iPhone 13, and because nothing in the bit-exact path had to change for either.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;dsd256-and-a-wizard-for-your-dac&quot;&gt;DSD256, and a wizard for your DAC&lt;/h2&gt;
&lt;p&gt;For most of the app’s life the DSD ceiling on iOS was believed to sit at DSD128, on the strength of a confident answer nobody had measured. So I measured it. On an iPhone 13 through a Lightning adapter into a Chord Hugo 2, DSD256 over DoP negotiates its 705.6 kHz carrier and reaches a real DoP lock. There is no iOS ceiling below 768 kHz. Whether DSD256 works is a question about your DAC’s USB descriptors, never about the phone, and the rate sweep in Diagnostics now probes those carrier rates so you can find out for yourself.&lt;/p&gt;
&lt;p&gt;Which is why 2.0 also has &lt;strong&gt;Profile my DAC&lt;/strong&gt; under Diagnostics. It runs the same measurements the curated profiles came from, asks you the two things iOS cannot measure (what you heard, and whether the DAC has its own volume control), and hands you an email to support with a paste-ready profile draft. Two DACs are already in the app because someone ran it. If yours is not on the list, that is how it gets there.&lt;/p&gt;
&lt;h2 id=&quot;built-for-ios-27&quot;&gt;Built for iOS 27&lt;/h2&gt;
&lt;p&gt;On iOS 27 the Lock Screen, Control Center and CarPlay controls run on Apple’s new Now Playing session, including shuffle, repeat and the Favorite heart, which the old command centre could not carry once a session owned the slot. Tracks stored on the device that carry no loudness tag get an on-device loudness estimate, so ReplayGain can level them along with everything else. All of it is gated: on iOS 26.1 the app takes the same path it always has, and there is a single switch in Settings that turns every iOS 27 path off at once if one of them misbehaves.&lt;/p&gt;
&lt;h2 id=&quot;the-parts-nobody-asks-for-but-everybody-notices&quot;&gt;The parts nobody asks for but everybody notices&lt;/h2&gt;
&lt;p&gt;The floating player arrives on iPad. On a wide screen it becomes a single bar with the scrubber inline, and the expanded deck gets an Up Next column. The library gains a flat Tracks list. Now Playing was redesigned, with a proper light design for the first time rather than a dark one with the lights on, and an action tray that folds the secondary controls into one button. Settings can be searched. Files on the device give up their tags and embedded artwork more reliably, including FLAC covers iOS never surfaced. And a bridge can now convert DSD ahead of time into a compact rendition for CarPlay and wireless, or a faithful one for a wired DAC that cannot take the file’s rate, so the phone streams a fraction of the size instead of pulling a 794 MB file to convert it locally. The original is always one tap away.&lt;/p&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0 0 1rem;&quot;&gt;&lt;strong&gt;1-bit Cloud, plainly.&lt;/strong&gt; It is the same bridge software you can run yourself, on a machine we rent in Switzerland. Creating a library switches on playlist backup, favourites and listening history for it, because a hosted library that forgets your playlists is not much use, and the intro sheet says so before you sign in. All of it is switchable afterwards and exportable in one file. Revoking the app in your Apple ID settings suspends the library rather than deleting it; only the in-app delete destroys anything, and it asks you to sign in a second time before it does.&lt;/p&gt;&lt;p style=&quot;margin: 0;&quot;&gt;The &lt;a href=&quot;https://1-bit.app/privacy/&quot;&gt;privacy policy&lt;/a&gt; has a section that lists exactly what the service holds, and there is a &lt;a href=&quot;https://1-bit.app/terms/&quot;&gt;terms page&lt;/a&gt; for the first time, because a free service with accounts needs one.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path-with-one-honest-addition&quot;&gt;Same audio path, with one honest addition&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;On a wired DAC nothing has changed. No transcoding, no resampling, no mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; and PCM goes out at the file’s own sample rate, and with everything left at its defaults the bytes that reach your DAC are the bytes in your files. What is new is that the app no longer refuses to play DSD where that path does not exist. It converts, and it tells you. Bit-exact was never the point; knowing what you are hearing was. &lt;a href=&quot;https://1-bit.app/#how&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;margin: 1rem 0 0;&quot;&gt;2.0 runs fine against an older bridge. The wire protocol is still v1 and no re-pairing is needed. The renditions and the bridge-side lyrics simply do not appear until you update it.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Your shares, bridge pairings, folders, playlists and settings carry over. The full list is on the &lt;a href=&quot;https://1-bit.app/changelog/&quot;&gt;changelog&lt;/a&gt;, and if anything seems off after updating, write to &lt;a href=&quot;mailto:support@1-bit.app&quot;&gt;support@1-bit.app&lt;/a&gt;. A big thank you to everyone who sent feedback and reports over the summer. Much of this release traces back to those messages.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-2-0-unfinished-symphony.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.9, The Long Day Is Over</title><link>https://1-bit.app/blog/1-bit-1-9-the-long-day-is-over/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-9-the-long-day-is-over/</guid><description>1-bit 1.9 is on the App Store. A binaural renderer that puts the stereo image out around your head, a live spectrum and true-peak analyzer fed by a tap that only reads, favorites that back up to your own bridge, composers and genres as first-class sections, and a measured answer to whether a hi-res file really is one.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.9 is on the App Store&lt;/a&gt;. Same URL, new build, free update.&lt;/p&gt;
&lt;p&gt;It is the biggest release the app has had. 290 commits, 532 files, which is more than 1.8, and unlike 1.8 a good half of it is new machinery rather than fixes. Two of the four headline features are switches you have to go and turn on yourself, which is roughly how I want this app to behave.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Spatial audio (beta)&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;A binaural renderer that lifts the stereo image out of your skull and puts it in front of you, with head tracking on AirPods that report it: turn left, the band stays where it was. It is PCM only. Put on a DSD file and it steps aside completely, and Signal Path tells you it did. My first attempt used a mathematical head model and sounded like a party trick. What made it work was swapping in the MIT KEMAR measurements, an actual dummy head with silicone ears, measured in 1994 and still the reference. It is labelled beta because the width and room settings underneath it need a lot more ears than mine.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Live audio meters&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Open Signal Path on any track and there is now an &lt;em&gt;Analyzer&lt;/em&gt; tab: a real-time spectrum, left and right peak bars, true peak, dynamic range, bandwidth, estimated key and tempo. This is the feature I have wanted since 1.0. Every player on the store claims bit-perfect. Very few will let you watch. The tap sits at the decoder output and only ever reads; it cannot alter a byte on the way past. With the switch off there is no tap installed at all, which is why it ships off.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Favorites&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Long overdue. Tap the heart on a track or an album, from the row, the long-press menu, the mini-player or the Now Playing header, and everything collects in a new Favorites section in the library. If you run a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt; you can switch on backup and they follow you to your other devices. One detail worth knowing: enabling backup against a bridge that already holds favorites &lt;em&gt;merges&lt;/em&gt; the two lists. Nothing gets thrown away because you happened to turn it on second.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Composers and Genres&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Two new sections in the library, sitting in the same chip row as Artists and Albums. They read the tags you already have and write nothing back. The classical handling is the part I care about: “Beethoven, Ludwig van” and “Ludwig van Beethoven” are one composer, not two, and genre tags that stack several values into one field get split properly instead of producing a genre called “Jazz; Vocal; Big Band”. Both work in search, and Siri will take a genre request now.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;is-this-file-actually-what-it-says-it-is&quot;&gt;Is this file actually what it says it is&lt;/h2&gt;
&lt;p&gt;This one started as a question I could not answer about my own library. I have files that were sold as hi-res. Some of them almost certainly are not.&lt;/p&gt;
&lt;p&gt;On a v0.1.9 bridge, Signal Path now shows a measured true peak, a dynamic range score, and an estimated key and tempo for each track. Alongside those, two checks that are less flattering and more useful. FLAC files carry a checksum of the audio written by the encoder, so the app compares it against what actually decodes; a mismatch means the file has been altered since it was made. It is a flag rather than a verdict, since plenty of tag editors rewrite a FLAC without updating that checksum. And the bandwidth reading answers the hi-res question directly: if a 96 kHz file has nothing above 21 kHz in it, you are looking at an upsample wearing a nice sample rate.&lt;/p&gt;
&lt;p&gt;DSD deliberately gets no verdict at all. Its noise shaping puts so much energy above the audible band that the same measurement cannot separate a genuine 1-bit master from a converted one. I would rather the app say nothing there than say something confident and wrong. The analyzer works the same way: a reading that is physically impossible gets thrown away rather than displayed, because a meter that occasionally lies is worse than no meter.&lt;/p&gt;
&lt;h2 id=&quot;two-switches-both-off&quot;&gt;Two switches, both off&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0 0 1rem;&quot;&gt;Spatial audio and the live meters both live in &lt;strong&gt;Settings, Audio&lt;/strong&gt;, and both ship off. Spatial is a processing stage, so it belongs to the same family as crossfeed and ReplayGain: if you want the file untouched, leave it alone. The meters are off for a different reason. Off means the measurement tap does not exist, rather than existing and being ignored, and I would rather that be the shipped state than a promise in a footnote.&lt;/p&gt;&lt;p style=&quot;margin: 0;&quot;&gt;Head tracking asks for Motion &amp;amp; Fitness the first time you use it. Decline and the spatial effect still works, it just stays fixed in place instead of following your head. That motion data is read on the audio path and never stored, never uploaded, and never leaves the phone. One more honest note: spatial plays about 6 dB quieter than bypass. That headroom is what stops the renderer clipping on loud material, and Dirac and Sonarworks do the same thing for the same reason. Do not A/B it by ear alone and conclude the bypass sounds better; it sounds louder.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-parts-nobody-asks-for-but-everybody-notices&quot;&gt;The parts nobody asks for but everybody notices&lt;/h2&gt;
&lt;p&gt;Waveforms no longer need a bridge. In 1.8 the drifting dust field behind the progress bar only appeared for tracks your bridge had analysed. Now the phone will do it itself when the source has none, DSD included, so SMB shares, UPnP servers and folders on the device get real waveforms too.&lt;/p&gt;
&lt;p&gt;The first sync got a lot lighter. My own library pulled 1.78 GB the first time it ran, and 1.3 GB of that was cover art the bridge was handing over at full size for the phone to immediately throw most of the pixels away. The bridge now right-sizes covers once, on the server, and the app stops re-fetching what it already has. Sync also reports honest progress instead of claiming to be done and then carrying on.&lt;/p&gt;
&lt;p&gt;Renaming or moving a file on your server used to make the track vanish until a full rescan, taking its playlist slot and its download with it. The scanner now recognises it as the same track in its new home and carries all of that across. Offline, playback moves on to the next downloaded track instead of stopping dead at the first one you do not have. And a playlist can no longer claim to be fully available offline when it is not, which it could, and did.&lt;/p&gt;
&lt;p&gt;If you have no server at all, &lt;strong&gt;Sources, +, Add Demo Bridge&lt;/strong&gt; pairs a small read-only public library in one tap so you can try the whole thing before setting anything up.&lt;/p&gt;
&lt;h2 id=&quot;and-on-the-bridge-side&quot;&gt;And on the bridge side&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge 0.1.9&lt;/a&gt; does the measuring behind the analysis above, and got a fairly serious pass of its own.&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0 0 1rem;&quot;&gt;Metadata matching used to compare titles byte for byte, so a curly apostrophe against a straight one, or ”&amp;amp;” against “and”, threw away a match the server had already returned. That is fixed, and a lot of albums that sat there unmatched for months resolved on the next scan. It also serves one copy of each duplicated track instead of three, adds acoustic fingerprinting for files whose tags are useless, and stores favorites for the app.&lt;/p&gt;&lt;p style=&quot;margin: 0;&quot;&gt;As always, none of it is required. &lt;strong&gt;1.9 runs fine against an older bridge&lt;/strong&gt;, the wire protocol is still v1, and no re-pairing is needed for any of this. The analysis columns simply do not appear.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD still goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC and PCM still goes out at the file’s own sample rate. Spatial audio is a stage you choose, it never touches DSD, and the app says so in Signal Path when you have it on. The analyzer reads and does not write. The measurements come from a pass the bridge ran hours earlier on another machine. With everything left at its defaults, the bytes that reach your DAC are the bytes in your files. &lt;a href=&quot;https://1-bit.app/#how&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-down-to-earth-version&quot;&gt;The down-to-earth version&lt;/h2&gt;
&lt;p&gt;If you already have 1-bit: open the App Store and tap update. Your shares, bridges, folders, playlists and settings carry over, and there is nothing to re-pair. Favorites, Composers and Genres appear in the library on their own. Spatial audio and the meters wait for you in Settings, Audio. If you run a bridge, update it too and the analysis columns fill in after the next scan.&lt;/p&gt;
&lt;p&gt;If you are new: it is a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 26.1 or later. Bring a NAS, a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, a UPnP server, or just a folder of files on the phone. A USB DAC if you want DSD. Or tap the demo library and borrow mine for an evening.&lt;/p&gt;
&lt;p&gt;A lot of this release came out of messages from people using it. The favorites, the composer handling and half the sync work were all somebody else’s idea first. Thank you, and keep them coming.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-9-the-long-day-is-over.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.8, Steady State</title><link>https://1-bit.app/blog/1-bit-1-8-steady-state/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-8-steady-state/</guid><description>1-bit 1.8 is on the App Store. You can point it at music folders on your device instead of copying them in, watch the music&apos;s real waveform behind the progress bar, open available album booklets, and find the records where an artist only guests. Additional improvements include optional offline caching, settings tuned to the DAC you own, and the largest fix pass since 1.0.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.8 is on the App Store&lt;/a&gt;. Same URL, new build, free update.&lt;/p&gt;
&lt;p&gt;This is the biggest release since 1.0 — 236 commits, 364 files — and yet almost none of it is a new mechanism. Half of those commits are fixes.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Your music, where it already lives&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Until now, “on-device library” meant files you had &lt;em&gt;copied into&lt;/em&gt; 1-bit. If you already had 40 GB of FLAC on the phone, you needed 80. Now you can pick a folder — anywhere on the device or on a drive plugged into the USB-C port — and the app scans and plays it in place. It’s the standard file picker, so iOS grants access to that one folder and asks for no new permission. This feature came straight from an App Store review note on 1.7, which is a nicer origin story than most features get.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;A timeline made of dust&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;The scrubber used to draw fake bars from a seed. Now, for tracks your &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt; has analysed, it draws the real peak envelope — and it stopped being a chart. It’s a field of motes shaped by the track’s own loudness, with a playhead bloom that swells with the music. All of it comes from a curve computed on the bridge hours earlier; there is no meter tapping the audio and nothing new on the render thread. Tracks from SMB, a UPnP server, your own folders, or any DSD file keep the old synthetic bars.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Album booklets&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Liner notes, finally. When your bridge has a PDF booklet for an album, a small badge appears on the artwork and opens it full-screen — the essay, the credits, the photographs, the bit of the record that never made it into a tag. Albums on a bridge without them look exactly as they did before.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Appears On&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;An artist’s page used to show only the records where they got the headline. Now there’s an &lt;em&gt;Appears On&lt;/em&gt; section for the ones where they’re a guest, a session player, a “with” credit — and those names turn up in search instead of vanishing because someone else’s name was on the sleeve. This is built entirely from the credits already in your tags, on-device.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-part-thats-off-by-default&quot;&gt;The part that’s off by default&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0 0 1rem;&quot;&gt;1.8 adds two ways for the app to fetch music without being asked: &lt;strong&gt;Prefetch upcoming tracks on Wi-Fi&lt;/strong&gt; pulls down the next few tracks in your queue so a slow link can’t stall you, and &lt;strong&gt;Cache smart mixes overnight&lt;/strong&gt; asks iOS to wake the app and download your Home mixes while you sleep. Both run only on Wi-Fi while the device is charging — never on cellular, never in Low Power Mode. The overnight one is a background task, so iOS decides if it gets a turn at all; it can go days without one.&lt;/p&gt;&lt;p style=&quot;margin: 0;&quot;&gt;Turning either on also enables a small automatic cache so recently-played and upcoming tracks start instantly. It lives in its own subtree, reclaims its own space oldest-first, and cannot touch the downloads you chose deliberately. With both toggles off, nothing is ever written to it. And none of this is a new destination: the bytes come from the same bridge or share the app was already streaming from.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;and-on-the-bridge-side&quot;&gt;And on the bridge side&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge 0.1.8&lt;/a&gt; is what makes two of the four features above possible — same v1 wire protocol, everything is added additively.&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;It serves the &lt;strong&gt;peak waveform&lt;/strong&gt; behind that new timeline, plus R128 loudness and an estimated key and tempo — all decoded offline on your own host with &lt;a href=&quot;https://sox.sourceforge.net&quot;&gt;sox&lt;/a&gt;, reading the samples and never altering the bytes it later hands your phone. It serves the &lt;strong&gt;PDF booklets&lt;/strong&gt;. And the admin console was rebuilt into five tabs, with Docker down to a single command for NAS and container hosts. If you’d rather not upgrade the bridge, don’t: &lt;strong&gt;1.8 runs fine against an older one&lt;/strong&gt; — the waveforms and booklets simply don’t appear.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC; PCM goes out at the file’s native sample rate. The waveform is a picture drawn from a curve computed hours ago on another machine; a booklet is a PDF; a folder you picked is read where it sits. None of them sit between the file and the DAC. There’s also a new read-only card in Settings → Audio that tells you the settings your particular DAC was tuned for — it advises, and it changes nothing on its own. The bytes that reach your DAC are the bytes in your files. &lt;a href=&quot;https://1-bit.app/#how&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-down-to-earth-version&quot;&gt;The down-to-earth version&lt;/h2&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Your SMB shares, bridge pairings, folders, and Settings carry over. The waveforms and booklets show up on their own once you’re on a 0.1.8 bridge with analysis on; the offline caching stays off until you go and turn it on. One thing you will notice without asking: the five-icon picker is gone, replaced by a single icon that follows your system appearance — gold in light, teal in dark.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 26.1 or later. Bring a NAS, a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, or just a folder of files on the phone, a USB DAC for DSD, and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-8-steady-state.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.7, First Light</title><link>https://1-bit.app/blog/1-bit-1-7-first-light/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-7-first-light/</guid><description>1-bit 1.7 is on the App Store. Ask Siri to play your library, a Home screen of automatic mixes your own bridge builds from your listening history, performer credits, and a new DAC profile — plus an optional way to pull richer artwork and artist notes. Bridge 0.1.7 ships alongside with Smart Mixes and on-device audio analysis. Same bit-exact DSD over DoP, no transcoding.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.7 is on the App Store&lt;/a&gt;. Same URL, new build, free update.&lt;/p&gt;
&lt;p&gt;The easter-egg card in Settings → About drops back to a single line this release, after the little poems of 1.4 and 1.5. This one just reads &lt;em&gt;“First Light.”&lt;/em&gt; Two things in 1.7 earn it: 1-bit can finally &lt;em&gt;hear&lt;/em&gt; you — say “play … on 1-bit” and Siri takes it from there — and it wakes up to a Home screen of mixes your own bridge has quietly assembled from what you’ve been listening to.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Siri — “play … on 1-bit”&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Ask for an album, an artist, a playlist, or your downloads by name — at home, on the Lock Screen, or in the car — and 1-bit plays it from your own library. Apple does the listening; the app only ever receives the resolved request (which record you asked for) and starts the music. No voice data comes to me, and nothing about what you play is handed back to Siri.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;A Home screen that mixes itself&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Heavy Rotation, Drive Mix, Wind Down, an Auto Mix that sequences by musical key, a mix that shifts with the time of day. They’re built by &lt;em&gt;your own&lt;/em&gt; &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, once a day, from the listening history you chose to share back in 1.5 — server-side, on hardware you run, never touching a machine of mine. The Home tab only shows up when there’s something in it.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Performer credits&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;The tag parser now reads performer and involved-people frames — the session players, the engineer, the “with” line — not just the headline artist. If your files carry the credits, the people behind the record finally show up in the metadata. All parsed on-device from tags you already have.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;CarPlay recents &amp;amp; a new DAC&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;CarPlay keeps your recent searches and recently-played albums and playlists on the home screen, so you pick up where you left off without digging — kept on the phone, never uploaded. And the profiled-DAC list gains a &lt;strong&gt;Mytek Brooklyn DAC+&lt;/strong&gt;, with its own curated resync timing and DSD ceiling.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;a-quieter-addition-richer-artwork-and-artist-notes&quot;&gt;A quieter addition: richer artwork and artist notes&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0 0 1rem;&quot;&gt;1.7 also adds an optional way to get &lt;em&gt;richer&lt;/em&gt; metadata. Turn on &lt;strong&gt;Atlas&lt;/strong&gt; for a bridge and 1-bit can pull higher-resolution square cover art, artist biographies, and short album descriptions for whatever you’re looking at. It’s &lt;strong&gt;off by default&lt;/strong&gt;, you flip it on per bridge, and it only ever fetches &lt;em&gt;public&lt;/em&gt; music information.&lt;/p&gt;&lt;p style=&quot;margin: 0 0 1rem;&quot;&gt;Let me be straight about it, because it’s a first for this app: Atlas is a small service I run — the first server in the whole 1-bit story that’s actually &lt;em&gt;mine&lt;/em&gt;, after two years of the app only ever talking to hardware &lt;em&gt;you&lt;/em&gt; own. When it’s on, the app proves it’s a genuine, unmodified install (Apple’s App Attest) and sends nothing but the MusicBrainz ID of the album or artist on screen. To keep it from being abused, Atlas holds a minimal record — an attestation key and the IP it last saw — that isn’t tied to your identity, is never used for tracking, and keeps no log of what you looked up. It’s deletable on request, and the service is self-hostable if you’d rather it never leave your own boxes.&lt;/p&gt;&lt;p style=&quot;margin: 0;&quot;&gt;The one visible consequence of all this: because Atlas &lt;em&gt;can&lt;/em&gt; be switched on, this release’s App Store privacy card now lists an &lt;strong&gt;Identifiers&lt;/strong&gt; item — used only for app functionality and fraud prevention, not linked to your identity, not used for tracking. With Atlas off, which is how it ships, 1-bit still collects nothing at all. The &lt;a href=&quot;https://1-bit.app/privacy/&quot;&gt;privacy policy&lt;/a&gt; spells out every line of it.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;and-on-the-bridge-side&quot;&gt;And on the bridge side&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge 0.1.7&lt;/a&gt; ships alongside — same v1 wire protocol, with the new endpoints added additively.&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;Three themes. &lt;strong&gt;Smart Mixes&lt;/strong&gt; are the rotating, server-generated playlists behind that new Home screen — rebuilt once a day from your opt-in listening history and the analysis below, served only to your own paired devices. &lt;strong&gt;On-device audio analysis&lt;/strong&gt; lets the bridge decode your tracks locally (with &lt;a href=&quot;https://sox.sourceforge.net&quot;&gt;sox&lt;/a&gt;, ffmpeg as a fallback) to compute a peak waveform for the iOS scrubber, R128 loudness, and an estimated key and tempo — all of it on the bridge host, nothing about your audio going anywhere. And the optional &lt;strong&gt;Atlas path&lt;/strong&gt;: by default your &lt;em&gt;app&lt;/em&gt; fetches the richer metadata and hands it to the bridge to cache for your other devices, with a bridge-direct bulk-harvest mode for big libraries — both off by default. Full release notes on the &lt;a href=&quot;https://github.com/acoseac/1-bit-bridge/releases/latest&quot;&gt;bridge releases page&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC; PCM goes out at the file’s native sample rate. Siri only tells the app &lt;em&gt;what&lt;/em&gt; to play; the mixes are lists of your own tracks; Atlas only ever touches metadata, never the audio. The bytes that reach your DAC are the bytes in your files. &lt;a href=&quot;https://1-bit.app/#how&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-unromantic-version&quot;&gt;The unromantic version&lt;/h2&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Your SMB shares, bridge pairings, and Settings carry over. Siri asks permission the first time you use it; the Home mixes appear on their own once you’re running a bridge with Smart Mixes on; Atlas and everything else new stays off until you decide to turn it on.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 26.1 or later. Bring a NAS or a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, a USB DAC for DSD, and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-7-first-light.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit has a new home</title><link>https://1-bit.app/blog/1-bit-has-a-new-home/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-has-a-new-home/</guid><description>1-bit — the bit-exact DSD and PCM player for iOS — now has its own site at 1-bit.app. Here&apos;s what moved off ars.md, what stayed, and why the split made sense.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;1-bit now has a place of its own on the web: &lt;strong&gt;&lt;a href=&quot;https://1-bit.app/&quot;&gt;1-bit.app&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When I &lt;a href=&quot;https://1-bit.app/blog/1-bit-is-out/&quot;&gt;launched it&lt;/a&gt; back in April, the whole thing lived in a few pages tucked under &lt;code&gt;ars.md/1-bit/&lt;/code&gt;. That was fine for a launch — one app, a couple of pages, no reason to overthink it. But it kept growing. A desktop bridge. Support docs and an FAQ. A privacy policy. A changelog that needed somewhere to live. At some point a product sharing a roof with my personal blog started to feel less like a feature and more like clutter.&lt;/p&gt;
&lt;p&gt;So I gave it its own address.&lt;/p&gt;
&lt;h2 id=&quot;whats-at-1-bitapp&quot;&gt;What’s at 1-bit.app&lt;/h2&gt;
&lt;p&gt;Everything about the app, now under one roof:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://1-bit.app/&quot;&gt;The app&lt;/a&gt;&lt;/strong&gt; — what it is, what it plays, and the App Store link.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;The bridge&lt;/a&gt;&lt;/strong&gt; — the little desktop companion that serves your library to the app.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://1-bit.app/support/&quot;&gt;Support&lt;/a&gt;&lt;/strong&gt; — setup, settings, and the FAQ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://1-bit.app/changelog/&quot;&gt;Changelog&lt;/a&gt;&lt;/strong&gt; — every release, in one place.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://1-bit.app/privacy/&quot;&gt;Privacy&lt;/a&gt;&lt;/strong&gt; — the short version: it doesn’t phone home.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-stays-here&quot;&gt;What stays here&lt;/h2&gt;
&lt;p&gt;The writing. ars.md is where I think out loud, and a lot of that thinking is about 1-bit — so the per-release notes and the how-tos stay right here on the blog:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update, September 2026: they have since moved here, to &lt;a href=&quot;https://1-bit.app/blog/&quot;&gt;1-bit.app/blog&lt;/a&gt; — the personal site keeps only the essays. The why is in &lt;a href=&quot;https://coseac.swiss/blog/pruning-the-garden/&quot;&gt;Pruning the garden&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://1-bit.app/blog/how-to-play-dsd-on-iphone/&quot;&gt;How to play DSD on an iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://1-bit.app/blog/chord-2go-iphone-setup/&quot;&gt;Setting up Chord 2go with an iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://coseac.swiss/blog/when-no-dac-isnt-no-dac/&quot;&gt;When “no DAC” isn’t no DAC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those are me figuring things out in public, not product copy. They belong with the blog, not the storefront — and new release posts will keep landing here too.&lt;/p&gt;
&lt;h2 id=&quot;nothing-breaks&quot;&gt;Nothing breaks&lt;/h2&gt;
&lt;p&gt;Every old &lt;code&gt;ars.md/1-bit/…&lt;/code&gt; link now 301-redirects to its new home on 1-bit.app. Bookmarks, search results, links from these very posts — they all land in the right place. You don’t have to do anything.&lt;/p&gt;
&lt;p&gt;The app itself hasn’t changed: same bit-exact audio path, same promise that what goes in comes out untouched. It just has a better address now.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/&quot;&gt;See it at 1-bit.app&lt;/a&gt;.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-has-a-new-home.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category></item><item><title>Cable or 2Go? Two ways to feed a Hugo 2 from an iPhone</title><link>https://1-bit.app/blog/iphone-to-hugo-2-cable-vs-2go/</link><guid isPermaLink="true">https://1-bit.app/blog/iphone-to-hugo-2-cable-vs-2go/</guid><description>Two ways to play music from an iPhone into a Chord Hugo 2 — a USB cable, or UPnP to a 2Go bolted onto it. Both are bit-exact. Here&apos;s what actually differs, and which one is optimal.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you own a Chord Hugo 2 and an iPhone, there are two good ways to get music from one into the other. You can run a USB cable straight from the phone to the Hugo 2. Or you can bolt a &lt;a href=&quot;https://1-bit.app/blog/chord-2go-iphone-setup/&quot;&gt;Chord 2Go&lt;/a&gt; onto the back of the Hugo 2 and have the phone send music to it over your network. People ask me which is better often enough that it’s worth laying out properly — including the part where the honest answer is “it depends, and not for the reason you’d guess.”&lt;/p&gt;
&lt;p&gt;I build &lt;a href=&quot;https://1-bit.app/&quot;&gt;1-bit&lt;/a&gt;, the iOS player I’ll use for the walkthrough, and it does both paths. So I’ve spent a lot of time A/B-ing them on my own Hugo 2. Here’s what I’ve found.&lt;/p&gt;
&lt;h2 id=&quot;the-thing-nobody-points-out&quot;&gt;The thing nobody points out&lt;/h2&gt;
&lt;p&gt;Both paths end at the &lt;em&gt;same input&lt;/em&gt; on the Hugo 2.&lt;/p&gt;
&lt;p&gt;The Hugo 2 is the DAC in both cases — it does the decoding, the conversion to analogue, all the parts that make a Chord sound like a Chord. And the 2Go doesn’t bypass any of that. The 2Go is a &lt;strong&gt;transport&lt;/strong&gt;: it pulls a file off your network and feeds the Hugo 2 over the very USB input your cable would otherwise plug into. Same DAC, same digital input, same decoding.&lt;/p&gt;
&lt;p&gt;So the question was never “which sounds better, the Hugo 2 or the Hugo 2.” It’s narrower and more interesting than that: &lt;strong&gt;what should be driving that input — your phone, or the 2Go?&lt;/strong&gt; That’s the entire decision.&lt;/p&gt;
&lt;h2 id=&quot;path-a--the-cable-phone-as-transport&quot;&gt;Path A — the cable: phone as transport&lt;/h2&gt;
&lt;p&gt;The simplest version. A USB cable from the iPhone to the Hugo 2, and 1-bit sends the audio straight down it, bit-exact, DSD wrapped in DoP if that’s what you’re playing. I wrote the full how-to for this in &lt;a href=&quot;https://1-bit.app/blog/how-to-play-dsd-on-iphone/&quot;&gt;How to play DSD on an iPhone&lt;/a&gt; — the cable rig is exactly that setup.&lt;/p&gt;
&lt;p&gt;What’s good about it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It works anywhere.&lt;/strong&gt; No network, no bridge, no setup. Plane, train, hotel, a friend’s couch — if the phone and the Hugo 2 are in the same bag, you have a full hi-fi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It’s rock solid.&lt;/strong&gt; There’s no discovery, no multicast, no router to misbehave. You plug in and it plays.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It’s genuinely portable.&lt;/strong&gt; This is the rig the Hugo 2 was arguably designed for — a battery DAC and a phone, untethered from the wall.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What’s not:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The phone is in the audio path.&lt;/strong&gt; It’s the transport now, which means it has to stay physically attached, it drains its battery doing the work, and it ties up the only port you’ve got.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The phone is electrically noisy.&lt;/strong&gt; It’s a general-purpose computer full of radios and switching supplies, and the cable couples some of that to the DAC. Hold that thought — it’s the whole case for the other path.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;path-b--the-2go-phone-as-remote&quot;&gt;Path B — the 2Go: phone as remote&lt;/h2&gt;
&lt;p&gt;Now the network version. The 2Go is attached to the Hugo 2 and joined to your Wi-Fi. Your music lives on a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;1-bit bridge&lt;/a&gt; somewhere on the same network. In 1-bit you pick the 2Go as the output and press play. The full click-by-click is in &lt;a href=&quot;https://1-bit.app/blog/chord-2go-iphone-setup/&quot;&gt;Setting up a Chord 2Go with an iPhone&lt;/a&gt;, but here’s the part that matters for this comparison:&lt;/p&gt;
&lt;p&gt;The phone never touches the audio. It hands the 2Go a link to the file on your bridge, and the &lt;strong&gt;2Go fetches and plays it itself&lt;/strong&gt;. The phone drops out of the path entirely and becomes a remote control.&lt;/p&gt;
&lt;p&gt;What’s good about it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You can walk away.&lt;/strong&gt; Lock the phone, leave the room, let the battery sit at 100%. The 2Go keeps playing because it’s the one doing the playing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The DAC is isolated from the phone.&lt;/strong&gt; This is the real audiophile argument for the 2Go, and it’s a fair one: the noisy general-purpose computer is no longer galvanically tied to your DAC. The transport feeding the Hugo 2 is now a purpose-built, battery-powered streamer instead of a phone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It’s a tidy home rig.&lt;/strong&gt; Once it’s set up, the experience is “open app, press play” from anywhere in the house.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What’s not:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It needs your network and a bridge.&lt;/strong&gt; The music has to live on a bridge for the 2Go to have something to fetch — on-device files and SMB shares can’t be cast this way. And the whole thing depends on your LAN behaving.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It can have network gremlins.&lt;/strong&gt; Multicast quirks, client isolation, a flaky mesh node — none of it fatal, all of it covered in the 2Go guide’s troubleshooting, but it’s complexity the cable simply doesn’t have.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-bits-are-identical--so-set-your-expectations&quot;&gt;The bits are identical — so set your expectations&lt;/h2&gt;
&lt;p&gt;Here’s the part the format wars won’t tell you: &lt;strong&gt;both paths are &lt;a href=&quot;https://1-bit.app/learn/bit-perfect-audio/&quot;&gt;bit-exact&lt;/a&gt;.&lt;/strong&gt; The cable sends the original file’s bits down USB with no resampling. The 2Go fetches the original file and plays it untouched. DSD works on both — over the cable it goes as DoP, and the 2Go receives the whole &lt;code&gt;.dsf&lt;/code&gt; and hands it to the Hugo 2 intact.&lt;/p&gt;
&lt;p&gt;So the same album, played both ways, arrives at the Hugo 2 as the same data. Anyone promising you a dramatic sound-quality leap from switching is selling something. If there’s a difference, it lives entirely in that one remaining variable — electrical noise from the transport — and how audible &lt;em&gt;that&lt;/em&gt; is on any given system is a genuinely contested question. I can hear myself wanting to hear it, which is exactly when I trust it least.&lt;/p&gt;
&lt;h2 id=&quot;where-they-actually-differ&quot;&gt;Where they actually differ&lt;/h2&gt;
&lt;p&gt;Strip away the bits, which are equal, and you’re left with this:&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem; margin: 1.5rem 0 2rem; font-size: 0.95rem;&quot;&gt;&lt;ul style=&quot;margin: 0; padding-left: 1.25rem;&quot;&gt;&lt;li&gt;&lt;strong&gt;The phone’s job.&lt;/strong&gt; Cable: it’s the transport, tethered and working. 2Go: it’s a remote, free to lock and pocket.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Isolation.&lt;/strong&gt; Cable: phone noise reaches the DAC. 2Go: a purpose-built transport sits between them.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dependencies.&lt;/strong&gt; Cable: none. 2Go: your network, plus a bridge holding the library.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Reliability.&lt;/strong&gt; Cable: as reliable as plugging in a cable. 2Go: as reliable as your Wi-Fi.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Where it shines.&lt;/strong&gt; Cable: on the go. 2Go: a settled home system.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;so-which-is-optimal&quot;&gt;So which is optimal?&lt;/h2&gt;
&lt;p&gt;The non-cop-out answer: &lt;strong&gt;they’re optimal for different lives, and most people who own both end up using both.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At home, the 2Go is the nicer way to live. The phone is free, the battery’s full, the DAC is fed by a dedicated transport instead of a pocket computer, and “press play and walk off” is just a better daily experience than being leashed to a cable. If you have a fixed listening spot and a network you trust, this is the one to set up.&lt;/p&gt;
&lt;p&gt;On the move — or any time you want zero failure points — the cable wins, and it gives up nothing on the bits to do it. It’s the more reliable path and the only portable one. When the Hugo 2 is in a bag rather than on a shelf, there’s no contest.&lt;/p&gt;
&lt;p&gt;What I’d gently steer you away from is buying a 2Go &lt;em&gt;expecting it to sound better&lt;/em&gt; than a clean USB cable into the same Hugo 2. That’s not what you’re paying for. You’re paying for the phone to leave the audio path — for the freedom and the isolation, not for a different stack of bits. If those are worth it to you, it’s a lovely upgrade. If you mostly listen on the go, save the money and keep using the cable; you already own the bit-exact path.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;The reassuring thing about a Hugo 2 is that you can’t really get this wrong. Cable or 2Go, the DAC at the end is the same and the bits reaching it are the same. Pick the path that fits where you listen, and let the Chord do the part it’s good at. If you haven’t set up either yet, start with the &lt;a href=&quot;https://1-bit.app/blog/how-to-play-dsd-on-iphone/&quot;&gt;DSD-over-cable guide&lt;/a&gt; — it’s the five-minute version — and graduate to the &lt;a href=&quot;https://1-bit.app/blog/chord-2go-iphone-setup/&quot;&gt;2Go&lt;/a&gt; when you want the phone out of the loop.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/iphone-to-hugo-2-cable-vs-2go.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>audio</category><category>Chord</category><category>audiophile</category><category>DLNA</category></item><item><title>Setting up a Chord 2Go with an iPhone</title><link>https://1-bit.app/blog/chord-2go-iphone-setup/</link><guid isPermaLink="true">https://1-bit.app/blog/chord-2go-iphone-setup/</guid><description>How to play music from an iPhone to a Chord 2Go over your own network — bit-exact, no transcoding — using DLNA and a self-hosted 1-bit bridge. Plus the security caveat nobody mentions.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Chord 2Go is a lovely, slightly fiddly little network streamer. Getting an iPhone to send music to it — the real bit-exact version, not some down-sampled AirPlay copy — is one of those tasks that’s simple once you know the path and baffling until you do. This is the path I use.&lt;/p&gt;
&lt;p&gt;Fair warning up front: I make &lt;a href=&quot;https://1-bit.app/&quot;&gt;1-bit&lt;/a&gt;, and version 1.5 added the feature this guide leans on. The networking ideas apply to any DLNA setup, but the click-by-click is 1-bit plus its bridge. If you run a different player, skim for the concepts and ignore my screenshots-in-prose.&lt;/p&gt;
&lt;h2 id=&quot;what-the-2go-actually-is&quot;&gt;What the 2Go actually is&lt;/h2&gt;
&lt;p&gt;It’s a network streamer. It pulls music off your network (or an SD card) and feeds a Chord DAC — it bolts onto a Hugo 2, or works with other DACs through the 2Yu adapter. It speaks several protocols: Roon, AirPlay, DLNA/UPnP, MPD. The one we want is &lt;strong&gt;DLNA/UPnP&lt;/strong&gt;, because it can move your files bit-for-bit with no re-encoding on the way.&lt;/p&gt;
&lt;h2 id=&quot;why-not-just-airplay&quot;&gt;Why not just AirPlay?&lt;/h2&gt;
&lt;p&gt;You can AirPlay to a 2Go, and for background listening it’s fine. But AirPlay re-clocks and caps the stream — it isn’t the bit-exact path you bought a Chord for. DLNA is different in a subtle but important way. With AirPlay, the phone &lt;em&gt;pushes&lt;/em&gt; a stream to the 2Go. With DLNA, the phone just tells the 2Go &lt;em&gt;where the file lives&lt;/em&gt;, and the 2Go fetches and plays the original itself. The phone stops being in the audio path. That’s the part that makes it bit-exact.&lt;/p&gt;
&lt;h2 id=&quot;what-you-need&quot;&gt;What you need&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem; margin-bottom: 2rem; font-size: 0.95rem;&quot;&gt;&lt;ul style=&quot;margin: 0; padding-left: 1.25rem;&quot;&gt;&lt;li&gt;A &lt;strong&gt;Chord 2Go&lt;/strong&gt; on your network (with a Hugo 2, or via 2Yu with another DAC)&lt;/li&gt;&lt;li&gt;An iPhone with &lt;strong&gt;1-bit 1.5 or newer&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;A &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;1-bit bridge&lt;/a&gt; running on your network, with your library on it&lt;/li&gt;&lt;li&gt;All three on the same LAN — same Wi-Fi, same subnet&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;p&gt;One thing to get clear before you start: &lt;strong&gt;this is a bridge feature.&lt;/strong&gt; The 2Go plays by fetching a file from a URL, so the music has to live on a bridge for it to have something to fetch. Tracks on an SMB share or sitting on the phone itself can’t be cast this way — there’s no address for the 2Go to pull from.&lt;/p&gt;
&lt;h2 id=&quot;step-1--get-the-2go-onto-your-network&quot;&gt;Step 1 — Get the 2Go onto your network&lt;/h2&gt;
&lt;p&gt;Use Chord’s GoFigure app to join the 2Go to your Wi-Fi (or wire it in). That part is Chord’s territory and their docs cover it well, so I won’t re-tread it. Just confirm the 2Go is actually on your network and reachable before going further — most of the “it doesn’t work” emails I get are really “the 2Go was never online.”&lt;/p&gt;
&lt;h2 id=&quot;step-2--run-a-bridge-with-your-library&quot;&gt;Step 2 — Run a bridge with your library&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;1-bit bridge&lt;/a&gt; is the free, open-source companion server — Mac, Windows, Linux, or a Raspberry Pi next to your music drive. Point it at your library, pair your phone with the QR code from the admin console, and you’re set. If you already listen to 1-bit through a bridge, you’ve done this step and can move on.&lt;/p&gt;
&lt;h2 id=&quot;step-3--turn-on-the-bridges-dlna-mediaserver&quot;&gt;Step 3 — Turn on the bridge’s DLNA MediaServer&lt;/h2&gt;
&lt;p&gt;This is the piece that makes the whole 2Go path exist, and it’s &lt;strong&gt;off by default&lt;/strong&gt;. Switch it on and the bridge advertises your library on the LAN as a DLNA server that the 2Go can read.&lt;/p&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem; margin: 1.5rem 0 2rem; font-size: 0.95rem;&quot;&gt;&lt;p&gt;&lt;strong style=&quot;font-family: var(--font-sans);&quot;&gt;One thing worth saying plainly:&lt;/strong&gt; UPnP has no authentication. While that MediaServer is running, &lt;em&gt;anyone&lt;/em&gt; on your network can browse and stream that library. So it only ever binds your local network — never a public address — a public-mode bridge refuses to start it at all, and you should only turn it on for a network you trust. Leave it off on café or shared Wi-Fi.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;step-4--pick-the-2go-in-1-bit&quot;&gt;Step 4 — Pick the 2Go in 1-bit&lt;/h2&gt;
&lt;p&gt;Open Now Playing, tap the output picker, and the 2Go shows up as a renderer. Other DLNA control apps you might already use — mconnect, BubbleUPnP, Linn Kazoo — work the same way; the 2Go is just the one I built this against. Select it.&lt;/p&gt;
&lt;h2 id=&quot;step-5--press-play&quot;&gt;Step 5 — Press play&lt;/h2&gt;
&lt;p&gt;Here’s what happens under the hood: 1-bit hands the 2Go the track’s metadata and a link to the file on your bridge. The 2Go fetches the audio itself over your LAN and plays it, bit-exact, into your Chord DAC. Nothing routes through me or any server I run — at that point the phone is basically a remote control, and you can lock it and walk off while the music keeps going.&lt;/p&gt;
&lt;p&gt;DSD works too, by the way. Because the 2Go receives the original file rather than a stream from the phone, a DSD track arrives intact and your Chord setup decodes it the way it always does. The 2Go does the work; the phone is just pointing at the bytes.&lt;/p&gt;
&lt;h2 id=&quot;when-the-2go-wont-show-up&quot;&gt;When the 2Go won’t show up&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Check that everything is on the same subnet.&lt;/strong&gt; Guest networks and a router setting usually called “client isolation” or “AP isolation” will hide your devices from each other. This is the number-one cause, by a wide margin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confirm the DLNA MediaServer is actually on&lt;/strong&gt; in the bridge admin console.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mind multicast.&lt;/strong&gt; DLNA discovery uses SSDP, which rides on multicast, and some mesh Wi-Fi systems drop multicast between bands or nodes. If discovery is flaky, getting the phone and bridge onto the same band or node often fixes it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;when-it-shows-up-but-wont-play&quot;&gt;When it shows up but won’t play&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The track has to live on the bridge.&lt;/strong&gt; If you’ve selected the 2Go but you’re playing from an SMB share or on-device files, there’s nothing for it to fetch. Add (or move) the music to the bridge and try again.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;Chord spent years of firmware getting the 2Go to this point; it took me one release to plumb the iPhone side into it. And the reward for all of it is that the setup disappears: open the app, pick the 2Go, press play. That’s the bar for gear like this — once it’s working, you should never have to think about it again.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/chord-2go-iphone-setup.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>audio</category><category>Chord</category><category>DLNA</category><category>audiophile</category></item><item><title>How to play DSD on an iPhone</title><link>https://1-bit.app/blog/how-to-play-dsd-on-iphone/</link><guid isPermaLink="true">https://1-bit.app/blog/how-to-play-dsd-on-iphone/</guid><description>iPhones don&apos;t play DSD out of the box, and most apps quietly convert it to PCM. Here&apos;s what actually playing DSD takes — a USB DAC, DoP, the right file, and a player that gets out of the way.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Some version of this lands in my inbox most weeks: &lt;em&gt;“I put my DSD files on my iPhone and nothing plays them right. What am I doing wrong?”&lt;/em&gt; Usually the answer is nothing. The iPhone just doesn’t play DSD the way you’d expect, and a lot of apps cover for that in a way that quietly defeats the point.&lt;/p&gt;
&lt;p&gt;I build &lt;a href=&quot;https://1-bit.app/&quot;&gt;1-bit&lt;/a&gt;, an iOS player that plays DSD properly, so I’ve spent more hours in this corner than is strictly healthy. Here’s the whole picture in plain terms — what you need, what trips people up, and how to check you’re actually hearing DSD and not a polite imitation of it.&lt;/p&gt;
&lt;h2 id=&quot;what-dsd-actually-is&quot;&gt;What DSD actually is&lt;/h2&gt;
&lt;p&gt;DSD is Direct Stream Digital — the format behind SACD. Instead of the 16 or 24 bits per sample that PCM uses (CDs, FLAC, most of what you own), DSD stores audio as a single bit, sampled millions of times a second: &lt;a href=&quot;https://1-bit.app/learn/dsd-rates-explained/&quot;&gt;2.8 MHz for DSD64, 5.6 for DSD128, 11.2 for DSD256&lt;/a&gt;. It’s a different way of describing the same sound. On disk it usually shows up as a &lt;code&gt;.dsf&lt;/code&gt; file, occasionally &lt;code&gt;.dff&lt;/code&gt;. If you want the longer version of why it exists, I wrote about it when &lt;a href=&quot;https://1-bit.app/blog/1-bit-is-out/&quot;&gt;1-bit launched&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-catch-nobody-mentions&quot;&gt;The catch nobody mentions&lt;/h2&gt;
&lt;p&gt;iOS has no built-in DSD playback. Apple Music won’t do it. The Files preview won’t do it. Out of the box, the iPhone is a PCM device, full stop.&lt;/p&gt;
&lt;p&gt;So every app that claims to “play DSD” on iOS is doing one of two things. Most convert it to PCM first — easy, works everywhere, and sounds fine to almost everyone. A few wrap it in something called DoP and send the untouched bits to a DAC built to decode them. The second one is what you’re actually after, and it needs specific hardware.&lt;/p&gt;
&lt;h2 id=&quot;what-you-need&quot;&gt;What you need&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem; margin-bottom: 2.5rem; font-size: 0.95rem;&quot;&gt;&lt;ul style=&quot;margin: 0; padding-left: 1.25rem;&quot;&gt;&lt;li&gt;An iPhone — USB-C (15 or newer) makes life easier; Lightning works with a camera adapter&lt;/li&gt;&lt;li&gt;A &lt;strong&gt;USB DAC that supports DSD over DoP&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Your DSD files (&lt;code&gt;.dsf&lt;/code&gt;) somewhere the app can reach&lt;/li&gt;&lt;li&gt;A player that sends DSD as DoP &lt;strong&gt;without converting it&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;h2 id=&quot;you-need-a-real-dac--the-phone-cant-do-this-alone&quot;&gt;You need a real DAC — the phone can’t do this alone&lt;/h2&gt;
&lt;p&gt;DSD has to be decoded by hardware made for it. The built-in output, Bluetooth, AirPlay — none of them carry a true DSD stream. Bluetooth and AirPlay are lossy or PCM by the time they reach the other end, so “DSD over Bluetooth” isn’t DSD anymore; it’s a conversion with extra steps.&lt;/p&gt;
&lt;p&gt;What works is a USB DAC that lists DSD or DoP support. DACs from Chord, iFi, FiiO, Topping and the like generally handle it — check the spec sheet for the words “DSD” or “DoP” before you buy. And to be clear: a cheap USB-C-to-headphone dongle &lt;em&gt;is&lt;/em&gt; a DAC, but a PCM-only one. It’ll play your music; it won’t lock to DSD.&lt;/p&gt;
&lt;h2 id=&quot;what-dop-is-and-why-you-keep-seeing-it&quot;&gt;What DoP is, and why you keep seeing it&lt;/h2&gt;
&lt;p&gt;DoP stands for &lt;a href=&quot;https://1-bit.app/learn/dop-vs-native-dsd/&quot;&gt;DSD over PCM&lt;/a&gt;, and it’s the trick that makes any of this possible. iOS won’t hand a raw, native DSD stream to a USB DAC. So the whole industry does the same workaround: take the 1-bit DSD stream, pack it inside PCM-shaped frames, and add a little marker that tells the DAC “this looks like PCM but it isn’t — it’s DSD wearing a coat.”&lt;/p&gt;
&lt;p&gt;The DAC reads the marker, unwraps the frames, and decodes the original bits. Nothing is lost in the wrapping; it’s the same data, just couriered in a container iOS is willing to carry. The only requirement is that your DAC understands DoP. Most modern USB DACs do.&lt;/p&gt;
&lt;h2 id=&quot;the-trap-playing-a-file-vs-actually-playing-dsd&quot;&gt;The trap: “playing” a file vs actually playing DSD&lt;/h2&gt;
&lt;p&gt;This is the part that fools people, including careful ones.&lt;/p&gt;
&lt;p&gt;An app can play your DSD album, show the right title, scrub through it like normal — and be silently converting it to 48 kHz PCM the entire time. It plays. It just isn’t DSD anymore. That’s the default behaviour of a surprising number of iOS players, because conversion is the path of least resistance.&lt;/p&gt;
&lt;p&gt;Here’s how to know which one you’ve got: &lt;strong&gt;look at the DAC, not the app.&lt;/strong&gt; A DAC decoding real DSD lights up a DSD or DoP indicator, or shows the rate outright — &lt;code&gt;DSD64&lt;/code&gt;, say. If it reads &lt;code&gt;PCM 44.1&lt;/code&gt; or &lt;code&gt;PCM 48&lt;/code&gt; while you’re “playing” a DSD file, you’re hearing a conversion. The DAC is the honest witness here. The app’s screen will tell you whatever the app wants to tell you.&lt;/p&gt;
&lt;h2 id=&quot;doing-it-step-by-step&quot;&gt;Doing it, step by step&lt;/h2&gt;
&lt;p&gt;Since 1-bit is my app I’ll use it for the walkthrough, but most of these steps apply to any player worth using.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Plug the DAC into the iPhone.&lt;/strong&gt; USB-C to USB-C on a 15 or 16. On older Lightning iPhones, you need Apple’s Lightning-to-USB Camera Adapter.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Put your DSD files where the app can see them&lt;/strong&gt; — an SMB share or NAS, a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;1-bit bridge&lt;/a&gt;, or dropped straight into the app’s folder over Finder or Files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Play a DSD album.&lt;/strong&gt; 1-bit reads the &lt;code&gt;.dsf&lt;/code&gt;, wraps it in DoP, and sends it to the DAC with no mixer and no resampling in the way.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check the DAC.&lt;/strong&gt; It should report a DSD/DoP lock — &lt;code&gt;DSD64&lt;/code&gt;, &lt;code&gt;DSD128&lt;/code&gt;, whatever the file is. That’s the whole game. If you see that, you’re done.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;a-word-on-lightning-usb-c-and-power&quot;&gt;A word on Lightning, USB-C, and power&lt;/h2&gt;
&lt;p&gt;On USB-C iPhones a plain cable usually just works. On Lightning iPhones the bare Camera Adapter is fine for low-power DACs, but a hungrier desktop DAC may pull more than the phone wants to give — that’s when you want the version of the adapter with the extra Lightning power port, so the DAC isn’t running off the phone. If a DAC connects and then drops out a few seconds later, suspect power before anything else.&lt;/p&gt;
&lt;h2 id=&quot;when-it-doesnt-work&quot;&gt;When it doesn’t work&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No sound at all.&lt;/strong&gt; Either the DAC doesn’t do DoP, or your cable is charge-only (a classic — swap the cable first).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It plays, but the DAC says PCM.&lt;/strong&gt; The app is converting. Look for a “bit-exact” or “no resampling” setting, or switch to a player that doesn’t convert in the first place.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The DAC won’t lock, or clicks between tracks.&lt;/strong&gt; Some DACs — Chord’s FPGA-based ones especially — need a moment to re-lock. A good player builds that settling time in so you don’t hear it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The app says “no DAC” or doesn’t recognise your gear.&lt;/strong&gt; That’s almost always iOS hiding the DAC’s identity from the app, not an actual fault. I went down that whole rabbit hole in &lt;a href=&quot;https://coseac.swiss/blog/when-no-dac-isnt-no-dac/&quot;&gt;a separate post&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;do-you-even-need-dsd&quot;&gt;Do you even need DSD?&lt;/h2&gt;
&lt;p&gt;Honest answer, since someone always asks: the gap between DSD and good high-res PCM is smaller than the format wars make it sound. If you have DSD files — SACD rips, native DSD recordings — play them as DSD; there’s no reason to throw bits away converting them. If you don’t have any, you’re not missing some hidden tier of sound by listening to clean FLAC.&lt;/p&gt;
&lt;p&gt;The point of all this was never that DSD is magic. It’s that if you went to the trouble of owning it, your phone ought to play it exactly as it is. Get the three things right — a DAC that speaks DoP, files the app can reach, a player that doesn’t quietly convert — and the iPhone makes a genuinely good DSD transport.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/how-to-play-dsd-on-iphone.png" medium="image" type="image/png"/><category>DSD</category><category>iOS</category><category>audio</category><category>DoP</category><category>audiophile</category><category>1-bit</category></item><item><title>1-bit 1.5, the one with Chord 2Go support</title><link>https://1-bit.app/blog/1-bit-1-5-chord-2go/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-5-chord-2go/</guid><description>1-bit 1.5 is on the App Store. Play bit-exact to a Chord 2Go or any DLNA renderer on your network, back up your playlists to your own bridge, and keep a private listening history. Bridge 0.1.5 ships alongside with a DLNA MediaServer. Same DSD over DoP, no transcoding.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.5 is on the App Store&lt;/a&gt;. Same URL, new build, free update.&lt;/p&gt;
&lt;p&gt;The easter-egg card in Settings → About keeps the multi-line habit it picked up in 1.4. This release’s verse is &lt;em&gt;“One hundred three commits are past, / The music breathes, unfettered, vast. / Pure bit-perfect sound takes flight, / To fill the room with deep delight. / Let every note and chord revive, / In beautiful version 1.5.”&lt;/em&gt; That fifth line is doing double duty — the headline feature is &lt;strong&gt;playing to a Chord 2Go&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Play to a Chord 2Go (and other DLNA renderers)&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Cast a track to a DLNA / UPnP renderer on your network — the Chord 2Go is the target I built this for, and generic renderers (mconnect, BubbleUPnP, Linn Kazoo) work too. Pick it from the Now Playing output picker. The app hands the renderer the track metadata and a link to the file on your own &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;; the renderer fetches and plays the audio itself, bit-exact, over your LAN. Nothing routes through a server I operate.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Playlist backup to your bridge&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Off by default, per bridge. The playlists you build in the app can now back up to the bridge you run, so they survive a reinstall or a re-pair. They go only to your bridge — never to me, never to a third party. Tracks that come from another bridge or from local / SMB storage stay as opaque references.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Listening history to your bridge&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Off by default, per bridge. Turn it on and the app reports each play — track, when, how long, codec, and where available the output device and DAC sample rate — to your own bridge. It’s your data: it lives on the bridge host, shows up on the admin console’s new Data page (histograms, most-played, export), and the bridge never forwards it anywhere.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;On-device diagnostics&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;A small daily performance summary — CPU/energy, memory, playback runtime — pulled from Apple’s on-device MetricKit and surfaced in the in-app diagnostics screen. It never leaves your phone. Handy when something feels off and you want to see whether the app is the culprit.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;a-note-on-the-chord-2go-path&quot;&gt;A note on the Chord 2Go path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;DLNA casting is a &lt;strong&gt;bridge feature&lt;/strong&gt;, not a standalone one. The renderer pulls the audio straight from your bridge over the LAN, so the track has to live on a bridge — an SMB share or the on-device library can’t be cast this way, because the renderer needs a URL to fetch from. And one thing worth saying plainly: &lt;strong&gt;UPnP has no authentication.&lt;/strong&gt; While the bridge’s DLNA MediaServer is on, any device on your LAN can browse and stream that library. So it’s off by default, it only ever binds your local network (never a public IP), and a public-mode bridge refuses to start it at all. Turn it on for a network you trust, and leave it off on shared Wi-Fi.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;and-on-the-bridge-side&quot;&gt;And on the bridge side&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge 0.1.5&lt;/a&gt; ships alongside — 45 commits since 0.1.4, iOS wire protocol unchanged at v1.&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;The big one is the &lt;strong&gt;DLNA / UPnP MediaServer&lt;/strong&gt; that makes the Chord 2Go path possible: an &lt;em&gt;All Tracks&lt;/em&gt; list plus a &lt;em&gt;Folders&lt;/em&gt; hierarchy with free-text search, bit-exact audio, cached upscale variants surfaced as alternate streams. Then the two storage features that land on the bridge: &lt;strong&gt;per-device playlist backup&lt;/strong&gt; and an &lt;strong&gt;opt-in listening history&lt;/strong&gt;, both viewable on the admin console’s new &lt;strong&gt;Data&lt;/strong&gt; page with JSON / CSV export. Plus a public-mode pairing-QR fix (the QR now carries the served Let’s Encrypt cert fingerprint and the public dial URL, so phone pairing no longer trips the TLS pin), a &lt;code&gt;sudo bridge update&lt;/code&gt; fix for FUSE-mounted libraries, and honest variant accounting across the admin views. Full release notes on the &lt;a href=&quot;https://github.com/acoseac/1-bit-bridge/releases/latest&quot;&gt;bridge releases page&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-data-we-collect-is-still-none&quot;&gt;The data we collect is still none&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;Two of the new features move your data off the phone — but only to a server &lt;em&gt;you&lt;/em&gt; run, and only if you turn them on. Playlist backup and listening history are off by default and go solely to your own bridge. DLNA playback stays on your LAN. When backup or history is enabled, the app mints a random per-device identifier (stored in the Keychain, not linked to your Apple ID or any ad identifier) so the bridge can keep each device’s backups separate. The MetricKit summary never leaves the device. No new third-party services, and aside from the multicast capability that SSDP discovery needs, no new permissions. The &lt;a href=&quot;https://1-bit.app/privacy/&quot;&gt;privacy policy&lt;/a&gt; spells all of it out, and the App Store nutrition label stays “Data Not Collected”.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC; PCM goes out at the file’s native sample rate; and when you cast to a DLNA renderer, the renderer fetches the original bytes from your bridge and does its own job. The phone moves bytes and metadata; the hardware does the rest. &lt;a href=&quot;https://1-bit.app/#dsd-playback&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-unromantic-version&quot;&gt;The unromantic version&lt;/h2&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Your SMB shares, bridge pairings, and Settings carry over. DLNA casting, playlist backup, and listening history are all off by default — you turn them on if and when you want them. To play to a Chord 2Go, enable the DLNA MediaServer on your bridge first, then pick the renderer from Now Playing.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 26.1 or later. Bring a NAS or a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, a USB DAC for DSD (or a Chord 2Go on the network), and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-5-chord-2go.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.4, the one that goes in the car</title><link>https://1-bit.app/blog/1-bit-1-4-finally-stand/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-4-finally-stand/</guid><description>1-bit 1.4 is on the App Store. CarPlay browse + Now Playing on the head unit, offline downloads, an in-app log viewer, and an optional DSD-domain DSP chain. Bridge 0.1.4 ships alongside with public-mode hosting and CarPlay-optimized variants. Same bit-exact DSD over DoP, no transcoding.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.4 is on the App Store&lt;/a&gt;. Same URL, new build, free update.&lt;/p&gt;
&lt;p&gt;Last release I &lt;a href=&quot;https://1-bit.app/blog/1-bit-1-3-forgot-the-codename/&quot;&gt;shipped a codename that lied about the version&lt;/a&gt;. This time I went the other way. Open Settings → About in 1.4, tap the easter-egg card, and instead of a single-line codename you get a small poem: &lt;em&gt;“One hundred three commits deep, while the tired engineers sleep. Offline downloads finally stand, CarPlay grids across the land. Tap the text and clear the view, version 1.4 is ready for you.”&lt;/em&gt; The two main features are right there in the verse, so I’ll keep the writeup short.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;CarPlay&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Browse, search, tap-to-play, and a Now Playing view on a CarPlay head unit — reading the same on-device library that’s on your phone. Uses Apple’s CarPlay Audio entitlement, so it’s a real CarPlay app, not a screen mirror. DSD is hidden from CarPlay because DoP markers can’t survive head-unit playback; everything else plays.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Offline downloads&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Pick a track, an album, a playlist, save it to the iPhone. Files live in app-private storage, are hidden from Files, and are excluded from iCloud backup (so they don’t quietly fill your iCloud quota). Delete the download, delete the share, or uninstall the app — they’re gone.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Diagnostic logs in Settings&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;A rolling buffer of recent log lines lives at &lt;strong&gt;Settings → Logs&lt;/strong&gt;. The logs stay on the device. A Share button is there for the rare case I ask you to send them — never automatic, never on by default.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;DSD-domain DSP (Beta)&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;An optional on-device chain — decimator, sigma-delta modulator, volume stage — that stays in the DSD domain instead of converting to PCM first. Off by default. Beta because thermal headroom on older iPhones can still surface the odd crackle, and I’d rather call that out than pretend it’s settled.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;and-on-the-bridge-side&quot;&gt;And on the bridge side&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge 0.1.4&lt;/a&gt; ships alongside — 44 commits since 0.1.3, wire protocol unchanged at v1.&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;Two big themes. &lt;strong&gt;Public-mode hosting:&lt;/strong&gt; &lt;code&gt;bridge init —public&lt;/code&gt; spins up a bridge intended for a small VPS, with native Let’s Encrypt provisioning via autocert, a single-user admin auth layer, and an endpoints filter so the public listener only exposes &lt;code&gt;/v1/health&lt;/code&gt; and the &lt;code&gt;/v1/share/…&lt;/code&gt; family. &lt;strong&gt;CarPlay-optimized variants:&lt;/strong&gt; a new &lt;code&gt;optimize-…&lt;/code&gt; variant class and a two-channel priority queue so on-demand CarPlay transcodes don’t sit behind a lifetime Upscale backlog. Plus a tile-grid Library Inspector, a Prometheus &lt;code&gt;/metrics&lt;/code&gt; endpoint on the admin listener, and a background orphan-sidecar GC sweeper. Full release notes on the &lt;a href=&quot;https://github.com/acoseac/1-bit-bridge/releases/latest&quot;&gt;bridge releases page&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;what-got-refined&quot;&gt;What got refined&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;A small carve-out in the iOS pinning policy: bridges deployed with a custom domain and a public Let’s Encrypt cert are now ATS-trusted, while LAN, Tailscale-magic-DNS, IP-literal, and mDNS hosts still pin against the fingerprint captured at pairing. The shape of what the app sends — paths, byte ranges, MusicBrainz IDs — is identical. The Settings screen got an IA pass to make room for the v1.4 surfaces. The deployment target is now iOS 26.1.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC; PCM goes out at the file’s native sample rate. The phone moves bytes; the DAC does the DAC’s job. &lt;a href=&quot;https://1-bit.app/#dsd-playback&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-unromantic-version&quot;&gt;The unromantic version&lt;/h2&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Your existing SMB shares, bridge pairings, and Settings carry over. Offline downloads, the DSP chain, and the log viewer are all off by default — you turn them on only if and when you want them. CarPlay shows up the moment you plug into a head unit.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 26.1 or later. Bring a NAS or a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, a USB DAC for DSD, and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-4-finally-stand.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.3, the one where we forgot to change the codename</title><link>https://1-bit.app/blog/1-bit-1-3-forgot-the-codename/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-3-forgot-the-codename/</guid><description>1-bit 1.3 is on the App Store. Opportunistic background library scans, composer/conductor/work fields for classical, a Listening Tips guide, a refined cellular streaming gate — and an easter-egg card that still calls this version &apos;Too Late, Too Soon&apos;. Bridge 0.1.3 ships alongside. Same bit-exact DSD over DoP, no transcoding.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.3 is on the App Store&lt;/a&gt;. Same URL, new build. Update on your iPhone and it’ll be there.&lt;/p&gt;
&lt;p&gt;Open Settings → About in the new version and tap the easter-egg card. You’ll find: &lt;strong&gt;Version 1.3, codename “Too Late, Too Soon”&lt;/strong&gt;. Which was 1.2’s codename. The release checklist has a step for this — three sites in &lt;code&gt;AboutView.swift&lt;/code&gt; that have to move together every release — and the checklist quietly didn’t get run this time. Once a build is uploaded to App Store Connect, the easter-egg version is frozen in the binary; the only fix is a fresh build and a re-submission, which is not what 1.3 needed. So the codename slip ships as-is, and the iOS repo’s &lt;code&gt;CLAUDE.md&lt;/code&gt; now opens the release-checklist section with this exact story so the next release doesn’t repeat it. Honest changelog: a codename that lies about the version, fixed in 1.4.&lt;/p&gt;
&lt;p&gt;The actual shape of 1.3 is the boring kind of release: the scanner becomes less demanding of your attention, the library starts understanding music that isn’t pop-rock, and a Listening Tips guide collects the things that make this app sound the way it should.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Opportunistic background scan&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Your first scan of a big library can keep going after you background the app. iOS schedules a one-shot task; the work runs only when the device is charging, idle, and on Wi-Fi. The whole thing stays on your phone — no traffic beyond the SMB or bridge connection you’d already authorised. Off-switch in Settings → Refresh.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Classical metadata&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Composer, conductor, and work fields land in the library. Opera, symphonic, and concert recordings group the way the music does instead of being flattened against &lt;code&gt;ALBUMARTIST&lt;/code&gt;. Bridge 0.1.3 extracts the same fields server-side; SMB sources read them out of the file tags directly.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Listening tips, in one place&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;A new in-app guide collects the things that make 1-bit sound the way it does: which DAC, what DoP actually is, why DSD pre-caches by default, when gapless does and doesn’t work, when to bypass crossfeed. Open from Settings → Listening Tips.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Long-press a folder&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Hold any folder in the browser to play it, queue it next, append to a playlist, or jump to its album — without leaving the browse view. Small thing; surprising how often you reach for it once it’s there.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;and-on-the-bridge-side&quot;&gt;And on the bridge side&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge 0.1.3&lt;/a&gt; ships alongside — 62 commits since 0.1.2, wire protocol unchanged at v1, every change additive. The headline:&lt;/p&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;A new &lt;strong&gt;Library Inspector&lt;/strong&gt; in the admin console: folder-first browse, FTS5 search, cursor-paginated virtualized scroll, inline metadata edit, per-track variant management, a stats drawer, and a Jobs page for upscale runs. Classical extractors (composer / conductor / work / original year / BPM) across FLAC, MP4, AIFF, WAV, DSF, and DFF. Multi-value &lt;code&gt;ARTIST&lt;/code&gt; / &lt;code&gt;ALBUMARTIST&lt;/code&gt; preserved on FLAC and MP4 instead of being collapsed. ALAC source bit depth read from the MP4 &lt;code&gt;alac&lt;/code&gt; atom rather than inferred. A configurable &lt;code&gt;upscale.variantsDir&lt;/code&gt; with source-mirrored layout plus a &lt;code&gt;bridge upscale move&lt;/code&gt; CLI. And a Tailscale Let’s Encrypt cert-expiry warning at startup so the iOS ATS 398-day re-pair cliff stops being a surprise. Full release notes on the &lt;a href=&quot;https://github.com/acoseac/1-bit-bridge/releases/latest&quot;&gt;bridge releases page&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;what-got-refined&quot;&gt;What got refined&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;The v1.2 per-share cellular gate now also stops the next-track preloader from quietly reaching for cellular when you’ve picked &lt;em&gt;Warn before streaming&lt;/em&gt; or &lt;em&gt;Wi-Fi only&lt;/em&gt;, and Low Power Mode is honoured the same way. Artist Detail filters orphan albums so the view doesn’t show ghosts of moved files. Stale &lt;code&gt;albumID&lt;/code&gt; / &lt;code&gt;artistID&lt;/code&gt; on tracks are canonicalised on the next access, so a re-scan that re-grouped an album doesn’t leave the queue pointing at the old ID. Album headers gain a mixed-format subtitle (“FLAC 24/96 · DSF DSD64”) for compilations that mix encodings.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC; PCM goes out at the file’s native sample rate. The phone moves bytes; the DAC does the DAC’s job. &lt;a href=&quot;https://1-bit.app/#dsd-playback&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-unromantic-version&quot;&gt;The unromantic version&lt;/h2&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Your existing SMB shares keep working. Your existing bridge pairings keep working. The cellular default stays &lt;em&gt;Always allow&lt;/em&gt;; the background scan is on by default but iOS still controls whether and when it runs. Nothing else changes until you say so.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 18.6 or later. Bring a NAS or a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, a USB DAC, and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-3-forgot-the-codename.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.2: too late, too soon</title><link>https://1-bit.app/blog/1-bit-1-2-too-late-too-soon/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-2-too-late-too-soon/</guid><description>1-bit 1.2 is live on the App Store. Admin-approved bridge pairing, on-bridge upscaled audio variants, per-share cellular streaming, and a quieter audio engine — same bit-exact DSD over DoP, native-rate PCM, no transcoding.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.2 is on the App Store&lt;/a&gt;. Same URL as before, new build. Update on your iPhone and you’ll see it.&lt;/p&gt;
&lt;p&gt;Too late: 1.2 took a beat longer than planned. Too soon: there’s already more I want to ship. The shape of this release is the gap between the two — the pieces that had to land together, the ones that proved themselves on TestFlight, the ones that didn’t make the cut and roll into 1.3.&lt;/p&gt;
&lt;p&gt;The headline: a more honest &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt; you can actually feel safe handing to other people on your network, and a per-share cellular gate so DSD doesn’t quietly torch your data plan.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 2rem;&quot;&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Admin-approved pairing&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Bridges can now require explicit operator approval before a new device pairs. The authorized-device list lives on the bridge you run, not on a server I operate. Pairings now feel like the front door of your house — you decide who walks in.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Discover on network&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;A new tap-to-pair sheet finds nearby bridges, fires the join request, waits for approval, and persists the share automatically. No tokens to type, no QR scanning if you don’t need it.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Optional upscaled variants&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Bridges can generate optional upscaled PCM variants on request. Generation runs locally on your bridge and never leaves the network you control. Toggle per share; switch source ↔ upscale per track from the Now Playing wand.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.25rem 1.5rem;&quot;&gt;&lt;strong style=&quot;font-family: var(--font-sans); font-size: 1.05rem; display: block; margin-bottom: 0.5rem;&quot;&gt;Per-share cellular control&lt;/strong&gt;&lt;span style=&quot;font-size: 0.95rem;&quot;&gt;Pick &lt;em&gt;Always allow&lt;/em&gt;, &lt;em&gt;Warn before streaming&lt;/em&gt;, or &lt;em&gt;Wi-Fi only&lt;/em&gt;. The gate covers bridge and SMB equally — Tailscale-fallback hosts can still reach cellular, so this is the right knob to refuse a 5 GB DSF file on a metered link.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;what-got-quieter&quot;&gt;What got quieter&lt;/h2&gt;
&lt;div style=&quot;border: 1px solid var(--color-brand-border); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;A fully lock-free render path (no syscalls during the audio callback). Hardened DSF parsing (the sort of belt-and-braces that only matters when something corrupted breaks through). Smoother variant switching mid-track. PCM gap recovery on long screen-off / sleep cycles. Same bit-exact output, fewer edges to catch on.&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;same-audio-path&quot;&gt;Same audio path&lt;/h2&gt;
&lt;div style=&quot;background: var(--color-brand-surface); border-left: 4px solid var(--color-brand-yellow); padding: 1.5rem 1.75rem; margin-bottom: 2rem;&quot;&gt;&lt;p style=&quot;margin: 0;&quot;&gt;No transcoding. No resampling. No mixer in the path. DSD goes out as &lt;strong&gt;DoP&lt;/strong&gt; to your USB DAC; PCM goes out at the file’s native sample rate. The phone moves bytes; the DAC does the DAC’s job. &lt;a href=&quot;https://1-bit.app/#dsd-playback&quot;&gt;How DSD playback is handled →&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-unromantic-version&quot;&gt;The unromantic version&lt;/h2&gt;
&lt;p&gt;If you have 1-bit installed: open the App Store and tap update. Existing SMB shares keep working. Existing bridge pairings keep working. The cellular default is &lt;em&gt;Always allow&lt;/em&gt;, so nothing changes until you say so.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 18.6 or later. Bring a NAS or a &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;bridge&lt;/a&gt;, a USB DAC, and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-2-too-late-too-soon.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>release</category></item><item><title>1-bit 1.1, from the heart</title><link>https://1-bit.app/blog/1-bit-1-1-is-out/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-1-1-is-out/</guid><description>1-bit version 1.1 is on the App Store: a free open-source bridge for your music library, a stack of hard-won launch-week fixes, and the same bit-exact DSD and PCM playback to your USB DAC.</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit 1.1 is live on the App Store&lt;/a&gt; — same URL, new version. Update on your iPhone and you’ll see it.&lt;/p&gt;
&lt;p&gt;Most of 1.1 doesn’t show up in a bullet list. It’s the rough edges from launch week — pairing flows that didn’t quite hold, scanner behaviour on bigger libraries, the long tail of small fixes you only find once real people start using the thing. The headline addition on top of all that polish: the 1-bit bridge — a free, open-source companion server that gets your library off SMB and onto a transport designed for the app.&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot;&gt;What’s new&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1-bit bridge, properly launched.&lt;/strong&gt; A free, open-source companion server you can run on a Mac, a Windows PC, a Linux box, or a Raspberry Pi sat next to your music drive. Pair an iPhone in three steps with a QR code from the admin console, and the phone talks to your library over HTTPS instead of SMB. It’s noticeably faster than SMB — first scan after pairing finishes in seconds — and unlike SMB, it works over &lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt; or WireGuard, so your library is reachable from anywhere your phone has signal. Same bit-exact audio path on the iPhone side: the bridge ships bytes; the phone still owns DSD, DoP, gapless, all of it. &lt;a href=&quot;https://1-bit.app/bridge/&quot;&gt;Bridge page&lt;/a&gt; has the details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonjour for bridges.&lt;/strong&gt; Nearby bridges show up automatically in the Add-Source sheet. Type the bearer token (or scan the QR) and you’re paired.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The unglamorous half of 1.1.&lt;/strong&gt; The launch-week fixes that don’t make a feature list — an app-quits-on-launch trace pinned to root services rebuilding on every parent re-eval, a first-launch mass-delete trap on libraries larger than ~500 albums or artists, and auto-revive when iOS 26 silently stops &lt;code&gt;AVAudioEngine&lt;/code&gt; ~600 ms after a tap with a USB DAC attached. Settings also got a proper home: theme override, alternate app icons, ReplayGain on PCM (DSD always stays bit-exact), Bauer crossfeed for headphones, a defer-next-track-preload toggle to quiet shuffle and repeat clicks, and a per-DAC resync-delay override for unknown hardware.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A privacy policy that’s actually been audited.&lt;/strong&gt; Three documents now move together — the in-app screen, the &lt;a href=&quot;https://1-bit.app/privacy/&quot;&gt;web policy&lt;/a&gt;, and the &lt;a href=&quot;https://1-bit.app/bridge/privacy/&quot;&gt;bridge’s own privacy page&lt;/a&gt;. Zero personal data collected, by design — which inherently complies with the GDPR (EU), the Swiss FADP, and the CCPA. The policies and the code are checked against each other before every release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Same audio path.&lt;/strong&gt; No EQ, no loudness, no resampling, no dithering, no funny business. DSD goes out as DoP to your USB DAC; PCM goes out at the file’s native sample rate. The phone moves bytes; the DAC does the DAC’s job.&lt;/p&gt;
&lt;h2 id=&quot;the-unromantic-version&quot;&gt;The unromantic version&lt;/h2&gt;
&lt;p&gt;If you already have 1-bit installed: open the App Store and tap update. Your existing SMB shares keep working. Your scan history keeps working. Your Now Playing keeps working. The bridge is additive — you only opt in if you want it.&lt;/p&gt;
&lt;p&gt;If you’re new: it’s a &lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;free download&lt;/a&gt;, iPhone or iPad, iOS 18.6 or later. Bring a NAS, a USB DAC, and music you actually like.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-1-1-is-out.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category></item><item><title>1-bit is out</title><link>https://1-bit.app/blog/1-bit-is-out/</link><guid isPermaLink="true">https://1-bit.app/blog/1-bit-is-out/</guid><description>An iOS music player for people who care how their music sounds — bit-exact PCM and DSD over DoP, straight from your NAS to your DAC. Now on the App Store.</description><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today I shipped &lt;a href=&quot;https://1-bit.app/&quot;&gt;1-bit&lt;/a&gt;, an iOS music player for people who care how their music sounds.&lt;/p&gt;
&lt;p&gt;Why “1-bit”? Because that’s the number that matters. DSD — Direct Stream Digital, the format behind SACD — encodes audio as a single-bit stream sampled millions of times a second, instead of the 16 or 24 bits per sample you get from PCM (think CDs, FLACs, most of Apple Music). It’s a different way of thinking about digital audio, and it’s what 1-bit is built around.&lt;/p&gt;
&lt;p&gt;The name is also a promise. The app doesn’t resample, doesn’t remix, doesn’t touch your audio on the way to your DAC. What goes in comes out — bit for bit.&lt;/p&gt;
&lt;h2 id=&quot;what-it-does&quot;&gt;What it does&lt;/h2&gt;
&lt;p&gt;Point it at an SMB share on your home network — a Synology, a QNAP, a Mac running File Sharing, whatever you already have — and 1-bit scans your library, reads the tags, pulls the artwork, and builds a browseable catalog of your albums and artists. Plug in a USB DAC and hit play.&lt;/p&gt;
&lt;p&gt;If you don’t run a NAS, drop files into the app’s Documents folder via Files or Finder over USB and it works the same way.&lt;/p&gt;
&lt;p&gt;No accounts. No cloud. No streaming service. Your music, your network, your DAC.&lt;/p&gt;
&lt;h2 id=&quot;bit-exact-and-what-that-actually-means&quot;&gt;Bit-exact, and what that actually means&lt;/h2&gt;
&lt;p&gt;For PCM, 1-bit sends samples straight from the file to the audio engine to your DAC, bypassing the iOS system mixer entirely. For DSD, it reads DSF files and packs the 1-bit stream into DoP (DSD over PCM) frames for the DAC to decode natively.&lt;/p&gt;
&lt;p&gt;This matters most if you own something like a Chord Hugo 2, a Mojo 2, or one of the many USB DACs that can lock to a native DSD carrier. Those DACs sound their best when software gets out of the way. 1-bit gets out of the way.&lt;/p&gt;
&lt;p&gt;It also handles the fiddly parts that trip up most iOS music apps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sample-rate renegotiation when you jump from a 44.1 kHz FLAC to a DSD128 album&lt;/li&gt;
&lt;li&gt;PLL settling time on FPGA-based DACs (the Chord family needs roughly 700 ms to re-lock cleanly — Hugo 2 will go silent without it)&lt;/li&gt;
&lt;li&gt;Gapless playback when consecutive tracks share a format&lt;/li&gt;
&lt;li&gt;DoP marker-phase continuity across track transitions, so your DAC never flickers mid-album&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;who-its-for&quot;&gt;Who it’s for&lt;/h2&gt;
&lt;p&gt;If you have a NAS full of FLACs and DSFs, a good DAC, and a pair of headphones or speakers you actually listen to — this is for you. It’s not trying to replace your streaming service. It’s trying to be the nicest possible way to listen to the music you already own.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/1-bit/id6762529497&quot;&gt;1-bit is on the App Store now&lt;/a&gt;, for iPhone and iPad running iOS 18.6 or later.&lt;/p&gt;
&lt;p&gt;Just press play.&lt;/p&gt;</content:encoded><media:content url="https://1-bit.app/og/1-bit-is-out.png" medium="image" type="image/png"/><category>1-bit</category><category>iOS</category><category>DSD</category><category>audio</category><category>launch</category></item></channel></rss>