feat: rebuild the moods from the library's measured tag distribution
Build and publish container / build (pull_request) Successful in 2m40s
Build and publish container / build (pull_request) Successful in 2m40s
The first set of moods was guessed at, and a tag census of the real library shows how badly. Four tags in the dance mood -- edm, big room, hardstyle, electronic dance music -- carry nothing whatsoever, while techno, electro, big beat, rave and progressive house together carry over seven thousand plays and were all absent. The drum and bass mood missed four of the six spellings the taggers actually use, plus techstep, darkstep and hospital records. The eighties mood was the worst of it. It leaned on the bare `80s` tag, which is the eleventh most-played tag here and sits on Def Leppard, Bon Jovi and AC/DC rather than on anything with a synthesiser in it. Removing it and adding a hair-metal mood -- glam rock, hair metal, glam metal, arena rock, AOR, windowed to 1975-1994 -- puts roughly eight thousand plays somewhere sensible and stops the synth playlist being a stadium rock playlist. Whole clusters had no mood at all: metal at around twenty-five thousand plays across heavy, thrash, speed, power, death and NWOBHM, and pop punk and emo at a similar figure. Both now exist, along with bass, nu-metal and indie. Three kinds of tag are excluded on principle, with a test enforcing it, because each produces a playlist that looks reasonable and is not. Nationality describes a passport rather than a sound, and `american` alone spans 241 artists. `rock` and `electronic` span 340 and 275, which is most of the collection. And Last.fm's most popular tag for an artist is frequently the artist's own name, so selecting on `green day` yields a Green Day playlist wearing a genre's clothes.
This commit is contained in:
@@ -174,17 +174,40 @@ An artist neither key resolves is recorded as fetched with no tags, so the next
|
||||
pass does not spend a request on it again. A genuine failure — a rate limit, a
|
||||
bad key — is *not* recorded, so that one is retried.
|
||||
|
||||
The built-in moods are chosen for this library rather than as a general
|
||||
taxonomy:
|
||||
The built-in moods are built from the **tag distribution of this library**,
|
||||
measured, rather than from a general taxonomy:
|
||||
|
||||
| Mood | Selected on |
|
||||
| ------------------ | ------------------------------------------------- |
|
||||
| `80s-synths` | synthpop, new wave, synthwave — released 1975-1992 |
|
||||
| `high-energy-rock` | hard rock, punk, pop punk, alternative |
|
||||
| `screamo` | screamo, post-hardcore, metalcore, emo |
|
||||
| `drum-and-bass` | drum and bass, liquid funk, neurofunk, jungle |
|
||||
| `dance` | house, big room, hardstyle, trance, dubstep |
|
||||
| `classic-rock` | classic rock, prog, psychedelic, blues rock |
|
||||
| --------------- | -------------------------------------------------------- |
|
||||
| `drum-and-bass` | drum and bass and its six spellings, liquid funk, neurofunk, jungle, techstep, hospital records |
|
||||
| `bass` | dubstep, brostep, grime, trip-hop, big beat |
|
||||
| `dance` | house and its variants, trance, techno, electro, rave |
|
||||
| `pop-punk` | pop punk, punk, emo, emocore, easycore, power pop |
|
||||
| `screamo` | screamo, post-hardcore, metalcore, melodic hardcore, trancecore |
|
||||
| `heavy-metal` | heavy metal, thrash, speed, power, death, prog, NWOBHM |
|
||||
| `hair-metal` | hair metal, glam metal, glam rock, arena rock, AOR — 1975-1994 |
|
||||
| `nu-metal` | nu metal, alternative metal, rapcore, industrial |
|
||||
| `classic-rock` | classic rock, prog, psychedelic, blues rock, 70s, 60s |
|
||||
| `80s-synths` | synthpop, electropop, new wave, post-punk — 1975-1992 |
|
||||
| `indie` | indie, indie rock, indie pop, britpop, singer-songwriter |
|
||||
|
||||
Measuring first mattered. `synthwave`, `edm`, `big room` and `hardstyle` are
|
||||
plausible tags that carry **nothing at all** here, while `techstep`, `easycore`
|
||||
and `hospital records` carry real weight. Guessing produces the first list.
|
||||
|
||||
Three kinds of tag are never used, and there is a test enforcing it:
|
||||
|
||||
- **Nationality** — `american` alone spans 241 artists. A passport is not a
|
||||
sound.
|
||||
- **`rock` and `electronic`** — 340 and 275 artists, most of the library. A
|
||||
mood that matches everything is not a mood.
|
||||
- **Artist names** — Last.fm's most popular tag for an artist is frequently
|
||||
their own name. `green day`, `paramore` and `queen` are single-artist
|
||||
playlists waiting to happen.
|
||||
|
||||
`80s-synths` deliberately excludes the bare `80s` tag, which in this library
|
||||
sits on Def Leppard and Bon Jovi rather than on anything with a synthesiser in
|
||||
it. Those belong to `hair-metal`, which is why that mood now exists.
|
||||
|
||||
An artist qualifies when their tag weights inside a mood sum to at least 30 out
|
||||
of Last.fm's 0-100 scale. One low-weight tag is not a genre, it is somebody's
|
||||
|
||||
Reference in New Issue
Block a user