A local AI works very well for such things.
I’m still having fun! Now with a player and configuration page, and everything is also available in English:
Hah! I recently played around with something similar. Also with Claude, and I also called it roonAI. And my name is also George…
Though I adapted it from roonAIDJ to be more chat based. While I have discoverd some nice music with it (e.g. Bliss), I am not fully satisfied with the results yet. It seems to almost always include some Nora Jones… Blackpink is my daughters’ fault, so please don’t judge me.
What are the underlying prompts that you run with your filters?
Hi, i do not use Claude, but something similar ![]()
My prompt:
Frontend-Prompt
Create a music playlist
- Genres: <genres>
- Decades/Years: <decades_or_years>
- Mood/Energy: <mood>
- Vocals language: <language>
User request: <frontend_prompt>
Do NOT include any of these already selected tracks: <exclude_list>. (only if available)
Avoid these frequently used tracks from recent playlists: <history_list>. (only if active)
Prefer songs that are very likely available on <Tidal|Qobuz>.
IMPORTANT: quality mode is enabled.
- Use only very well-known, widely available original songs.
- Avoid live versions, edits, mashups, covers, karaoke, and remaster variants.
- Prefer clear studio album versions with high probability of being available in Roon.
Generate EXACTLY <N> UNIQUE songs (no duplicates, no variants of the same song).
year is required: original release year as a four-digit integer (e.g., 1995).
Return ONLY a valid JSON array with exactly <N> entries in this format:
[{"artist":"Artist Name","title":"Song Title","year":1995}]
No markdown, no prose, no code fences, no extra text.
Perhaps this will help.
@gweb and @Georg , don’t know if you could publish your projects somewhere that would allow others to build off of them, but that would be awesome.
I’m still thinking about it. The app itself runs on Windows, macOS and in a browser. It’s not finished yet.
OK, if you’d be willing I’d appreciate it. I’m especially interested in how the playlist is being built, and then passed to Roon for playback. I’ve been playing with a similar idea, but my approach hasn’t been working.
I’d still love someone to share code of what they’ve been working on – I have something similar working, but I’m struggling with the back and forth between the apps we’re making and Roon, given the lack of state on Roon API calls
Even more fun! ROON Widgets and a flexibly scalable web display for macOS:
And a detailed zone view for ROON AI:
Some great ideas here! This is the future of software. Roon itself will have to consider its moat and value proposition (save that for another thread please).
My AI exploration was an app called MusicMan to make playlists based on my history (LastFM), mood selection (upbeat modern, jazz sunday morning, etc). It works reasonably well and has configurations for different weighting factors. I just run it through Claude Code and it generates Tidal playlists which show up in Roon.
I think the human element is harder than the AI element – how do you want new music served up? What makes a given song, album, artist “good” for you and how do you match those elements.
Sadly, the Every Noise At Once site is no longer current, it would be a treasue trove of micro-genre for Ai to use. I have found some other genre sources.
If anyone wants my design spec from Claude Code, send me a DM.
I like to play random tracks from my library, but don’t like adding 5000 tracks at a time.
I create a little app on a pi 4 that serves up random tracks, which I approve/reject to build a queue.
Lets me know how long queue is, so if I have a hour free I can quickly build a random, but semi curated queue that lasts an hour
Is this available anywhere? I’d LOVE an iPhone widget to control my zone and prev/next
@Georg I’ll say again – would love if you published this code somewhere…seems like you have solved some issues that I’ve been struggling with.
I’m not actually planning to release this software or the code. That would only bring stress and impossible demands from users, and then it would stop being fun.
The whole project is really just there to collect new ideas and try out what else might be possible with Roon. Perhaps it is also a small nudge in the direction of the Roon developers. They would have so many more possibilities. The Roon API is, after all, very limited in what it can do.

















