Your music.Local and free.
WaveFlow plays your audio files the way Apple Music plays the cloud — no subscription, no ads, no telemetry. Auto-generated Daily Mix from your plays, DLNA casting to your speakers, synced lyrics and Hi-Res, all running on your machine.
Available on Linux, macOS and Windows
- Open source GPL-3.0
- No account required
- Zero telemetry
- 888 downloads
Features
Everything a modern player should do.
No feature thrown in for hype. Every detail serves your daily listening.
Auto-generated Daily Mix
Three mixes regenerated from your last 90 days of listening, bucketed by tempo: Calm, Groove, Energy.
Plus a rule-based smart-playlist editor: genre, BPM, year, rating, format, Hi-Res, likes.
Audiophile audio engine
Symphonia decoder, native DSD (DSF/DFF), Hi-Res up to 24-bit 192 kHz, CPAL output on three lock-free threads.
ReplayGain, gapless, sub-5 ms latency. Real-time FFT spectrum visualizer in the fullscreen view.
WaveFlow Wrapped
Your annual recap, told in a few slides: top artists, minutes listened, peak hours, dominant genres.
Computed locally from your history. No data sent, no metric shared by default.
Mood Radio
Five dynamic stations — Focus, Chill, Workout, Party, Sleep — filtered by tempo and energy from your own library.
Plus per-artist radio: one click on any artist starts an infinite flow of similar tracks.
Rich artist pages
Biography, clickable similar artists, full discography and fan count for every artist in your library.
Data optionally enriched from Deezer; everything works offline without it.
Built-in DLNA / UPnP server
Cast your library to Sonos, Yamaha MusicCast, Kodi, VLC or any UPnP renderer on the LAN. No pairing, zero cloud.
SSDP discovery, ContentDirectory, HTTP Range streaming. Toggle from Settings → Integrations.
Smart crossfade
Classic crossfade, or Smart (skips the fade between two tracks of the same album) or Dynamic (scales to the BPM gap).
Plus a Musicolet-style A-B intra-track loop, and 0.5×–2× playback speed.
Synced lyrics + editor
LRCLIB, embedded lyrics, .lrc import. The active line highlighted to the millisecond.
Built-in editor to sync your own lyrics: Space hotkey captures the timing while playback runs.
Listening stats
GitHub-style 12-month heatmap, top tracks / artists / albums per period, hourly peaks, completion rate.
Annual Wrapped recap and JSON export of your history. Computed locally, never sent anywhere.
Discord & Last.fm
Spotify-style Rich Presence on your Discord profile. Last.fm scrobbling with persistent queue and exponential backoff.
Plus OS media controls (MPRIS, SMTC, MediaRemote) for your multimedia keyboard keys.
A library that respects you
Folder watchers, drag-and-drop, hash-based duplicate detection, clickable multi-artist support.
Isolated profiles, custom album artwork, .waveflow archive import/export, scheduled auto-backup.
100% open source
Rust + React code on GitHub, GPL-3.0. Audit it, fork it, contribute. No tracker, no ads.
Tauri 2 + Rust for native, React 19 + TypeScript for the UI. 17 languages supported.
Smart Playlists
Daily Mix, made for you.
Three mixes regenerated from your last 90 days of plays. Artists are bucketed by their average tempo so each mix stays coherent from morning to night.
Lo-fi, ambient, ballads. For working, reading, drifting off.
Pop, rock, hip-hop, indie. The mid-tempo that owns your afternoons.
Dance, drum & bass, metal. For workouts, cleaning, long drives.
Custom smart playlists
Build your own rules.
Beyond the auto Daily Mix, build living playlists from predicates: genre, BPM, year, audio format, POPM rating, likes. The playlist re-materializes whenever new tracks land in your library.
- Genre
- BPM
- Year
- Rating ≥ 3★
- Liked only
- Hi-Res only
- FLAC format
- Duration
// example: { genre: "Jazz", year_min: 1955, year_max: 1965, hi_res_only: true, sort: "random", limit: 100 }
Mood Radio
Five moods. Always your library.
WaveFlow groups your tracks into five dynamic stations based on tempo, energy and spectral signature — then jumps between them as your mood shifts.
Each session draws from your local catalog. No streaming, no sponsored suggestions.
The home you won't leave.
Personalized greeting, at-a-glance stats, Wrapped banner, Mood Radio and Daily Mix — all in one view. Dark mode by default, light mode for those who like it.
Artist pages
Much more than a track list.
For every artist in your library: biography, clickable similar artists, full discography, fan count — plus a per-artist radio to keep exploring.
Biographies and similar artists come from Deezer if enabled; otherwise your library is enough.
Network casting
Your amp, no Sonos S2 required.
WaveFlow announces itself on the LAN as a UPnP MediaServer. Any DLNA renderer — Sonos, Yamaha MusicCast, Kodi, VLC — discovers it and plays your library, with no proprietary pairing and no cloud.
WaveFlow
MediaServer:1
- Sonos S2
- Yamaha MusicCast
- Kodi
- VLC
- BubbleUPnP
- 01
SSDP announce
Periodic broadcast on 239.255.255.250:1900 — renderers find WaveFlow with zero configuration.
- 02
DIDL-Lite browse
Your artists and albums show up in the renderer's UI just like a native media library.
- 03
HTTP Range streaming
Progressive playback with HTTP Range — accurate scrub, resume, efficient transfers.
Integrations
Plays nice with your stack.
WaveFlow plugs into what you already use — but never depends on any of these services to run.
- DiscordRich Presence
- Last.fmScrobbling + bios
- LRCLIBSynced lyrics
- DeezerMetadata
- MPRISLinux media keys
- SMTCWindows Now Playing
Local-first
You own your music. Let's take it back.
No subscription
Your files, your player, for life. Download the app, that's it.
No DRM
FLAC, ALAC, MP3, AAC, OGG, WAV, DSD — your files open everywhere, forever.
No tracking
No outbound connections beyond optional metadata enrichment. Offline mode is one click away.
No cloud
It all lives on your disk. One SQLite per profile. Zero-effort migration.
Hi-Res & DSD
24-bit decode up to 192 kHz, native DSF/DFF. The Hi-Res badge lights up automatically.
Multiple profiles
One library per person, fully isolated. Exportable .waveflow archive and scheduled auto-backup.
Download
WaveFlow v1.4.0 for your system.
Signed binaries, verifiable with .sig. No third-party installers, no embedded telemetry.
Linux
x86_64 — tested on Fedora 43 and Ubuntu 24.04
macOS
Universal — Apple Silicon and Intel
Windows
x86_64 — Windows 10 22H2 and later
Frequently asked
If yours isn't here, open an issue on GitHub.
Is WaveFlow really free?
Yes, and it always will be. WaveFlow is released under GPL-3.0. No subscription, no premium tier, no ads.
How do I install WaveFlow v1.4.0?
Download the binary matching your system on the GitHub releases page. On **Linux**, the AppImage is portable (make it executable with `chmod +x`), or install the .deb / .rpm via your package manager. On **macOS**, open the .dmg and drag WaveFlow into Applications; the binary is signed Universal (Apple Silicon + Intel). On **Windows**, run the .msi (silent, recommended for deployments) or the .exe (classic installer). Each asset ships with a .sig file for integrity verification.
Which audio formats are supported?
MP3, FLAC, ALAC, AAC, OGG Vorbis, WAV via the Symphonia decoder, plus DSD (DSF / DFF) through a dedicated pipeline. Hi-Res badges light up automatically at 24-bit or ≥ 44.1 kHz.
How do Daily Mixes work?
WaveFlow scans your last 90 days of plays, buckets your artists by average tempo (< 95 BPM, 95-130, ≥ 130) and materializes three deterministic playlists — plus five Mood Radio stations (Focus, Chill, Workout, Party, Sleep) filtered by tempo and energy. A 'Regenerate' button on the home view is all you need to refresh them. And you can build your own smart playlists from rules.
Can I cast to my hi-fi?
Yes. WaveFlow exposes your library as a DLNA / UPnP server. Sonos S2, Yamaha MusicCast, Kodi, VLC or any compatible renderer sees it appear on the network — no cloud, no proprietary pairing. Toggle it from Settings → Integrations.
Does my data leave my machine?
No. Library, plays, playlists and stats are stored locally in SQLite. Only optional metadata enrichment (Deezer, Last.fm, LRCLIB) makes outbound requests — a global offline mode cuts them all in one click.
Does WaveFlow replace Spotify or Apple Music?
For streaming, no. For your local library, yes — with comparable interface quality, auto Daily Mix, Hi-Res, DLNA, and zero cloud dependency.
Does it work with Discord and Last.fm?
Yes. Spotify-style Discord Rich Presence with album artwork. Authenticated Last.fm scrobbling with a persistent queue and automatic reconnect. Both are opt-in and can be disabled at any time.
Can I contribute?
Gladly. The project is on GitHub, written in Rust (Tauri 2) and React 19 + TypeScript. Issues, PRs and translations welcome.
What's the memory footprint?
Around 80 MB at idle, 150 MB during playback with a 10,000-track library. The scanner uses a bit more during the initial index pass, then settles back to a steady footprint.
Can I sync my library across machines?
No official cloud, but the SQLite database is a single file you can drop into Syncthing, Dropbox or any self-hosted service. The .waveflow export bundles profile + DB + artwork into a single archive.
Is there an offline mode?
WaveFlow is offline by default — that's the whole point. The global offline mode cuts Deezer, Last.fm, LRCLIB and similar-artist discovery in one click.
Take your music back.
WaveFlow v1.4.0 is out for Linux, macOS and Windows. Download the signed binaries on GitHub — AppImage, .deb, .rpm, .dmg, .msi.