WaveFlow

InstaZDLL·InstaZDLL.WaveFlow

Local-first music player with a Spotify-inspired UI.

WaveFlow is a local music player desktop app built with Tauri 2 and React 19. It scans your local audio folders, organizes tracks by album/artist/genre, and plays them with a real-time audio engine — no streaming, no cloud, your music stays on your machine. Features include smart playlists, BPM analysis, LRCLIB lyrics fetch, Last.fm scrobbling, Discord Rich Presence, DLNA streaming, a 6-band equalizer, A-B loop, sleep timer, mood radio, year-in-review Wrapped, and more.

winget install --id InstaZDLL.WaveFlow --exact --source winget

Latest 1.6.0·June 29, 2026

Release Notes

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.

Installer types: nullsoft, wix

ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownload7EB8CFED590642BF6E346335FDA1CDAF1AB23370D4DB7D67A9B0E7DA52DF5066
x64machinewixDownload75DD3C134967EC395929BF999E122DFF703920FAD2E03DD18AD89504989F4610

Details

Homepage
https://waveflow.app/
License
GPL-3.0
Publisher
InstaZDLL
Support
https://github.com/InstaZDLL/WaveFlow/issues
Privacy Policy
https://github.com/InstaZDLL/WaveFlow/blob/main/.github/SECURITY.md
Copyright
Copyright © 2026 InstaZDLL. Licensed under GPL-3.0-only.
Moniker
waveflow

Tags

audiodesktopflaclocal-firstlrclibmusicmusic-playerreplaygainspotifytauri

Older versions (8)

1.5.1
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownload269AE4EE33BAA9BDE5859F08CE041DB5436393C35D63966F5622BD61C5E9C8CC
x64machinewixDownloadB4D746423F1FB1D07AABFEBA24846DF5A86D531C9D06BA7F0B50CC35860B2CEE
1.5.0
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownloadC58A0A41A296179790B8E034D19A8CA25367D29E62F0A1D86685247BC68FC8AF
x64machinewixDownload7BFEAD846290A960D15E8235CC69441FDB97C19BB886EEF406D2BAB837A28F94
1.4.0
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownload024A919475DE24E7EA5028E0618D2C0F9048A08EF322FE3015BA2F8825894A72
x64machinewixDownload3278D68F7F99282B0D65495B5B7CFFE9D577FE8471DC71B2D9B68F02D09D07D4
1.3.0
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownloadA0DFBFB2DB7F22E07A0F962A4A43D2AE3451DA39F5DE44F73DC21F23D3784CBF
x64machinewixDownload01C9C738F7587FD964ED5CF0B72218A33A128BAAF2D397F15EA32169A80BF4C6
1.2.0
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownloadEE1125B3D6A9E14ECE1BF83EE2260F1939057AC55D5977F15CDC7475ADA76FB9
x64machinewixDownload29EB78E31EBCE1ADD7683EB56635A2CD130ADCAC016F826B142A4C241F73C1BF
1.1.1
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownload2B0E92CCB260A68FED2FDD561E5F340F7714A7169EC4AF8310766BE245EE4E40
x64machinewixDownloadDDF914599C869076114EE28DF0314C53AF96410C24E3FC6FD468162A7F7BBFF2
1.1.0
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownload44960C29A8338E0EA44DCE25204F2E1D62362F81C67C72D18F8CFA67B119A99C
x64machinewixDownload7C190FA36DF0D49C29804879A611516AD19C56A8C7107F98882E1C5B115CB302
1.0.0
ArchitectureScopeTypeDownloadSHA256
x64usernullsoftDownload0B1D62F7F6AB24382A90E95EB3C219973BC6308F29FFBC798073E3589D8AFADA
x64machinewixDownloadD127A3592CC4703593804FA38E727C34147932D3910A1EA7F98CFF8F751BF528