diff --git a/packages/tourmaline/src/lib/analysis/mood.ts b/packages/tourmaline/src/lib/analysis/mood.ts index 9f3375d..f0ea50a 100644 --- a/packages/tourmaline/src/lib/analysis/mood.ts +++ b/packages/tourmaline/src/lib/analysis/mood.ts @@ -228,7 +228,10 @@ export function buildMoodProfile( let totalWeight = 0; - for (const { name, count } of data.topArtists) { + // Full artist history, not just the top 50 — artistInfos already covers + // every artist by the time this runs, and genres.ts uses the same full + // set to capture the long tail rather than an arbitrary truncation. + for (const [name, count] of data.artistPlayCounts) { const info = artistInfos.get(name); if (!info) continue; diff --git a/packages/tourmaline/src/lib/analysis/obscurity.ts b/packages/tourmaline/src/lib/analysis/obscurity.ts index b25630e..86c6af2 100644 --- a/packages/tourmaline/src/lib/analysis/obscurity.ts +++ b/packages/tourmaline/src/lib/analysis/obscurity.ts @@ -23,7 +23,10 @@ export function calculateObscurity( let totalWeight = 0; let totalObscurityWeight = 0; - for (const { name, count } of data.topArtists) { + // Full artist history, not just the top 50 — artistInfos already covers + // every artist by the time this runs, and genres.ts uses the same full + // set to capture the long tail rather than an arbitrary truncation. + for (const [name, count] of data.artistPlayCounts) { const info = artistInfos.get(name); if (!info?.listenerCount) continue;