Software Updates

See what's new, what's been fixed, and what's changed in each version of SugarSpin.

v1.9.9 Latest June 17, 2026

Stream To — all your devices, one clean place

The device picker is now called Stream To, and it’s grown into a proper little control room for everything you play on. Open it and you see what’s playing right now at the top, then a simple list of every device and hi-fi speaker you can send the music to. Tap one to move the sound there. No clutter, no duplicate panels — everything about your devices lives in this one sheet now.

Name your devices, pick a default, sign one out

Tap into any device to see its detail page and give it a friendly name — tap the pencil by the title, type, done. Set a default device from the card at the top so the music lands where you want it when you press play, and a gold dot in the list shows you at a glance which one is the default. Finished with a device? One tap on the × signs it out. It all syncs across your account, so you can manage any device from any other one.

A living Stream To button

The floating Stream To button now shows a small set of dancing equalizer bars in SugarSpin gold — a little nod to the music moving, instead of a static icon.

v1.9.8 June 16, 2026

Put your music in the order you want

Hold and drag to rearrange your Playlists, Shelves, and Liked Songs. As you move one, the others gently slide apart to open a gap, a little copy of what you're holding follows your finger, and it drops neatly into place. Your order is saved and carries straight over to the Home screen. A quick tap still opens or plays, only a deliberate drag moves things.

Levels, a live look at your sound

A new Levels view in Display Settings turns the screen into a real-time meter bridge, peak, loudness (LUFS), stereo width, dynamic range, range over time (LRA), and bass energy, all reading live off whatever's playing. It only watches the music, it never changes a thing. A clean, nerdy joy for anyone who likes to see the sound.

Tap a song, it just plays

Song rows are simpler now: tap anywhere on a row and it plays. No more accidental jumps to an artist or album page when your finger lands on a name. Less fiddly, especially on a phone.

Add to a playlist or shelf in one tap

The add screens are now simple on/off toggles. The playlists or shelves a song or album already lives in show a gold check, tap to add, tap the checked one to take it back out. The sheet stays open so you can sort several at once, then close when you're done.

Volume, right where you're looking

A labeled volume slider now lives in the Now Playing panel, showing the device it's controlling and the current level, so you can set the volume without leaving the screen you're on.

v1.9.7 June 9, 2026

One server address, home and away

SugarSpin uses a single server address, the same one at home and away. Enter it once — the app even fills it in for you — and you never think about it again. Setup is a single field, one login per device, and it just works whether you're on home Wi-Fi or out on cellular. No second password screen, ever.

Tailscale is the recommended way to go remote

The install guide now leads with Tailscale: a free, private network that makes your home server reachable from anywhere as if you were on your own Wi-Fi. With its subnet-router option, your one home address (like http://192.168.1.50:3333) keeps working on the road, so there's nothing to switch when you walk out the door. Prefer a clean public web link instead? Cloudflare Tunnel is still fully supported as the shareable-URL option. Either way, SugarSpin only needs a single address from you.

Simpler setup screen on every app

The iPhone, iPad, and Mac apps now ask for just one server address on first launch. Existing installs are migrated automatically, if you already had a URL saved, it carries over and you stay signed in. Nothing to redo.

Choose your accent color

A new Appearance setting lets you pick the app's accent. SugarSpin keeps its signature gold as the lead color, and you choose the one highlight that rides alongside it, Deep Teal (the new default), VU-Meter Blue, or Warm Cream. It shows up where it counts, the active page in the sidebar, the player's progress, and selected tabs, and your pick is remembered instantly. High-end retro hi-fi, your way.

Play on any device, just press play

Press play on whichever device you're at, and that device becomes the one making sound, instantly. Your Mac, your phone, your iPad, the playback follows your hands. Everything stays in sync across your screens, you simply choose where the audio comes out.

Every device, on every screen

The device picker now shows all of your active devices and BluOS / NAD speakers from any screen, including your phone. Tap one to send the music there. No more wondering where playback went, it's all right in front of you.

SugarSpin for Mac New June 3, 2026

A real native Mac app is here

SugarSpin now ships as a proper native macOS app. It’s Apple notarized, Apple Silicon ready, and lives in your Dock like any pro app. No browser tabs, no address bar, no browser quirks, just SugarSpin in a real window. Free with any license, included with the server you already own.

  • Apple notarized + signed by Hotdang Studio, installs clean with no “unverified developer” warning.
  • Native menu bar, About, Switch Server, Reload, Quit, all the standard macOS bits.
  • Setup wizard on first launch, enter your server URL once, never again.
  • Apple Silicon native, ~10 MB download, runs cool.
  • macOS 11 (Big Sur) and newer.

Download from the homepage →

iPhone & iPad app coming next

A native iOS app is in development, TestFlight beta first, then the App Store. It will be a free download with full lock screen Now Playing controls, CarPlay, and iPad split view support. Your existing SugarSpin license is all you’ll need.

v1.9.6 June 7, 2026

Stage Mode — your music on the big screen

A new full screen view built for the TV on the wall, the 4K monitor, the iPad propped on the shelf. The whole screen becomes the artist: a slow slideshow of artist photography, or every album cover you own by that artist when no photos exist, or the classic blurred cover. Along the bottom, a full width strip with the track's real audio waveform, drawn from the actual file and scrubbable with a finger. Above it, the song title with its DR badge and a format pill (FLAC · 24-bit / 96 kHz), then artist and album. Title text flips between white and black depending on the photo behind it. Optional giant synced lyrics. Everything scales with the screen, from iPad to 4K. Pick Stage in Display Settings, choose your backdrop, hit Showtime. Landscape, iPad and desktop.

Display Settings, redesigned around Showtime

One tidy popup: a View grid with little icons (Vinyl, Lyrics, Scope, Tubes, Stage, None), the Background picker, a new Fullscreen toggle that works for every view (toolbar gone, just music), and a gold SHOWTIME button that commits your picks and takes you there. Stage gets its own second page for view and backdrop choices, with a proper Back button. Your choices are remembered.

The button dock

The floating buttons were rebuilt from scratch as one clean dock: Now Playing (dancing bars), Casting, and Display Settings, the same three on every page and device. They ride just above the player bar, fade away after five seconds of stillness, and fan back up from the bottom, one behind the other, the moment you touch the screen. A duplicate device picker button that had been hiding in the player bar is gone for good.

Search that answers while you type

Start typing in the search bar and results drop down live, grouped the way you think: Artist, Albums with cover thumbnails, Songs, and a “See all results” link. An empty search box now shows your recent searches, click one to run it again.

AirPlay & Cast from the Casting sheet

A new Stream to row in the Casting sheet opens your platform's native output picker: AirPlay & Bluetooth on iPhone, iPad and Mac, Google Cast on Android and Chrome. Your BluOS devices stay right where they were, this adds the rest of the living room.

Background playback on iPhone and iPad

Switching to another app no longer stops the music. The audio processing graph now loads only when a sound shaping feature (Tube Warmth, ReplayGain) is actually on, so everyday playback stays on the OS's native path and keeps playing in the background the way a music app should.

Updates always arrive

Devices could cling to an old cached copy of the app after a server update. The app now detects a stale build and refreshes itself automatically, and the version number jumped to 1.9.6 so every update checker agrees on what's newest.

v1.9.2 June 7, 2026

Active Clients, live sync, Online / Standby

The Active Clients panel updates in real time across every device. Sign in or out on one device and every other open client sees the change within ~50 ms via socket broadcast. Each row shows an Online (green dot) or Standby (gray) pill that flips the instant a device closes the app. No more polling, no more refresh button. Active Clients and Session Settings have been merged into one tidy card.

Library, Playlists, Liked, and Unknown in one place

The sidebar got tidier. Playlists, Liked Songs, and Unknown (unmatched tracks) are now grouped under a single Library tab between Artists and Categories. Inside, three label only pills switch the body content without page loads. Selected tab persists to the URL so deep links and the back button work. Inside Liked, Albums is the default view (Songs is one click away). All on one row even on iPhone.

"Never" auto logout actually means never

A long standing JavaScript falsy zero bug meant the “Never” option for auto logout was secretly being treated as 30 minutes, quietly pruning sessions every half hour and kicking other devices out. Fixed. Pick Never and your sessions persist until you explicitly sign out or click Remove on a device.

CD ripper hardening, full metadata, multi disc support

Every ripped FLAC now ships with a complete Vorbis comment block: ARTIST, ALBUMARTIST, ALBUM, TITLE, TRACKNUMBER, TRACKTOTAL, DISCNUMBER, DISCTOTAL, DATE, GENRE, and MusicBrainz release ID. Multi disc sets land in Album/CD N/ subfolders, so files never collide. The ripper also picks the correct medium from MusicBrainz by matching the inserted disc’s track count, insert Disc 2 of a 2 disc release and you get Disc 2’s titles, not Disc 1’s. No more hand renaming.

Library scanner recognises multi disc folders

Folders like Album CD 1, King Kong Disc 2, or any …CD N / …Disc N pattern are now detected as discs of one album rather than separate albums. Tags win for artist and album name; folder structure provides the disc number. The Album detail view shows clean “CD 1” / “CD 2” section headers in the track list.

Real scan progress numbers across multiple folders

When SugarSpin scans more than one music folder, the progress counter now aggregates across all of them, instead of resetting between folders and reporting only the last one’s count as “Processed N files.” The number you see at the end is the real total walked across your entire library.

Album tile size locked across every page

Every album cover in the app is now the same size on every device. Stretching the window adds more columns to the right, it never makes tiles grow or shrink. Sparse sections (like Jump Back In or Compressed tier in Hi Res) collapse to one row instead of showing an empty second row. The missing artwork placeholder got a fresh look: clean gradient with the title centered.

Home page, bigger sections, livelier greeting

Recently Added, Recently Played, Based on Your Listening, Recommended for Today, and Jump Back In each carry up to 60 albums now, plenty to scroll through on a wide desktop. The greeting tagline cycles through 50+ music world conversational lines split by time of day (“Coffee, headphones, go.” / “3 AM is for deep cuts.” / “Make tonight sound expensive.”).

Mastering Versions, album cover tile view

The Mastering Versions page (find albums you own multiple pressings of) now shows each version as a proper album cover tile with a DR medallion in the corner, grouped per artist. Same visual language as the rest of the app instead of the old list view.

Smaller bug fixes

Duplicate “Delete Album” button in the Edit Album modal is gone, one subtle gray button only. Active Clients labels stop saying “Unknown on macOS” when the user agent doesn’t identify cleanly (now shows just the OS, or detects SugarSpin App / SugarSpin Desktop wrappers). Mobile right edge alignment on the Albums page lines up perfectly with the page header again.

v1.9.5 June 4, 2026

SugarSpin for Mac, shipped

The Mac desktop app is here. Apple Developer ID signed and Apple notarized, so macOS opens it like any other pro app, no scary warnings, no right click open dance. Lives in your Dock, has its own menu bar (About, Switch Server, Reload, Quit), discovers SugarSpin servers on your network automatically, and uses dramatically less memory than a Chrome tab. Free with any SugarSpin license, download from the apps section.

A note on how our apps are built

A quick honest word: the Mac and iPhone apps aren’t rewritten from scratch in Swift or AppKit. They’re native shells (Tauri on Mac, a native iOS shell on iPhone & iPad) that load the same SugarSpin interface you already know. We did this on purpose. It means the apps are tiny, launch fast, every feature on the website also lives in the app, and there’s zero version drift between platforms, what ships on the server ships everywhere on day one. CarPlay, lock screen controls, AirPlay routing, native menus, and Bonjour discovery are all wired into the shell so they work properly. We get the polish of native plus the speed of web. No tradeoffs you’d notice.

"Updating" popup, you finally know what’s happening

When Watchtower pulls a new version and restarts the server, every open SugarSpin client now shows a clean popup: "SugarSpin is updating…" with an animated progress shimmer. When the server comes back up, you see "Update complete! Now running vX.Y.Z, reloading the app…" and the page auto refreshes itself. No more Cmd+Shift+R, no more wondering if the update actually happened.

Settings reorganized for clarity

The Profile page is now ordered the way you actually use it: Server Access (your server address) at the top, then Subsonic App Access for third party CarPlay/Android Auto clients, then Auto Updates. The "CarPlay & External Apps" card was renamed to Subsonic App Access, clearer about what it actually is, and a reminder that once our own iOS app lands, CarPlay will work natively through SugarSpin without needing a Subsonic compatible third party app at all.

SugarSpin for iPhone & iPad, now in TestFlight

The native iOS & iPadOS app is live in TestFlight beta. Free download from the App Store when it ships publicly, connects to the server you already own, no in app purchases. Lock screen Now Playing, real background audio (something Safari simply can’t do), AirPlay routing, and CarPlay support are all on the way. Watch the apps section for the public launch.

Auto updates via Watchtower

New installs automatically include Watchtower, a tiny container that polls Docker Hub for new SugarSpin releases and installs them within 24 hours. No SSH, no terminal, no thinking. There’s a new Auto Updates panel in Profile → Server Access that shows the status and a “Check for updates now” button for the impatient. Existing customers can add Watchtower from a copy paste snippet in the same panel.

Native device names in Active Clients

When connecting from the Mac app or (soon) iPhone & iPad app, the Active Clients list now shows your actual device name (“Roger’s MacBook Pro on macOS”) instead of “Unknown on macOS”. Helps when you’ve got a bunch of devices connected and need to figure out which is which.

v1.9.1 June 3, 2026

UI & UX Overhaul

A focused pass on the player surfaces, making the most used controls easier to reach, harder to mis tap, and consistent across phone, tablet, and desktop.

  • Volume moved to Now Playing, The volume slider used to sit in the bottom player bar where it was too small to tap precisely on a phone. It now lives inside the Now Playing slide out, directly below the play controls, full width, fat finger friendly, with a clear label showing exactly what you’re controlling (your local device or the speaker you’re casting to). For local playback, your phone’s hardware volume buttons still work as expected; the on screen slider exists for the moments when you’re casting to a Bluesound or NAD speaker and need to control its volume from across the room.
  • Cleaner player bar, With the volume gone, the bottom bar now shows just the track info, transport controls, and a now playing indicator. On mobile, the previous/next track buttons are visible next to play so the most common controls live on the same row.
  • New cast indicator, The little speaker glyph that used to confuse people (some thought it was AirPlay or Bluetooth) was replaced with an animated equalizer bar icon that clearly signals “audio is happening on a remote device.” The casting label now reads “Casting to [NAD C399]” instead of the ambiguous “Playing on.”
  • Floating action buttons reorganized, Now Playing and display settings icons now stack consistently at the right edge across phone, tablet, and desktop. Same coordinates, same gap, every device. The previous mismatch between iPad landscape and iPhone portrait is gone.
  • Edit Track, Tap the … menu on any track to open a new editor. Change the title, artist, album, or track number; SugarSpin updates the database and writes the new tags back into the file itself via ffmpeg. Works on every supported format (MP3, FLAC, WAV, AIFF, M4A, AAC). The change persists across rescans and any other app that reads the file sees the same tags.
  • Folder structure wins over garbage tags, When a file sits in an organized Artist / Album / Track folder layout, the scanner now treats the folder names as the source of truth for artist and album, regardless of what the file’s embedded ID3 tags say. This stops single tracks with broken metadata from being filed under nonsense names like “wildfiltersweeps376 / Unknown Album” when the folder clearly says they belong to a real album.
  • Speakers self heal when the IP changes, If your Bluesound or NAD speaker gets a new IP from DHCP (which happens automatically every few days on most routers), SugarSpin used to fail silently. It now identifies speakers by name, runs a background subnet rescan every 5 minutes, and on a failed cast attempt it transparently re resolves the speaker at its new address and retries. You shouldn’t notice anything, the cast just keeps working.
  • Old speakers fall off the picker, Speakers that haven’t responded in 2 minutes are removed automatically. Powered off or unplugged speakers no longer linger in the device picker.
  • Recently Played fixed, The page now loads and plays from a cast device are logged just like local plays.
  • Library rescan from terminal, The /api/library/rescan endpoint now accepts requests from localhost without an auth cookie, so admins can trigger a rescan via SSH+curl directly on the server. The endpoint still requires authentication from remote clients.

Equalizer Temporarily Removed

The 15 band EQ has been pulled from this release while the audio chain and UI are reworked. The earlier implementation had real time DSP issues (laggy on mobile, occasional rendering crashes on iOS) and the slider sizing made it hard to dial in precise curves. Rather than ship something that doesn’t live up to the bit perfect promise of SugarSpin, it’s coming out now and will return once the design and audio processing pipeline are solid. Tube Warmth stays, it’s the lighter, opt in coloration most listeners actually wanted from the EQ anyway.

Polish

  • Scanner doesn’t skip files when metadata parsing fails, Unusual WAV chunk layouts and some AIFF variants used to be dropped entirely. They now get added with folder/filename derived metadata so nothing in your library goes invisible.
  • Display settings simplified, The VU Meter, Spectrum, and Radial visualizations were removed (they overlapped heavily with Oscilloscope and Tubes). Vinyl, Lyrics, Oscilloscope, and Tubes remain.
  • Volume sync is now truly global, Move the slider on your Mac and your iPad shows the same level. Whichever device is currently the audio target gets the change applied to its own output.
  • Stuck stream issues, Remote playback through Cloudflare Tunnel no longer drops every ~60 seconds; the stream is chunked to stay inside the proxy’s per response timeout.
v1.9.0 May 24, 2026

Sound Purity Update

  • Equalizer removed. The 15 band EQ, the album specific EQ presets, the custom preset library, the Hi Fi bypass button, and the optional cast EQ toggle are all gone. SugarSpin no longer ships with any tone shaping equalizer at all. The signal path from your file to your speaker is shorter and simpler. Audiophiles get a tool that respects the mastering. Everyone else gets less to configure.
  • What stays: Tube Warmth (optional, off by default, only affects browser playback), ReplayGain volume normalization (optional, off by default), and the bit perfect cast path to BluOS / NAD which was never altered by EQ in the first place.
  • Audio graph rewired. Source → ReplayGain → Tube chain → Analyser → Destination. No EQ filter bank in the path anymore. Less DSP, less work for your browser, cleaner output.

Bug Fixes

  • Tube Warmth is now reliably audible on browser playback. With the EQ removed, Tube Warmth is the only sound shaping stage in the chain. Picking Subtle, Warm, or Vintage now produces an obvious change in tone in real time.
  • Settings page no longer crashes when adjusting an EQ slider. The slider does not exist anymore. The Rules of Hooks violation introduced by the cast EQ toggle is gone with the rest of the EQ surface.

Removed

  • 15 band Equalizer panel in Settings.
  • Equalizer presets (Bass, Treble, Rock, Jazz, Classical, Hip Hop, R&B, Electronic, Acoustic, Vocal, Night Mode, and your custom presets).
  • Album specific EQ presets and the album EQ picker in the album view.
  • Hi Fi mode toggle in the player bar (no EQ to bypass anymore).
  • Cast EQ opt in toggle (no EQ to cast).
  • Server endpoints: /api/stream eq, /api/albums/:id/eq, /api/album eq/all.

Why

  • SugarSpin is for people who want to hear their music the way the artist mastered it. An equalizer is a tone shaping tool that some listeners love, but the audiophile community is split on whether DSP belongs in the signal path at all. Removing it commits SugarSpin to the purist side, which matches the rest of the product (bit perfect cast, no transcoding, native sample rates preserved, no telemetry). Tube Warmth stays as an optional vintage character effect, because it is a separate philosophical thing from corrective EQ.
v1.8.1 May 24, 2026

New Features

  • Tube Warmth, analog style vacuum tube emulation, A built in tube saturation stage that adds the gentle even order harmonics and soft compression of a real vacuum tube preamp to every track. Four presets: Off, Subtle (a hint of warmth), Warm (classic tube character), and Vintage (deeper saturation with rolled highs), plus a custom Drive slider. Runs entirely in the browser through the Web Audio API, no quality loss to your source files. Settings → Tube Warmth.
  • Tubes visualizer, four glowing vacuum tubes that breathe with the music, A new Now Playing visualization showing four photoreal vacuum tubes glowing amber over a warm bokeh field. The glow brightens and breathes on a slow 5 second cycle tied to the song’s overall loudness, not jittery per beat flicker. A secondary red glow at the base of each tube simulates the filament heat. Tube positions are measured directly from the source artwork so the glow lines up in both portrait and landscape orientations on any device.
  • Polished ··· menu on mobile track rows, The cluttered metadata row on small screens is replaced with a clean 3 dot button that opens a polished bottom sheet menu, Play, Play next, Add to queue, Go to album, Go to artist. The sheet uses a React portal to fly above the player bar instead of being clipped by it.
  • iOS status bar veil for immersive visualizers, A subtle dark gradient at the very top of the Now Playing view gives the iPhone’s white status icons (time, Wi Fi, battery) a readable backdrop without painting a hard black bar, the visualizer still extends edge to edge underneath.
  • Album view: currently playing track highlight, The track you’re playing on an album page is now picked out in gold with a small animated EQ bar icon next to it. The album cover area gets a smooth gradient masked backdrop that fades into the track list, so the page feels like one continuous canvas.
  • Home page: 2 row horizontal scroll sections, Album sections (Recently Added, Recently Played, Top Albums, etc.) and the genre browser now scroll horizontally in tidy 2 row strips, the kind of layout you'd expect from a premium music app. More content visible per screen, less vertical scrolling. The colorful gradient genre tiles return with a decorative music note glyph.

Bug Fixes

  • Pausing on the NAD no longer skips to the next song, The server side cast monitor was treating any “not playing” state as “track ended”, so when you paused, it auto advanced. Now it specifically distinguishes pause (user intent, hold position) from stop (track actually ended, advance), and broadcasts the pause state to every other browser so all your screens stay in sync.
  • Tube visualizer glow alignment in portrait mode, The four glowing halos now stay locked to the tubes regardless of orientation. Positions are measured directly from the source PNG and anchored to the rendered image rect, so landscape and portrait both align perfectly.
  • iPhone reconnect no longer interrupts NAD playback, When a phone’s PWA wakes up on cellular and reconnects to the server, it used to fire a redundant “play this track” call that restarted the same song on the speaker. The server now rejects play requests for a track that’s already playing (unless you actually clicked play yourself).
  • NAD doesn’t pause every 30 seconds anymore, The last client disconnect handler was too aggressive when iPhone background pinging caused brief disconnects. Now there’s a 60 second grace window before the speaker is stopped, so transient drops don’t kill your music.
  • Speaker reliably re fetches the next track, Some NAD firmware caches stream URLs and refuses to reload an identical URL. The cast URL now includes a per play nonce so the speaker always pulls a fresh stream cleanly.
  • Mobile bottom sheet renders above the player bar, Portaled to document.body to escape parent stacking contexts; appears in front of all other UI as expected.
  • Album view: tracks flush to the left edge on mobile, Removed wasted padding on small screens so titles and album art get the full width they deserve.
  • Subsonic password Show button now actually reveals the password, Was previously revealing an empty field due to a state update timing bug.

Changes

  • Tube Warmth is bypassed by default, Turn it on in Settings if you want the warmth. Listening sessions starts neutral.
  • Genre tiles restored to colorful gradients, The flat single color tiles experiment is reverted. Each genre gets its own vivid gradient with a decorative music note glyph.
  • FAB placement, The visualization settings button (the small circular glyph in the bottom left of Now Playing) is sized and positioned to match the main floating Now Playing button on the right. Bottom: 50 px on desktop, 134 px on mobile to clear the player bar.