Kolo
I got tired of Spotify recommending music I don't actually like, so, like any sane ML engineer, I decided to build my own Spotify - with some ML experiments and questionable amounts of tinkering along the way.
How it works.
Three steps, all running on my own machine. No accounts, no cloud.
- 01
Listen
Every track in my library goes through MuQ-MuLan, an audio model that turns it into a 512-dimensional vector. Songs that sound alike land close together.
- 02
Map
K-means splits those vectors into six clusters, and t-SNE and UMAP flatten them into a 3D map I can fly through inside the player. I named the clusters by hand.
- 03
Predict
A small ensemble (an RBF support-vector regressor plus Extra Trees) learns my star ratings from the vectors, then guesses how I would rate anything I have not heard yet.
- 2,065
- tracks embedded
- 1,208
- ratings it learned from
- 0.47
- stars of average error
- 90%
- of guesses within one star
My taste, in six clusters.
K-means found the groups. I looked at what sat near each centre and named them myself.

The player.
The player itself is React and Vite with an optional Tauri desktop shell: ratings in half stars, a queue, a loudness limiter, and imports from YouTube links or Spotify playlists.


Does it work?
Mostly. On ratings it has never seen, it lands within one star nine times out of ten.
The model is conservative and regresses toward the middle. Its worst miss: it predicted 3.4 stars for a track I gave half a star.
On a discovery run it scored 30 new tracks and kept four at four stars or more, including Kiasmos and David August.