Vibe-aware playlists: match the mood/context of the request #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Right now playlist generation just pulls the top-N tracks by cosine similarity to the overall taste profile. But "play me some music" at 7am making breakfast is a very different request from "play me some music" at 10pm unwinding. The system has no concept of vibe, mood, or context — it always generates the same style of playlist.
Scenarios
Design questions
similarity = α * cosine(track, taste_profile) + (1-α) * cosine(track, text_embedding)where α controls the balance between personal taste and requested vibe.Key insight
CLAP's text encoder is the killer feature here. We already have the model loaded for audio embedding. Using
model.get_text_features()to embed the user's request and blending it with the taste profile could give us vibe-aware recommendations with zero additional infrastructure. The playlist generation endpoint already accepts parameters — we just need avibeorquerystring parameter.Impact
This is what makes the system feel magical vs mechanical. "Play me something chill" should actually play chill music, not just "music you've listened to before sorted by similarity."