Basically, it uses the helpers that handle conversion bytestring <-> unicode with the item's path, but weren't being used with artpath. For now, it just fixes the behavior for `modify`
Discogs (and other individual plugins) should return a penalty between
0.0 and 0.1, which will be multiplied by the general source weight. This
allows individual plugins to be weighted against relative to each other,
and amplified together against other penalty categories (track, title,
etc.)
Some albums have a single disc with positions like I, II, III, IV, etc.
Previously beets thought each track on these albums was a new medium.
Now we assume that if there is no explicit medium index and the ordinal
of an alpha medium does not appear to be sequential (e.g. A, B, C) that
the medium is actually the medium index.
Display similar title lines for missing and unmatched tracks, to
separate them from matched tracks. When media numbers or titles are
shown, it looks like missing tracks are grouped under the last media.
With missing and unmatched tracks grouped under a heading now, we don't
need to display "missing track" or "unmatched track" on every line,
making it easier to read the track titles.
Change the prefix from " * " (same as matched tracks) to " ! " for
missing and " ? " for unmatched tracks.
Consistently format track index for both missing and unmatched tracks.
Previously we were omitting the # for missing tracks (compared to
matched tracks), and we were just showing the index (no # or media
number) for unmatched tracks.
Also display track length, if available.
This necessitated a slight tweaking of the line printing code so that
the " * " prefix is not hard coded for all lines. The prefix is now
included in the `lhs` part of lines that actually need it, and this
allows us to alter or omit the prefix for individual lines.
If a file already has a track id, we should expect the best match album
to have a track with the same ID. Treat a missing ID the same as an
incorrect ID.
UI improvements and consistency. Colorisation, indentation, position by importance, and highlight benign changes.
1. Consistently colorise parenthesis surrounding colorised text that is conditional (doesn't always appear) so that it stand out more. This includes the album info data source (when it's not MusicBrainz), the album disambiguation (sometimes there is none), and the partial match message.
2. Indent the album title when there isn't a change. Makes it stand out more from the file path(s) above and info line below, and is consistent with the indentation when there is an album or artist change.
3. When listing releases, colorise album disambiguation in light gray to distinguish it more clearly from the album title. Light gray seems like a good colour because it is subtle, and disambiguation is supplementary information (not green/success, red/error or yellow/warning).
4. Also when listing releases, display similarity before partial message and disambiguation last. This is in order of importance, and also similarity is always present while the others are conditional, and finally it is often the case where the album title is the same and only the disambiguation is different. Using this order keeps things lined up in this case and easier to visually compare similarity and disambiguation text.
5. Colorise benign track index changes (to/from per disc numbering) in yellow, without applying a match penalty. We should still display these because even though the track number is still correct/equivalent, beets will apply a change if the new tags are applied.
6. Don't display source unless it's not MusicBrainz. By default beets will only find matches in the MusicBrainz database. Only if a plugin is enabled can a different source be used, so not everybody needs to see this all the time.
This is a little more accurate than the previous method (check if track
is in index or medium_index) by looking at the `per_disc_numbering`
setting and comparing the index or medium index accordingly.
It's also a little more accurate in the display output by diffing the
combined `disc-track` to `medium-medium_index` (if using per disc
numbering) and intelligently colorizing the either the whole track
number or just the suffix.