Author Topic: [minor] Copy/paste tags - leaves out some tags (POPM & custom binary strings)  (Read 1389 times)

alec.tron

  • Sr. Member
  • ****
  • Posts: 752
Heya,
I had a play around with copying tags and felt like there was a discrepancy (in MB 3.1.6381), so I did some more digging.
Looks like MB does not copy the POPM field in mp3s, as well as custom (binary...) GEOB frames from other programs (which might be beyond MB's purpose anyway...).


Original mp3 file - this is where I copied the tags from in MB:


Code
<class 'mutagen.id3.ID3'>
{u'GEOB:Serato Markers_': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato Markers_', data='\x02\x05\x00\x00\x00\x0e\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x00\x7f\x7f\x7f\x7f\x7f\x00\x00\x00\x00\x00\x00\
...(lots more binary data, too long for forum post)...
\x00\x00\x00\x03\x00\x07\x7f\x7f\x7f'),

'TPE1': TPE1(encoding=<Encoding.LATIN1: 0>, text=[u'M.I.A Vs ZOMBY']),

u'GEOB:Serato Overview': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato Overview', data='\x01\x05\x01\x01\x01\x01\x01++PPP%\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01*UUU++\
...(lots more binary data, too long for forum post)...
x01OOyOO*\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01*sOsON\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01OOsOs$\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01*yOyO*\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01OOsOs$\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01*sOsN*\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01OOyOU*\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01NsOsO*\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01NNsNs$\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01*UOyO+\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01+,P,,\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01+\x01\x01\x01\x01\x01\x01\x01'),

'TIT2': TIT2(encoding=<Encoding.LATIN1: 0>, text=[u"M.I.A. 'Bird flu' ZOMBY 'ESKI-FLU' REMIX  320-ORG"]),

u'GEOB:Serato Markers2': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato Markers2', data='\x01\x01AQFDT0xPUgAAAAAEAP///0JQTUxPQ0sAAAAAAQAA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
...(lots more binary data, too long for forum post)...
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'),

u'GEOB:Serato Autotags': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato Autotags', data='\x01\x01138.00\x003.525\x000.000\x00'),

u'TXXX:ENERGY': TXXX(encoding=<Encoding.LATIN1: 0>, desc=u'ENERGY', text=[u'7']),

u'POPM:MusicBee': POPM(email=u'MusicBee', rating=128, count=0),

'TBPM': TBPM(encoding=<Encoding.LATIN1: 0>, text=[u'138']),

u'GEOB:Serato BeatGrid': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato BeatGrid', data='\x01\x00\x00\x00\x00\x01=+!\x8eC\n\x00\x00+'),

'TSSE': TSSE(encoding=<Encoding.LATIN1: 0>, text=[u'Lame3.96']),

'TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Grime', u'Eski', u'Bass Music', u'Yardie Bass']),

'TKEY': TKEY(encoding=<Encoding.LATIN1: 0>, text=[u'Bbm']),

u'GEOB:Serato Offsets_': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato Offsets_',
data="\x01\x02000000320000.000000\x00000000044100.000000\x00\x05'\x01\x00\x04m<\x08\x00\x00K9\x00\x00\x08\x14\x08\x14\x08\x15\x08\x15\x08\x15\x08\x15\
...(lots more binary data, too long for forum post)...
x03\x00\x01\x01\x01"),

u'GEOB:Serato Analysis': GEOB(encoding=<Encoding.LATIN1: 0>, mime=u'application/octet-stream', filename=u'', desc=u'Serato Analysis', data='\x02\x01')}



Copy of the same file as above, but stripped all tags from it, then copied back them back on in MB, so this is the result with a few bits missing:

Code
<class 'mutagen.id3.ID3'>
{'TIT2': TIT2(encoding=<Encoding.LATIN1: 0>, text=[u"M.I.A. 'Bird flu' ZOMBY 'ESKI-FLU' REMIX  320-ORG"]),

u'TXXX:ENERGY': TXXX(encoding=<Encoding.LATIN1: 0>, desc=u'ENERGY', text=[u'7']),

'TPE1': TPE1(encoding=<Encoding.LATIN1: 0>, text=[u'M.I.A Vs ZOMBY']),

'TBPM': TBPM(encoding=<Encoding.LATIN1: 0>, text=[u'138']),

'TSSE': TSSE(encoding=<Encoding.LATIN1: 0>, text=[u'Lame3.96']),

'TCON': TCON(encoding=<Encoding.LATIN1: 0>, text=[u'Grime', u'Eski', u'Bass Music', u'Yardie Bass']),

'TKEY': TKEY(encoding=<Encoding.LATIN1: 0>, text=[u'Bbm'])}


Churs.
c.
Last Edit: June 25, 2017, 04:44:14 AM by alec.tron

alec.tron

  • Sr. Member
  • ****
  • Posts: 752
Similar with .flac files / vorbis tags. Looks liek the 'rating' tag, as well as the custom binary strings from others' aren't copied.


Original files' tags:
Code
<class 'mutagen.flac.VCFLACDict'>
<type 'unicode'>
rating
[u'10']
serato_markers_v2
[u'YXBwbGljYXRpb24vb2
...(lots more binary data, too long for forum post)...
\nAAAAAAAAAAAAAAAAAAAAAA']
disctotal
[u'1']
discogs_release_month
[u'07']
energy
[u'6']
discogs_styles
[u'Broken Beat']
totaldiscs
[u'1']
genre
[u'Broken Beat', u'Neo Soul', u'Skit']
albumartist
[u'Bugz In The Attic']
discogs_track_credits
[u'Mixed By - Thy Lord', u'Bass - Matt Lord', u'Drum Programming - Matt Lord', u'Keyboards - Kaidi Tatham', u'Percussion - Kaidi Tatham', u'Recorded By - Thy Lord']
tracknumber
[u'01']
serato_relvol
[u'YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtAABTZXJhdG8gUmVsVm9sQWQAAQEBAAAA']
discogs_master_release_id
[u'113982']
serato_video_assoc
[u'YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtAABTZXJhdG8gVmlkQXNzb2MAAQEBAO+wgOWojeSN\njlPvs5DlqI0CAN']
discogs_artists_members
[u'Alex Phountzi, Darren Benjamin, Daz-I-Kue, Kaidi Tatham, Mark Force, Matt Lord, Orin Walters, Paul Dolby, Scott Clifford']
traktor4
[u'dlVHE(1ABtAAAA4wlZhtBAC"BAAA::<y~XAAAAAAAA
...(lots more binary data, too long for forum post)...
AAAAAAAAAAAAAAAAAAAA']
album
[u'Back In The Doghouse']
serato_overview
[u'YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtAABTZXJhdG8gT3ZlcnZpZXcAAQUBAQEBAQEBAd8B
...(lots more binary data, too long for forum post)...
ExAQEBAQEBAQEBAQEGMTE3DQEBAQEBAQEBAQEBBw03MTEBAQEB\nAQEBAQEBAQYxMTcGAQEBAQEBAQEBAQEBBjExKwEBAQEBAQEBAQEBASsxMQYBAQEBAQEK']
title
[u'Intro']
discogs_votes
[u'19']
tracktotal
[u'16']
discogs_release_genres
[u'Electronic', u'Funk / Soul']
discogs_country
[u'UK']
serato_analysis
[u'YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtAABTZXJhdG8gQW5hbHlzaXMAAgEA']
discogs_catalog
[u'NURT 1036319']
initialkey
[u'Bm']
serato_autogain
[u'YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtAABTZXJhdG8gQXV0b3RhZ3MAAQExMjIuMDAAMC4y\nMjkAMC4wMDAAA']
discogs_artists_all_name_variations
[u'B.I.T.A, Bugs In The Attic, Bugz, Bugz In Da Attic, Bugz In The @tic, Bugz In The Attic Productions, Bugzintheattic, The Bugz In The Attic Productions']
discogs_rating
[u'4.37']
encoder
[u'reference libFLAC 1.1.4 20070213']
date
[u'2006']
discnumber
[u'1']
discogs_label
[u'V2']
discogs_artist_realname
[u'Orin Walters, Kaidi Tatham, Paul Dolby, Daz Benjamin,  Cliff Scott, Thy Lord & Mikey Stirton']
artist
[u'Bugz In The Attic']
discogs_label_id
[u'28607']
bpm
[u'122']
totaltracks
[u'16']
discogs_artists
[u'Bugz In The Attic']
discogs_original_track_number
[u'01']
serato_beatgrid
[u'YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtAABTZXJhdG8gQmVhdEdyaWQAAQAAAAABP5DtN0L0\nAABBA']
discogs_release_id
[u'792604']
organization
[u'V2']
discogs_released
[u'2006-07-00']
discogs_artist_id
[u'2889']
discogs_release_credits
[u'Producer - Bugz In The Attic']
[Finished in 0.2s]



copied / pasted on files' tags:
Code
<class 'mutagen.flac.VCFLACDict'>
<type 'unicode'>
album
[u'Back In The Doghouse']
initialkey
[u'Bm']
date
[u'2006']
artist
[u'Bugz In The Attic']
discogs_styles
[u'Broken Beat']
energy
[u'6']
title
[u'Intro']
bpm
[u'122']
totaldiscs
[u'1']
encoder
[u'reference libFLAC 1.1.4 20070213']
totaltracks
[u'16']
albumartist
[u'Bugz In The Attic']
organization
[u'V2']
genre
[u'Broken Beat', u'Neo Soul', u'Skit']
tracknumber
[u'01']
discnumber
[u'1']
discogs_release_genres
[u'Electronic', u'Funk / Soul']
[Finished in 0.2s]



My initial idea/hope here was to copy tags from mp3 -> flac when re-encoding old bits... but that's probably way outside the scope...

Churs.
c.
Last Edit: June 25, 2017, 04:51:50 AM by alec.tron

Steven

  • Administrator
  • Sr. Member
  • *****
  • Posts: 34350
MB wont copy the tags is doesnt "understand" so are GEOB
For rating it should be copied if its a one-to-one copy/paste but not if its from one file to many files

alec.tron

  • Sr. Member
  • ****
  • Posts: 752
Thanks for the input!
This was all tested on from one file to one file.

POPM/Rating value was missed on both test cases mp3 & flac, so that seems to be a consistent bug.

For the ' MB wont copy the tags is doesnt "understand"  ' bit - then that rules out any of the GEOB frames, but it's a bit odd that it managed to copy 2 of the custom discogs tags (which are the foo_discogs tagger defaults and all are in non GEOB framea), but then missed all but the 2...?
i.e.

The only discogs_* tag that made it through the copy on the flac file case was:
Code
discogs_styles
[u'Broken Beat']
...
discogs_release_genres
[u'Electronic', u'Funk / Soul']


Whereas all of these, which are present on the source, were not copied, and from your explanation I would think these should make it over ?
i.e.
Code
discogs_release_month
[u'07']
energy
[u'6']
discogs_styles
[u'Broken Beat']
...
discogs_track_credits
[u'Mixed By - Thy Lord', u'Bass - Matt Lord', u'Drum Programming - Matt Lord', u'Keyboards - Kaidi Tatham', u'Percussion - Kaidi Tatham', u'Recorded By - Thy Lord']
...
discogs_master_release_id
[u'113982']
...
discogs_votes
[u'19']
...
discogs_release_genres
[u'Electronic', u'Funk / Soul']
...
discogs_artists_all_name_variations
[u'B.I.T.A, Bugs In The Attic, Bugz, Bugz In Da Attic, Bugz In The @tic, Bugz In The Attic Productions, Bugzintheattic, The Bugz In The Attic Productions']
discogs_rating
[u'4.37']
...
discogs_artists
[u'Bugz In The Attic']
discogs_original_track_number
[u'01']
...
discogs_release_id
[u'792604']
organization
[u'V2']
discogs_released
[u'2006-07-00']
discogs_artist_id
[u'2889']
discogs_release_credits
[u'Producer - Bugz In The Attic']


Aaaahhh!.... I have "discogs_release_genres" and "discogs_styles" as custom tags defined in MusicBee (so I can switch the genre mapping within the thumbnail browser if I want a different angle, i.e. the discogs genre definitions).... so that's the definition of 'understanding' in this context...?!


c.
Last Edit: June 25, 2017, 12:20:12 PM by alec.tron