1.6.0 (2026-06-29)
✨ What's new in v1.6.0
WaveFlow 1.6.0 — radio & robustness. The Web Radio plugin that shipped as a tech demo in 1.5.0 is now a full listening surface: live now-playing, artwork, lyrics, favorites, country browsing, and a fully offline station catalogue. Under the hood, the audio engine gained four robustness upgrades, the fullscreen experience was rebuilt into one immersive panel, and the first library scan is now ~4× faster. Still 100% local-first — nothing leaves your machine.
📻 Web Radio, fully grown (#289)
From "it plays a stream" to a real listening experience:
- Live now-playing — ICY stream titles become the current song, with the station identity (name · genre/country) on its own line, everywhere: PlayerBar, immersive view, mini-player.
- Album artwork — the Artist – Title resolves a cover from Deezer and replaces the station favicon. A stale fetch can never overwrite a track that already moved on.
- Lyrics per song — pulled live from LRCLIB as each track changes, rendered statically (a stream has no timeline to sync to).
- Favorites — one ★ on the PlayerBar, mini-player and immersive view, shared across all three so they never drift. Per profile.
- Browse by country — alongside the existing genre / top / search filters.
- Works offline — download a snapshot of the ~35 000-station directory (Settings → Data) and search it with zero network. Same queries, no connection. Used automatically in offline or local-first mode.
- Mini-player catch-up — a mini-player opened mid-stream now shows the live station, not a stale library track.
Web Radio — live now-playing, favorites, country browse
🎚️ Audio robustness
Four engine upgrades focused on never dropping or mangling a sample:
- Sharper DSD → PCM — choose the conversion quality (256 / 1024 / 2048 taps) in Settings → Playback. More taps = cleaner sound at a higher CPU cost. DSD only.
- Smoother network playback — files on a remote/SMB share are loaded fully into RAM (up to 512 MiB) and decoded from memory, so high-latency links no longer cause stutter.
- Proper surround downmix — 5.1 / 6.1 / 7.1 and beyond now fold down to stereo correctly (ITU-R BS.775) instead of silently dropping channels.
- Clip protection — the final stage guards the DAC against hard clipping while leaving a clean stream untouched (bit-perfect output preserved).
🖼️ Immersive view — one fullscreen panel (#328)
The old "fullscreen now-playing" and "fullscreen lyrics" overlays are now a single immersive view:
- Merged mode (opt-in) — cover + controls on the left, a tabbed panel on the right that flips between Lyrics and Queue, so you can manage what's next without leaving.
- Classic mode (default) — the familiar now-playing view, with a one-tap jump to fullscreen lyrics. Unchanged.
- Native OS fullscreen (opt-in) — a true borderless, Spotify-style takeover.
Both are per-profile (Settings → Appearance). Narrow windows fall back to classic automatically.
🔤 Scrolling long titles
Titles that don't fit now glide back and forth instead of being cut off, in the PlayerBar and immersive view. Respects prefers-reduced-motion, and you can turn it off in Settings → Appearance.
🔎 Smarter search & stats
- Sectioned search (#321) — the top-bar dropdown now splits results into Artists, Albums and Titles, each linking straight to its detail view.
- Top genres (#324) — a new Statistics card ranking your genres by listening time, included in the JSON export.
- Hideable KPIs (#324) — hide any stat card you don't care about (Settings → Appearance), saved per profile.
👤 Artist & metadata
- Offline artist overrides (#323) — write your own bio and pick your own "similar artists" per artist. They work fully offline and survive every enrichment pass. Edit from Artist Detail → "Edit info".
- TheAudioDB bios — pick TheAudioDB (multi-language) instead of Last.fm as your bio source in Settings → Integrations.
🧪 Beta channel
An opt-in pre-release lane in Settings → Diagnostics. Stable users never see betas; opt in to ride early builds through the in-app updater.
🎵 Mini-player up-next
The mini-player now has a toggleable up-next overlay reusing the live queue.
⚡ ~4× faster first scan
The cold-start scan got dramatically faster after profiling found the real hotspots:
- Partial hashing — files over 2 MiB now hash size + first 1 MiB + last 1 MiB instead of the whole file, cutting scan I/O several-fold while keeping move/rename dedup and tag-edit detection intact.
- Cached artist-image lookup — the artist.jpg scan that ran per track is now cached per folder: 56 s → 180 ms (~312×), full AAC scan 64 s → 16 s.
- No more analyzer contention — the background BPM/loudness analyzer now waits behind active scans, batches its writes and retries on a locked DB, so results are never silently lost.
🩹 Quality pass
- Skins — the immersive view is now dark and readable across all five skins instead of being repainted into an unreadable light slab.
- Web Radio — favorites writes are serialized, offline mode is honoured at the source, stale lyrics are cleared between stations, and the seek bar is hidden for live streams everywhere.
- Locales — full key parity across all 16 locales (1413 keys, zero missing). Brand tokens (WaveFlow, Daily Mix, On Repeat, Last.fm, Deezer, ReplayGain, LRCLIB, BPM) stay verbatim.
- Race hardening — the KPI toggle, artist override modal, scroll-titles toggle and updater channel are all hardened against rapid-toggle / profile-switch races.
📦 Recommended install
Use your platform's package manager when one is available, so updates keep flowing through the tool you already use.
Windows
winget install InstaZDLL.WaveFlow
Arch / Manjaro / EndeavourOS / CachyOS
yay -S waveflow-bin
or: paru -S waveflow-bin
Fedora / RHEL / Rocky / Alma / CentOS Stream
sudo dnf copr enable instazdll/waveflow
sudo dnf install waveflow
Debian / Ubuntu / Mint / Pop!_OS
The Debian package is wave-flow (kebab-case, required by the Debian naming spec — Tauri bundles it that way from the WaveFlow product name).
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://packages.buildkite.com/instazdll/waveflow/gpgkey
| sudo gpg --dearmor -o /etc/apt/keyrings/waveflow.gpg
echo "deb [signed-by=/etc/apt/keyrings/waveflow.gpg] https://packages.buildkite.com/instazdll/waveflow/any/ any main"
| sudo tee /etc/apt/sources.list.d/waveflow.list
sudo apt update && sudo apt install wave-flow
macOS
No Homebrew cask yet — grab the .dmg below. The bundle isn't Apple-signed, so right-click → Open the first time, or run xattr -cr /Applications/WaveFlow.app to clear the quarantine flag.
Standalone download
Everything is also available as a raw bundle below — .AppImage, .deb, .rpm, .exe, .msi, .dmg.