Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Towards A Better DJ

I'm building a robot DJ.

A photo of a 3x5 note card laying on a wood surface. The underlined title of the card is 'Spotify ~ Tunify ~ auto D.J.' Under the title is a list with the following items: 1 keep track of the last N# of plays. don't repeat. 2 pull user library for seed. 3 pull artist songs from other albums. 4 group by date. 5 don't play the same artist within 7 songs unless you do an occasional pair. Above the title is the date 2023 ~ 12 ~ 24 and 3 playlists? and roll off playlist on repeat?

Feed Me

I want new music. I mean, it can be old music, sure. But I want music that's new to me.

I used Spotify's "Go to song radio" feature a lot to try to find new music. It always seemed to loop back on itself. I'd jump to a new set, find a song I liked that seemed the least similar and do "Go to song radio" again. The hope was that it would expand out and feed me new tunes.

It didn't work. It always seemed to keep the same set of songs and wind up back at the start.

Next Up

I tried YouTube Music for a while. At the start, it did better about putting new music in front of me. It tailed off after a bit. I can only guess that as it collected more data on me it refined things in a way that made it decide it had found all the music I'd like so it stopped giving me new stuff.

Enter Spotify's "AI DJ". It's pretty good. Or, it was at the start. It had a nice mix of my existing song lists plus semi-frequent introductions to new music.

The same thing happened. It started to feed back on itself. Playing some songs, then a few days later say "here's some stuff you've been listening to" and playing the same shit. Then a few days later "here's some stuff you've listened to a whole lot!" with the same tunes.

Like, no shit. It was on the playlist because _you__ played it, my software DJ friend.

Spotify's Discover Weekly is way better. In fact, it's far and away the best thing I've found for new music. But, I want the new stuff mixed in with my existing library.

Taking A Swing

It's hard for me to believe that this isn't a solved problem. Play the shit I like, and throw in some new stuff from time to time. What can be so hard about that?

I have no idea what the answer to that question is, but I've done software and data stuff long enough to know that since it's still not great it probably means it's a really hard problem to solve. I'll tell you soon, because I'm about to find out.

Spotify has a service that offers access to a lot of their data. I'm using it to build my own robot DJ. I don't have training in statistics or machine learning/AI models or any of that stuff. All I've got is some programming skills and some naive ideas based on the way I listen. Time to see what I can do with that.

Stay tuned.

References