beets icon indicating copy to clipboard operation
beets copied to clipboard

Add month and day penalty types

Open billyjanitsch opened this issue 4 years ago • 1 comments

Use case

I prefer when an album's metadata includes a full release date rather than only a year, to allow for more granular sorting of releases. Also, anecdotally, I've found that when MusicBrainz has several releases for a particular album, those that include month/day fields tend to have more accurate tags in general. So I'd like beets to generally prefer these.

Currently, beets' max_rec config option supports setting a penalty for the absence of a year field, but not for month or day.

Solution

month and day options would be available, and would work exactly as the year option already does.

Alternatives

I could add month/day to the required config, but sometimes all of the releases for an album only have a year, in which case I'd want to display those matches rather than ignore them.

P.S. Thanks for your continued work on this wonderful project. ❤

billyjanitsch avatar Dec 01 '20 02:12 billyjanitsch

Cool! This is a solid idea.

To clarify for anyone who's interested in diving into an implementation, this issue is not specific to the max_rec settings. Rather, we don't have a distance key (i.e., penalty category) for month and day at all. We have one for year because that's what's usually most useful in disambiguating matches. So what we should probably do here is add month and day as distance keys but set their default weight to 0.0 (i.e., ignored) or quite small, which will make them available for customization and for the max_rec functionality.

sampsyo avatar Dec 01 '20 13:12 sampsyo