PB.NL
18:59:27
WebradioSEP 25, 2026
Peter
Peter

One Day, Two Claudes, Nine Years of Music

Nine years of music coming home, 13,651 tracks through analysis, a Mac mini whirring away. Preliminary research for our own AI radio. Simply because we love this music.

One Day, Two Claudes, Nine Years of Music
AI Generated

Perfectmoods (our own web radio station) has been broadcasting since 2017. All these years hosted by RadioKing, a French company. Quite 'yes' Handy dashboard software, apps we could publish ourselves, a stream that just worked, daily playlist generation..... There's nothing wrong with that. But I want more, really much more now! More of our own, and more driven by the music itself and the style we serve every day. Currently, the radio doesn't know what it's playing. It plays playlists that we manually generate. Which track is calm, which has groove, where vocals are present: that's in our heads, not in the system. This is preliminary research. And it starts with the data. Our data.

This music comes from somewhere. I've been collecting lounge, house, and chill for years. On vinyl, and especially on CD. Over the years, I've converted hundreds of CDs into mp3s. This station was built from that. Part of the collection is on Discogs, under perfectmoods.

But especially in my years as a 'DJ', my love for lounge and chill grew, particularly for the music from the period of 1998 to 2010. Those were the glory years of the genre for me: music that was incredibly well and feelingly produced. Monte La Rue, who still releases new music, the sound of Supperclub and the Ibiza sound from that time: I love it.

RadioKing has no export button. It does have an API, per track. So Claude wrote a command in the chat, and Claude Code on the Mac mini built a download script to categorically fetch the 13,651 tracks. Calmly, with pauses between downloads and a backoff that doubles on errors. Resumable, so that an expired token or a restart doesn't break anything. First a trial on a small set, then the full run under caffeinate, so the Mac doesn't fall asleep. At a quarter to twelve, it started. By half-past three, about 40% was in. Folder per playlist: Monday, Tuesday, Monday Morning, Friday.

Fetching is step one
. Enriching is step two. A second Claude Code runs each track through Essentia, open-source audio analysis, with Discogs-EffNet models on top. Each track yields values for style, danceability, vocal or instrumental, and mood. Everything goes into an SQLite database. Per track, per playlist.

The first result was incorrect. The ML model gave almost all lounge a 0.9 to 1.0 for danceability. Jaffa as danceable as Atjazz. You just don't hear it that way. The classic Essentia measurement did well: Jaffa around 1.3, Atjazz around 2.2. That's now added as a separate groove column. Handy for the uptempo block between four and six.

Now Monday (selection tracks) is going through. Nearly 2,000 tracks, a few seconds per track. The Mac mini is whirring. You can hear it in the room.

We are still far from our own radio software or AI station, at least this is the first data cleansing and enrichment. The plan is set: our own server with AzuraCast and an AI curator that programmes based on the time of day.

But you don't build that on playlists. You build that on data. We're fetching that now and enriching it, track by track. Chat thinks and checks. Claude Code does the work. My ear decides.

Perfectmoods in Numbers

  • 13,651 tracks, 1,083 hours of music

  • Since January 2022: over 2.7 million hours listened, spread over 2.4 million sessions

  • On average about 500 listeners per day

  • Listeners from over 200 countries. The Netherlands leads (28%), followed by Germany (12%) and the USA (8%)

  • Most listening occurs in the afternoon (32%), almost as much in the morning (30%)

  • 13% of sessions last longer than two hours

Why, Actually??

There is no revenue model behind it. No advertising, no subscription, no plan (yet) to ever earn anything from it. Nothing has ever been earned from it and it doesn't need to be. Perfectmoods exists because we love this music. Because a good track at the right moment makes your day better. And because it's fun to see someone in Germany, Japan, or Paris listening at the same time to a CD that once sat on our shelf, or just chill music that fits.

Everything that Claude and I are building now is for that. A radio that knows the music better, so it can play it better.
Tonight around seven, Monday will be done. Then we continue listening. Really cool what I want to create, and I think this will be the first real AI-driven radio station that can adjust its voice, promos, and music to the local weather on the fly....


Stay tuned, follow me because big plans and a lot of time.

Buma: 2260114 | Sena: 80883623

ENDOOR — Peet (& Claude)

PerfectMoods Radio

Lounge & Chillout Music