Menu

1 / 2

Three decisions behind a music-to-curator matching score

DEV Community·Satoshi Yamashita·5 months ago
#NYnCoLyd
#dev#curator#track#const#article
Reading 0:00
15s threshold

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] .…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.