I build OTONAMI , a pitch platform that connects independent
artists with music curators — playlist editors, radio DJs, bloggers, label scouts.
At its core is a single number: how well does this track fit this curator?
The math behind that number is textbook. Cosine similarity, Jaccard, a weighted
sum — nothing you can't find in a first-year course. What actually took real,
messy music data to get right were three design decisions . Each one came from
a concrete failure, and each one is the difference between a matcher that looks
fine in a demo and one that ranks sensibly in production.
I extracted and generalized the engine into a small, typed, open-source library —
music-matching-patterns —
so the code below is real and runnable. Here are the three decisions.
The shape of the problem
A match is scored on three factors and combined with weights:
score = genreScore · w_genre + moodScore · w_mood + audioScore · w_audio
Enter fullscreen mode
Exit fullscreen mode
Each sub-score lands in [0, 1] .…