SUB/WAVE turns your music library into a real radio station: one shared stream, an AI DJ that picks tracks, reads idents and takes requests in plain language. Self-hosted, works with local LLMs, MIT licensed. Web, iOS, Android and desktop players.
Hey Product Hunt 👋
I'm Parminder, and for the last three months I've been building the radio station I always wanted.
Streaming apps gave us infinite choice and somehow made music lonely. Everyone sits in their own algorithmic bubble. I missed radio: one broadcast, everyone hearing the same song at the same time, a voice between tracks that makes it feel alive.
SUB/WAVE is that, self-hosted. Point it at your music library (Navidrome or any Subsonic server), give it an LLM (a local Ollama model is enough) and you get a 24/7 station: an AI DJ picks the tracks, does station idents, reads the time and weather, and takes song requests in plain language. People tune in from the web player, native iOS and Android apps, a desktop app, or anything that plays an MP3 stream, including Sonos and car radios.
Some things I'm proud of:
- It's radio, not a playlist. No skip button, no per-listener shuffle. You tune in and hear whatever's on.
- Transitions are ending-aware. The DJ knows whether a song fades out or ends cold, and can even blend stems between tracks.
- DJ personas, guest co-hosts with banter, and produced programmes with per-episode plans.
- Everything can run locally: LLM via Ollama, local TTS, your own music files. No cloud required.
- MIT licensed. 48 releases in three months, and it just hit 1.0 this week.
There's a live demo station if you want to hear it before installing anything: https://www.getsubwave.com/listen
I'd love to hear what you'd want from a station of your own. I'll be around all day answering questions.
Report
Love the self-hosted angle and the AI DJ taking plain-language requests is a great touch. One thing I'd love: a "discover from my own library" mode where the DJ only pulls from tracks you haven't played in a while, so it actually helps you rediscover music instead of leaning on the same favorites.
@referralpro Thanks. Part of that is already in there: the picker builds its candidate pool from several sources, and deep cuts and rarely-played tracks are one of them. There's also a deep-cut skill where the DJ digs something out of the back of the library and talks about why it's been sitting there.
What doesn't exist yet is the hard version you're describing, something like "nothing I've played in the last 60 days, no exceptions". That's a pool-level filter and it's a good idea.
If you want to hear the current behaviour, the demo station is at getsubwave.com/listen. It'll play things I'd forgotten I owned.
Report
It looks good, but a problem for me and for most people now i guess is that we don't store our music files, just use spotify or apple music
@kamil_infeld Fair, and you're right that it's most people. SUB/WAVE needs a library you actually hold, so if you're all-in on Spotify or Apple Music it isn't for you and I'm not going to pretend otherwise.
The people it's built for are the ones with a Navidrome or Plex server and a few hundred gigs of files they never get through. Smaller crowd, but it's a real one.
If you ever do pull your library down, it's here. Either way, thanks for looking.
Report
I probably wouldn’t replace Spotify with this, but I do like the idea of turning a personal music library into something that feels alive instead of just another playlist. The shared stream and local setup give it a character most music apps have lost. Congrats on the launch!
@etiennegarcia Thanks. And you shouldn't replace Spotify with it, that's not the job. It only works if you already have the files.
The alive part is the bit I care about most. One stream, no per-listener anything, no skip button. You tune in and whatever's on is what's on. Turns out that changes how you listen more than I expected.
@conduit_design Thanks. Self-sovereign is a good way to put it. If you run Ollama and local TTS, nothing leaves the box at all. The only thing it phones out for is the weather.
Closer to a station than a DJ though. One stream, everyone hears the same track, no skip button.
@perminder_klair I've dreamed of having my own radio since childhood. With AI, it's actually doable — I've been mulling it over for the last few weeks. And then I randomly stumbled upon your project!
The implementation is fire. Huge respect! 👏
I'm definitely going to make my own station. Shaking your hand! 🤝
SUB/WAVE
Love the self-hosted angle and the AI DJ taking plain-language requests is a great touch. One thing I'd love: a "discover from my own library" mode where the DJ only pulls from tracks you haven't played in a while, so it actually helps you rediscover music instead of leaning on the same favorites.
SUB/WAVE
@referralpro Thanks. Part of that is already in there: the picker builds its candidate pool from several sources, and deep cuts and rarely-played tracks are one of them. There's also a deep-cut skill where the DJ digs something out of the back of the library and talks about why it's been sitting there.
What doesn't exist yet is the hard version you're describing, something like "nothing I've played in the last 60 days, no exceptions". That's a pool-level filter and it's a good idea.
If you want to hear the current behaviour, the demo station is at getsubwave.com/listen. It'll play things I'd forgotten I owned.
It looks good, but a problem for me and for most people now i guess is that we don't store our music files, just use spotify or apple music
SUB/WAVE
@kamil_infeld Fair, and you're right that it's most people. SUB/WAVE needs a library you actually hold, so if you're all-in on Spotify or Apple Music it isn't for you and I'm not going to pretend otherwise.
The people it's built for are the ones with a Navidrome or Plex server and a few hundred gigs of files they never get through. Smaller crowd, but it's a real one.
If you ever do pull your library down, it's here. Either way, thanks for looking.
SUB/WAVE
@etiennegarcia Thanks. And you shouldn't replace Spotify with it, that's not the job. It only works if you already have the files.
The alive part is the bit I care about most. One stream, no per-listener anything, no skip button. You tune in and whatever's on is what's on. Turns out that changes how you listen more than I expected.
DiffSense
This is very cool! Like a self-sovereign Spotify AI DJ :D
SUB/WAVE
@conduit_design Thanks. Self-sovereign is a good way to put it. If you run Ollama and local TTS, nothing leaves the box at all. The only thing it phones out for is the weather.
Closer to a station than a DJ though. One stream, everyone hears the same track, no skip button.
Hi @perminder_klair how do you plan to monetize?
@perminder_klair I've dreamed of having my own radio since childhood. With AI, it's actually doable — I've been mulling it over for the last few weeks. And then I randomly stumbled upon your project!
The implementation is fire. Huge respect! 👏
I'm definitely going to make my own station. Shaking your hand! 🤝