After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 724601 - Duplicate value for MusicBrainz Release Id
Duplicate value for MusicBrainz Release Id
Status: RESOLVED NOTGNOME
Product: sound-juicer
Classification: Applications
Component: metadata
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Sound Juicer Maintainers
Sound Juicer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-02-18 01:13 UTC by ghaspias
Modified: 2020-11-07 20:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screen shot of MusicBrainz Picard with errors (150.87 KB, image/png)
2014-05-11 20:19 UTC, galen.sampson
Details

Description ghaspias 2014-02-18 01:13:18 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.
Comment 1 Christophe Fergeau 2014-02-20 12:46:40 UTC
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?
Comment 2 galen.sampson 2014-05-11 20:19:57 UTC
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.
Comment 3 galen.sampson 2014-05-11 20:21:36 UTC
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
Comment 4 Bastien Nocera 2014-05-11 21:34:42 UTC
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?
Comment 5 galen.sampson 2014-05-11 21:56:18 UTC
This was the only problem that I had, yet.  I'm not sure if the original submitter had other problems.
Comment 6 Phillip Wood 2014-05-12 10:22:52 UTC
(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
Comment 7 galen.sampson 2014-05-13 02:53:46 UTC
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.
Comment 8 Bastien Nocera 2014-05-13 05:28:44 UTC
You still didn't explain why you think that that's a problem.
Comment 9 Phillip Wood 2014-05-13 13:27:49 UTC
(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.
Comment 10 André Klapper 2020-11-07 20:08:48 UTC
Closing per last comment.