Releases: thijsw/hydrophone
Release list
Hydrophone 0.6.2
Another small one: the main window learned to come back.
Fixes
- Reopenable main window — closing the main window used to leave no way to get it back short of relaunching (⌘N makes playlists here, like Music, so there was no "New Window" either). The window is now a proper single-window scene: macOS lists Hydrophone in the Window menu, so a closed window is one click away. The menu-bar mini player keeps working the whole time, window or no window.
Install: unzip, drop in /Applications. Signed & notarized — no Gatekeeper warnings. Requires an OpenSubsonic server (Navidrome, Gonic, LMS, …) or try the built-in demo server button.
Hydrophone 0.6.1
A small one: the app icon gets its corners back.
Fixes
- Transparent icon corners — 0.6.0's icon shipped flattened onto a white square, so the rounded shape sat on a white tile in the Dock, Finder, and the app switcher. The icon is now rendered the way it was drawn: the dusk squircle floating on transparency, like every other Mac app icon.
Install: unzip, drop in /Applications. Signed & notarized — no Gatekeeper warnings. Requires an OpenSubsonic server (Navidrome, Gonic, LMS, …) or try the built-in demo server button.
Hydrophone 0.6.0
The release where Sonicwave becomes Hydrophone — new name, new look, and a queue that can finally stretch its legs.
A new name and a new face
- Sonicwave is now Hydrophone — a device for listening under the surface felt right for a Subsonic client (and the old name collided with two other products). New bundle identifier, new domain: hydrophone.app.
- New app icon — a play button floating half-submerged at dusk: crisp above the waterline, refracting the sunset below it.
- The in-app accent moved from red to ocean aqua to match.
- Coming from Sonicwave? The rename means a fresh start: Hydrophone won't see the old app's settings, so reconnect to your server once, then delete the old Sonicwave.app.
Queue-first Now Playing
- A chevron next to the track title collapses the big artwork card to a compact strip — the play queue takes (nearly) the whole panel. Click the strip to bring the hero back; the choice persists across launches.
- The panel can also be dragged wider than before.
Fixes
- Cover art, once per album — every track of an album used to download its own identical copy of the cover; the cache is now album-keyed, so a freshly queued album shows hero + all queue thumbnails instantly with a single download. Transient network blips also get a retry instead of leaving gray tiles for the session.
- Smooth scrolling — a long-standing glitch could make the Albums grid (and Home/artist pages) visibly skip ~50–100 px mid-scroll at certain window widths. Scroll restore is now one-shot, so the snap is structurally impossible.
- Clicking the current sidebar section returns to its root — with an album open, clicking "Albums" now takes you back to the grid, exactly where you left it (the same convention as tapping the current tab in iOS Music).
- Streaming read-ahead actually holds its cap — the player could buffer entire tracks (~55 MB of decoded audio) ahead of the playhead, and in one scenario a dropped connection silently skipped the rest of a track. Read-ahead is now measured honestly and parsed in bounded slices, keeping memory flat and long sessions stable.
Under the hood
A deep "one implementation per idea" cleanup of the playback engine, API layer, and UI state: the engine's four lifecycle flags became two phase enums, fifteen bespoke response decoders became two generic ones, and every UI state now has a single source of truth. Same behavior, far fewer moving parts.
Install: unzip, drop in /Applications. Signed & notarized — no Gatekeeper warnings. Requires an OpenSubsonic server (Navidrome, Gonic, LMS, …) or try the built-in demo server button.
Sonicwave 0.5.1
A polish and reliability release — nothing new to learn, everything a little more solid.
Back means back
Returning from an album now lands exactly where you left off:
- The Artists section keeps your selected artist (was: reset to the first).
- The Albums grid, Home, and artist pages keep their scroll position.
- An expanded artist bio stays expanded.
Reliability sweep
A systematic audit of state, ordering, and async races fixed ten subtle bugs:
- Fast genre-switching in the column browser can no longer display the wrong genre's songs.
- Quickly switching artists or albums — or typing while a search is in flight — no longer flashes fresh views empty.
- Home recovers gracefully from an offline launch instead of staying empty until relaunch.
- A failed favorite-toggle rolls back instead of showing the wrong star.
- Rapid track-skipping could persist an older queue position over a newer one; queue saves are now strictly ordered, so cross-device resume lands where you actually were.
- A track queued with "Play Next" during shuffle stays next when shuffle turns off.
- Assorted duplicate-fetch guards, and multi-song drags into Up Next or playlists keep their order (also shipped in 0.5.0).
Install: unzip, drop in /Applications. Signed & notarized — no Gatekeeper warnings. Requires an OpenSubsonic server (Navidrome, Gonic, LMS, …) or try the built-in demo server button.
Sonicwave 0.5.0
Discovery comes to Sonicwave — and the system floor drops to macOS 14.
Start Radio
Right-click any song or artist → Start Radio. Sonicwave asks your server for a similar-songs mix (Last.fm agent or Navidrome 0.62+'s sonic analysis) and queues it, seed first. Servers without a metadata agent fall back to top songs, then a shuffle of the artist's own tracks — the button always plays something.
Artist pages grew up
A portrait header with an Artist Radio button, an expandable biography, and a Similar Artists shelf that navigates in place.
Shuffle Albums
Whole albums back-to-back in random order — the shuffle that keeps gapless albums intact. In the Controls menu and on the Albums grid, honoring your genre/decade filter.
Now runs on macOS 14 Sonoma
The minimum system version drops from macOS 15 to 14 — including 2018–2019 MacBook Airs that can't run Sequoia.
Fixed
- Dragging multiple songs into Up Next or a playlist scrambled their order; drops now preserve the order you grabbed.
Install: unzip, drop in /Applications. Signed & notarized — no Gatekeeper warnings. Requires an OpenSubsonic server (Navidrome, Gonic, LMS, …) or try the built-in demo server button.
Sonicwave 0.4.0
What's changed
FLAC playback, actually fixed
- FLAC streaming was silently broken — playing a FLAC album decoded about half a second per track, then skipped through the rest of the queue. The cause was a subtle audio-framework interaction deep in the streaming decoder (building conversion buffers inside the parser's callback corrupts FLAC parsing; MP3 happened to tolerate it). FLAC albums now stream and play gapless like everything else. If Sonicwave ever "skipped through" an album on you — this was it.
Play formats your Mac can't
- Tracks in formats macOS can't decode natively (Ogg Vorbis, some MP4 variants) now play automatically via server transcoding instead of showing an error — the whole album follows suit, seeks included. The "Can't Play Track" alert only appears if even the server can't help.
Browse it your way
- Filter the Albums grid by any genre in your library, or by decade (1950s–2020s), from the new Filter menu next to Sort.
- Shuffle Library (Controls menu, or the Shuffle All button on the Songs list) queues up a fresh random 500-song mix of everything you have.
- Multi-disc albums get disc headers — sticky "Disc 1 / Disc 2" rows in the track list, with disc subtitles when your files carry them.
Quieter networking
- Cover-art fetching is now polite to your server: at most six concurrent requests, and rate-limited responses back off and retry instead of leaving permanent placeholders (Navidrome rate-limits artwork by default).
Full changelog: https://github.com/thijsw/sonicwave/compare/v0.3.0...v0.4.0
Sonicwave 0.3.0
What's changed
Pick up where you left off
- Your queue survives a relaunch. The queue, current track, and playhead now save to your server and come back exactly as you left them — paused, never barging in. Since it's stored server-side (
savePlayQueue), other clients can resume the same session, and Sonicwave picks up queues they save too.
Volume normalization (ReplayGain)
- New in Settings → Playback: even out loudness between tracks using your files' ReplayGain tags — By Track for mixed queues, By Album to preserve an album's intended dynamics. Gain is applied losslessly in the engine ahead of the mixer, with peak protection so nothing ever clips. (Requires RG tags on your files —
loudgainor beets can add them.)
Connection fixes
- Plain-HTTP home servers work now. macOS was silently blocking addresses like
http://192.168.1.10:4533orhttp://nas.local; local plain-HTTP connections are now allowed. Non-localhttp://remains blocked by macOS policy — and now says so clearly instead of failing cryptically. - Huge playlists no longer fail. Creating or reordering playlists past ~1,500 tracks used to blow past URL length limits; playlist changes now travel as a POST body on servers that support it (Navidrome does).
Full changelog: https://github.com/thijsw/sonicwave/compare/v0.2.0...v0.3.0
Sonicwave 0.2.0
What's changed
A place to land
- New Home page: a time-of-day greeting, a full-width "Jump Back In" card for the album you last played (with inline Play), and shelves for Keep Listening, Recently Added, Most Played, and Random — with a re-roll button when you feel lucky.
Your server, better informed
- Scrobbling (on by default, Settings → Playback): Sonicwave reports "now playing" when a track starts and submits the play once you're past half the track or four minutes — the same rules Last.fm and Navidrome use. Play counts, Recently Played, and any scrobbler your server relays to now stay in sync.
- Update your library from the app: File → Update Server Library (or Settings → Connection → Scan Library, with live progress) kicks off a server-side rescan.
Playback & audio
- AirPlay outputs: connected AirPlay routes now appear in the output-device picker, properly labeled. Sample-rate matching wisely steps aside for them (they run a fixed network clock — macOS handles the resampling).
- Clear errors instead of silence (or static): tracks the server can't stream in a decodable format now stop cleanly with a "Can't Play Track" alert that tells you what to do (enable server transcoding), instead of failing silently — or worse, playing loud static.
Around the app
- Resizable Now Playing panel: grab its leading edge and set it anywhere from 300 to 480 points; the width is remembered.
- Quick Look the cover art: click the Now Playing panel's artwork to see the full-resolution original.
- Show Album in Library (⇧⌘L, also by clicking the panel's album line) jumps from whatever's playing to its album page.
- Try it without a server: a one-click "Use Demo Server" button (shown only while nothing is configured) connects to the public Navidrome demo.
Project
- Sonicwave is now open source (MIT) with a website: https://thijsw.github.io/sonicwave/
- CI runs the full test suite on every push and pull request.
Full changelog: https://github.com/thijsw/sonicwave/compare/v0.1.2...v0.2.0
Sonicwave 0.1.2
What's changed
Visual & color fixes
- The accent red is back to its intended vividness. The color was sampled on a wide-gamut display but stored as sRGB, which washed it out (it's actually outside the sRGB gamut). The
AccentColorasset is now tagged Display P3 — selections, buttons, icons and progress bars all regained the deep iTunes red. - Sidebar selection is now a Music-style neutral-gray pill with standard side insets (no longer edge-to-edge), keeping the red icons on top.
- Artist list selection uses the accent red with white text, matching the track lists — list selections are now custom-drawn, since the system highlight blends with the list material and muted the accent.
Album page
- Track-number column (#) with centered, disc-aware sortable numbers. It doubles as the now-playing column: the speaker replaces the number on the playing track (and is now legible on a selected row — it was red-on-red before).
- Album grid text: the artist line is slightly larger and sits tighter under the album title.
Layout stability (also in the app since v0.1.1)
- Toggling the Now Playing panel no longer disturbs the rest of the window: the sidebar and toolbar stay perfectly still while the panel slides (verified frame-by-frame).
- Albums grids stay left-aligned at every window width.
- The volume slider no longer drags the window.
Full changelog: https://github.com/thijsw/sonicwave/compare/v0.1.1...v0.1.2
Sonicwave 0.1.1
What's changed
Layout stability
- Toggling the Now Playing panel no longer disturbs the rest of the window: the sidebar and toolbar stay perfectly still while the panel slides (verified frame-by-frame).
- Album grids stay left-aligned at every window width.
- The volume slider no longer drags the window.
Full changelog: https://github.com/thijsw/sonicwave/compare/v0.1.0...v0.1.1