GNOME Bugzilla – Bug 724601
Duplicate value for MusicBrainz Release Id
Last modified: 2020-11-07 20:08:48 UTC
Using version 3.5.0 on Ubuntu 13.04. Most CD lookups result in duplicate values for some of the tags, mostly the MusicBrainz Release ID. This one in particular leds to MusicBrainz Picard failure to retrieve release data. I don't know if the problem is with sound juicer or musicbrainz picard.
I don't understand this bug report :( Can you provide the steps to follow to observe the duplicate values? Are you talking about id3/vorbis tags, or some different tags?
Created attachment 276346 [details] Screen shot of MusicBrainz Picard with errors Notice how MusicBrainz Picard doesn't automatically recognize the album despite having metadata from Sound Juicer. Also note how, after scanning, Picard wants to change the release ids. The original ids duplicated and are separated by a semicolon in the Picard UI.
I have the same problem as the initial reporter. I will try to clarify the situation. The mp3 tags that are generated by sound juicer seem to encode the same information multiple times (this is output from mediainfo, id3v2 -l also shows duplication): MusicBrainz Album Id : a373ed2f-a61a-3304-bdc8-e359b92afc4f musicbrainz_albumid : a373ed2f-a61a-3304-bdc8-e359b92afc4f MusicBrainz Album Artist Id : 0220a594-56a1-47ca-8288-001ead3a3546 musicbrainz_albumartistid : 0220a594-56a1-47ca-8288-001ead3a3546 MusicBrainz Artist Id : 0220a594-56a1-47ca-8288-001ead3a3546 musicbrainz_artistid : 0220a594-56a1-47ca-8288-001ead3a3546 CDDB DiscID : 9106e70d discid : 9106e70d MusicBrainz DiscID : FNQ2_jpn3.jMC11z0_BINCZy74M- musicbrainz_discid : FNQ2_jpn3.jMC11z0_BINCZy74M- This seems to confuse the MusicBrainz Picard application (see attached screen shot where the album id is displayed twice separated by a semicolon). I'm not sure if the problem is with gstreamer tagging or not. The libjuicer/sj-extractor.c function sj_extractor_extract_track contains lines like this: if (track->album->album_id != NULL && strcmp (track->album->album_id, "") != 0) { gst_tag_setter_add_tags (tagger, GST_TAG_MERGE_APPEND, GST_TAG_MUSICBRAINZ_ALBUMID, track->album->album_id, NULL); } Perhaps gstreamer already has an album id and this is duplicating the tag in the output? I'm using arch linux with package https://www.archlinux.org/packages/extra/x86_64/sound-juicer/ This builds sound juicer from source http://ftp.gnome.org/pub/gnome/sources/sound-juicer/3.5/sound-juicer-3.5.tar.xz
Sure it's slightly annoying that multiple slightly different fields are used to contain the same metadata (probably depending on the tool that will need to consume those values), but if Picard gets confused, then it's a problem with Picard. Is this the only problem you had?
This was the only problem that I had, yet. I'm not sure if the original submitter had other problems.
(In reply to comment #3) > This seems to confuse the MusicBrainz Picard application (see attached screen > shot where the album id is displayed twice separated by a semicolon). I agree with Bastian that this is really a problem with picard, it should be removing duplicates when it concatenates the values from the different tags. > I'm not sure if the problem is with gstreamer tagging or not. Yes it is GStreamer that sets the tags, it uses different names depending on which format you are extracting to, for some formats multiple versions of the same tag are set presumably to support other software that only looks for a single version. > libjuicer/sj-extractor.c function sj_extractor_extract_track contains lines > like this: > > if (track->album->album_id != NULL && strcmp (track->album->album_id, "") > != 0) { > gst_tag_setter_add_tags (tagger, > GST_TAG_MERGE_APPEND, > GST_TAG_MUSICBRAINZ_ALBUMID, > track->album->album_id, > NULL); > } > > Perhaps gstreamer already has an album id and this is duplicating the tag in > the output? GST_TAG_MUSICBRAINZ_ALBUMID maps onto more than one output tag for some formats. > I'm using arch linux with package > https://www.archlinux.org/packages/extra/x86_64/sound-juicer/ > > This builds sound juicer from source > http://ftp.gnome.org/pub/gnome/sources/sound-juicer/3.5/sound-juicer-3.5.tar.xz It wont make any difference to this but you can get the latest version from the aur at https://aur.archlinux.org/packages/sound-juicer-git
I think the duplicates may be caused because the function gst_tag_setter_add_tags() is called for every element in the gstreamer pipeline, and each element may have a different representation for tags. The problem could probably be solved by only calling the gst_tag_setter_add_tags() on the last element in the pipeline implementing GstTagSetter. This is made difficult because the sound juicer pipeline is created from a string representation that the user provides. You could find the desired element by walking the pipeline elements backward (follow the parent property) from the filesink element until you reach the first element implementing GstTagSetter. Once you find this element you could use REPLACE instead of APPEND when you add the tag to ensure you only get one tag representation from the final element only. In libjuicer/sj-extractor.c: /* Set the metadata */ iter = gst_bin_iterate_all_by_interface (GST_BIN (priv->pipeline), GST_TYPE_TAG_SETTER); done = FALSE; while (!done) { ..... If I have time I'll experiment with a test case.
You still didn't explain why you think that that's a problem.
(In reply to comment #7) I'm afraid I still don't understand why you think this a bug with sound-juicer rather than picard. In you screen shot it's clear that picard is reading both tags and concatenating the values without checking to see whether they're the same. > I think the duplicates may be caused because the function > gst_tag_setter_add_tags() is called for every element in the gstreamer > pipeline, and each element may have a different representation for tags. If you look at the source for the id3 tag muxers you'll see that they set two tags for some of the musicbrainz tags as I tried to explain above in comment 6. That is both tags are set by a single element (the tag muxer) in the pipeline. If you are interested in GStreamer and want to contribute to sound juicer we could do with a way of setting the encoding bitrate as rhythmbox does.
Closing per last comment.