Sunday, June 5, 2011

Standardized Metadata

Now that MusicBrainz has "tracks" separate from "recordings," MB editors can capture small title variations across releases where they'd previously have to standardize them according to Consistent Original Data and other guidelines. Even artist credits now allow for variance from actual artist names per track and release. This flexibility is great for the database, but Picard users might be annoyed by the inconsistency it can bring into their collections.

This was my motivation for adding options to ignore all of this lower-level metadata and use the more-standardized recording titles, release group titles, and artist names to tag with.

The default option "as on cover" is meant literally, and will tag your files with metadata as it likely appears on a specific release: using track titles, release titles, and artist credits.

Implementing the logic for this was very simple. All of the standardized metadata we need is available from a single /ws/2 release request, so it was just a matter of choosing what to parse. The hard part was developing the actual GUI options (and in fact, what you see above is still tentative). I'd never been very familiar with Qt Designer, so it took me a few hours to figure out how to space and align things exactly. I introduced an odd graphical glitch along the way too, which has since been fixed. (Thanks to Philip Jägenstedt for reporting the issue.)

There's now the question of whether or not these options are intuitive to users (especially those not familiar with how MusicBrainz stores things now). Then again, the same could be said for plenty of other options already in Picard…

Anyway, the code review has been submitted, so we'll have to wait and see how the feature evolves from here. Once it's reviewed by other developers and accepted (possibly after a few revisions), I can merge everything into the main Picard branch for it to become part of the next version. (0.15 final?)

5 comments:

  1. Looks good; although I'd argue that Standardized should be the default and the left of the two options, since that was basically the way the old Picard worked with the "old" Style guidelines.

    Side note: have you given any thought to how the two sets of data might be made available to scripts? %artist_standardized%?

    ReplyDelete
  2. My original thinking was that since Picard defaults to returning data untouched from the server (as far as I can see), the track information is closer/more specific to releases than recordings are, etc. But I see your point and don't have any problem switching them around, if that's what most people want (I guess I'll have to ask around).

    I haven't given any thought to the tagger script idea. :) The implementation avoids recording information altogether if you have standardization disabled, and sets the tags directly as the release is being parsed. Is there a use case you're imagining where someone might want access to standardized metadata through scripts, even though they have it disabled globally?

    ReplyDelete
  3. Hi Michael, one thing that was never clear to me is how to update already tagged (with MB) files, properly.
    The "given files x and y on my disk, figuring out which songs on which album they are" can be considerable manual work, because autodetection doesn't always assign the files correctly.
    So, if I ever:
    1) change my mind re standardized vs as-on-cover
    2) want to pull in updates (i.e. fixes have been applied in the MB database)
    3) change my mind on how I want the file names or some tags (like the "various artists one") to be constructed

    I don't want to do the assignment process manually again.
    Wouldn't it be better to also store the MB id's in the id3 comment header or something?
    Then any update or change does not require the intensive assignment process.

    Dieter

    ReplyDelete
  4. Dieter_be: your files do get tagged with MBIDs. That's why after you tag something with Picard and drag the files in again later, the releases are loaded immediately and they are automatically matched. If that is not happening for you, then you must be removing those tags somehow by accident, or you've found a bug that you should report at http://bugs.musicbrainz.org ;)

    ReplyDelete
  5. Regarding making standardized and "as on cover" names available in tagger script:

    I use Quod Libet, making it really easy for me to search freeform tags. I've often wanted to have both credited artist names and standardized artist names to search, and that could then be easily accomplished with a little snippet of script.

    Cheers!

    ReplyDelete