MusicBrainz metadata comparison between beets and Picard

977 views
Skip to first unread message

Stefano Bossi

unread,
Jul 31, 2016, 8:47:11 AM7/31/16
to beets
Dear beets developer,

I have started using beets since a couple of week and I have decided to move my metadata work from Picard to Beets.

I have controlled the differences between the metadata written by picard and beets, here are my considerations. For my research I have used this table map directly from musicbrainz site:
/https://picard.musicbrainz.org/docs/mappings/ and the official flac metadata inspection tool "metaflac"


First of all I cleaned all the metadata with metaflac:

metaflac --remove --block-type=VORBIS_COMMENT ./01\ -\ Koö\,\ January\ 24\,\ 1975\,\ Part\ I\ \(1\).flac

After the clean up here and a new metadatation, here are the two results:


With Beets:


metaflac
--list --block-type=VORBIS_COMMENT ./01\ -\ Köln\,\ January\ 24\,\ 1975\,\ Part\ I.flac
METADATA block
#2
  type
: 4 (VORBIS_COMMENT)
 
is last: false
  length
: 1232
  vendor
string: Mutagen 1.32
  comments
: 51
    comment
[0]: ACOUSTID_FINGERPRINT=
    comment
[1]: ACOUSTID_ID=
    comment
[2]: ALBUM=The Köln Concert
    comment
[3]: ALBUM ARTIST=Keith Jarrett
    comment
[4]: ALBUMARTIST=Keith Jarrett
    comment
[5]: ALBUMARTIST_CREDIT=Keith Jarrett
    comment
[6]: ALBUMARTISTSORT=Jarrett, Keith
    comment
[7]: MUSICBRAINZ_ALBUMCOMMENT=
    comment
[8]: MUSICBRAINZ_ALBUMSTATUS=Official
    comment
[9]: MUSICBRAINZ_ALBUMTYPE=live
    comment
[10]: ARTIST=Keith Jarrett
    comment
[11]: ARTIST_CREDIT=Keith Jarrett
    comment
[12]: ARTISTSORT=Jarrett, Keith
    comment
[13]: ASIN=B0000262WI
    comment
[14]: BPM=0
    comment
[15]: CATALOGNUMBER=ECM 1064 /65
    comment
[16]: DESCRIPTION=
    comment
[17]: COMMENT=
    comment
[18]: COMPILATION=0
    comment
[19]: COMPOSER=
    comment
[20]: RELEASECOUNTRY=DE
    comment
[21]: DATE=1983
    comment
[22]: YEAR=1983
    comment
[23]: DISC=1
    comment
[24]: DISCNUMBER=1
    comment
[25]: DISCSUBTITLE=
    comment
[26]: DISCTOTAL=1
    comment
[27]: DISCC=1
    comment
[28]: TOTALDISCS=1
    comment
[29]: ENCODEDBY=
    comment
[30]: ENCODER=
    comment
[31]: GENRE=
    comment
[32]: GROUPING=
    comment
[33]: LABEL=ECM
    comment
[34]: PUBLISHER=ECM
    comment
[35]: LANGUAGE=eng
    comment
[36]: LYRICS=
    comment
[37]: MUSICBRAINZ_ALBUMARTISTID=061c4920-3ea6-4835-98f6-02f3b82f5e3a
    comment
[38]: MUSICBRAINZ_ALBUMID=43dd0b85-0f22-3fa4-80d8-e49c7310af83
    comment
[39]: MUSICBRAINZ_ARTISTID=061c4920-3ea6-4835-98f6-02f3b82f5e3a
    comment
[40]: MUSICBRAINZ_RELEASEGROUPID=516d4629-7bf3-3ac3-907a-ed9a022db840
    comment
[41]: MUSICBRAINZ_TRACKID=efa85037-66ba-4910-ab97-86124ea515f3
    comment
[42]: MEDIA=CD
    comment
[43]: ORIGINALDATE=1975-11-30
    comment
[44]: SCRIPT=Latn
    comment
[45]: TITLE=Köln, January 24, 1975, Part I
    comment
[46]: TRACK=1
    comment
[47]: TRACKNUMBER=1
    comment
[48]: TRACKTOTAL=4
    comment
[49]: TRACKC=4
    comment
[50]: TOTALTRACKS=4


With Picard:

metaflac
--list --block-type=VORBIS_COMMENT ./01\ -\ Köln\,\ January\ 24\,\ 1975\,\ Part\ I\ \(1\).flac
METADATA block
#2
  type
: 4 (VORBIS_COMMENT)
 
is last: false
  length
: 1101
  vendor
string: Mutagen 1.27
  comments
: 37
    comment
[0]: BARCODE=042281006722
    comment
[1]: PRODUCER=Manfred Eicher
    comment
[2]: TITLE=Köln, January 24, 1975, Part I
    comment
[3]: RELEASECOUNTRY=DE
    comment
[4]: TOTALDISCS=1
    comment
[5]: LABEL=ECM
    comment
[6]: TOTALTRACKS=4
    comment
[7]: COMPOSERSORT=Jarrett, Keith
    comment
[8]: MUSICBRAINZ_ALBUMARTISTID=061c4920-3ea6-4835-98f6-02f3b82f5e3a
    comment
[9]: COMPOSER=Keith Jarrett
    comment
[10]: DATE=1983
    comment
[11]: DISCNUMBER=1
    comment
[12]: TRACKTOTAL=4
    comment
[13]: MUSICBRAINZ_RELEASETRACKID=d4755323-4a9c-3edd-8794-dc846e7ad868
    comment
[14]: ASIN=B0000262WI
    comment
[15]: ALBUMARTISTSORT=Jarrett, Keith
    comment
[16]: ORIGINALDATE=1975-11-30
    comment
[17]: SCRIPT=Latn
    comment
[18]: MUSICBRAINZ_ALBUMID=43dd0b85-0f22-3fa4-80d8-e49c7310af83
    comment
[19]: RELEASESTATUS=official
    comment
[20]: ALBUMARTIST=Keith Jarrett
    comment
[21]: CATALOGNUMBER=ECM 1064 /65
    comment
[22]: ENGINEER=Martin Wieland
    comment
[23]: ALBUM=The Köln Concert
    comment
[24]: MUSICBRAINZ_ARTISTID=061c4920-3ea6-4835-98f6-02f3b82f5e3a
    comment
[25]: MEDIA=CD
    comment
[26]: RELEASETYPE=album
    comment
[27]: RELEASETYPE=live
    comment
[28]: ORIGINALYEAR=1975
    comment
[29]: ISRC=DEA097500010
    comment
[30]: DISCTOTAL=1
    comment
[31]: ARTIST=Keith Jarrett
    comment
[32]: MUSICBRAINZ_RELEASEGROUPID=516d4629-7bf3-3ac3-907a-ed9a022db840
    comment
[33]: MUSICBRAINZ_TRACKID=efa85037-66ba-4910-ab97-86124ea515f3
    comment
[34]: ARTISTSORT=Jarrett, Keith
    comment
[35]: ARTISTS=Keith Jarrett
    comment
[36]: TRACKNUMBER=1


I have then checked the differences and here are the result:

Unique field present in Beets:

    comment
[0]: ACOUSTID_FINGERPRINT=
    comment
[1]: ACOUSTID_ID=
    comment
[4]: ALBUMARTIST=Keith Jarrett
    comment
[5]: ALBUMARTIST_CREDIT=Keith Jarrett
    comment
[7]: MUSICBRAINZ_ALBUMCOMMENT=
    comment
[8]: MUSICBRAINZ_ALBUMSTATUS=Official
    comment
[9]: MUSICBRAINZ_ALBUMTYPE=live
    comment
[11]: ARTIST_CREDIT=Keith Jarrett
    comment
[14]: BPM=0
    comment
[16]: DESCRIPTION=
    comment
[17]: COMMENT=
    comment
[18]: COMPILATION=0
    comment
[19]: COMPOSER=
    comment
[22]: YEAR=1983
    comment
[23]: DISC=1
    comment
[25]: DISCSUBTITLE=
    comment
[27]: DISCC=1
    comment
[29]: ENCODEDBY=
    comment
[30]: ENCODER=
    comment
[31]: GENRE=
    comment
[32]: GROUPING=
    comment
[34]: PUBLISHER=ECM
    comment
[35]: LANGUAGE=eng
    comment
[36]: LYRICS=
    comment
[46]: TRACK=1
    comment
[49]: TRACKC=4


Unique fields present in Picard:
    comment[0]: BARCODE=042281006722
    comment
[1]: PRODUCER=Manfred Eicher
    comment
[7]: COMPOSERSORT=Jarrett, Keith
    comment
[9]: COMPOSER=Keith Jarrett
    comment
[13]: MUSICBRAINZ_RELEASETRACKID=d4755323-4a9c-3edd-8794-dc846e7ad868
    comment
[19]: RELEASESTATUS=official
    comment
[22]: ENGINEER=Martin Wieland
    comment
[26]: RELEASETYPE=album
    comment
[27]: RELEASETYPE=live
    comment
[28]: ORIGINALYEAR=1975
    comment
[29]: ISRC=DEA097500010
    comment
[35]: ARTISTS=Keith Jarrett

Some considerations:
  • There are more fields in beets than in Picard this is very good! I think that using all the Musicbrainz field is the goal here. 
  • Some fields in Picard are not used in beets: BARCODE, PRODUCER, MUSICBRAINZ_RELEASETRACKID, ENGINEER, ISRC
  • RELEASESTATUS is the vorbis jargon of MUSICBRAINZ_ALBUMSTATUS which is APEv2. Here I think beets could use the correct Vorbis Jargon not the APE one.
  • COMPOSER and COMPOSERSORT are present in Picard left empty in Beets. This is strange... Maybe a bug ????
  • RELEASETYPE is vorbis jargon (Picard), MUSICBRAINZ_ALBUMTYPE is APE2 jargon. Beets maybe could use Vorbis instead of APE.
  • Picard use two RELEASETYPE (Album + Live) Beets just one; actually dropping "Album". I don't which could be the correct one, maybe using both as indicated in MusicBrainz?
  • ORIGINALYEAR is dropped in beets. There's a more complete ORIGINALDATE. And you can use $original_year in your path composition. Anyway could be worth to keep both for legacy software compatibility? 
  • ARTISTS (plural) this is a strange Picard only field. Maybe is a list of artists if the release is a collection? I don't know.

What do you think about the analysis ? I really hope that this comparison of mine will be useful to you for letting beets be the best tagging tool on the web!

Regards,
Stefano Bossi

Adrian Sampson

unread,
Jul 31, 2016, 12:28:59 PM7/31/16
to beets...@googlegroups.com
Thanks for the detailed investigation! Compatibility with Picard is generally a useful goal.

As you continue to explore, would you mind filing individual bugs on the issue tracker about pieces of missing metadata and alternative spellings? In particular, when we decide how to format metadata keys for each field, we’ll need to track down documentation for how to maximize compatibility with other tools, so it needs some case-by-case discussion. And for that kind of discussion, separate GitHub threads are the best way to get feedback and organize the documentation we have.

On a couple of specific cases:
- We don’t yet fetch the composer field: https://github.com/beetbox/beets/issues/506
- ORIGINALDATE vs. ORIGINALYEAR was discussed on the mailing list recently: https://groups.google.com/d/msg/beets-users/hOZ6z8hRwKM/f1IJ3yPAAgAJ
We didn’t reach a solid conclusion about which was standard, or even which Picard preferred—so thanks for investigating! Perhaps we should be writing the ORIGINALYEAR field in addition.

Adrian


--
You received this message because you are subscribed to the Google Groups "beets" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beets-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Andy Pastuszak

unread,
Sep 15, 2016, 12:43:12 PM9/15/16
to beets
If we're only adding new tags and not changing existing tags, is there a harm to that, or will it slow things down and make database more unwieldy?

Andy
Reply all
Reply to author
Forward
0 new messages