WIP: Song's tags editor dialog

Closed Jean Felder requested to merge wip/jfelder/musicbrainz-tageditordialog into master

This branch adds the possibility to edit a song's tags. It is loosely based on the patches from #6. The codebase has changed a lot since 2016 but the idea and logic remain the same.
I'm gonna be honest, I have a hard time figuring out how the whole workflow is supposed to work.

Current implementation

  1. from the Songs view, select one song and click on edit details. It displays a new dialog
  2. An online search is automatically triggered to get song's tags. It uses chromaprint and acoustid plugins from grilo (some tags retrieval are still missing, see grilo-plugins!24 (closed))
  3. writeback (not implemented): click on use suggestions to store the result.


Current implementation

I think this logic and implementation has some flaws:

  • filename and path are invisible. So, when a song has no previous tags, it's impossible to know if the request has found a good result
  • It is not possible to mix automatic result with manual edition
  • coverart is currently only album based. So it does not really make sense to display on a song editor.

Results accuracy

This is mostly grilo related. Based on the footprint from the chromaprint plugin, the acoustid plugin only returns one release (ie. album information) result even if there are multiple matches. For example, a recording can come from a studio album, or a "greatest-hit" album, a "special anniversary release", etc. This means that it's not possible to have the accurate result every time.

I have been looking at Musicbrainz Picard source code to understand how it deals with it. Picard is the official musicbrainz music tagger. There are two interesting mechanisms.

The first one is the ability to use existing song's tags. It works as follows:

  • get all the possible matches
  • compare them with the existing tags
  • return the one wich is the closest to the existing tags (there is some advanced logic, to compute a difference between each tag and then merge them into an unique score.)

The second one is the ability to cluster songs to mark them as being part of the same album. Then the release result is the one with the most matches. It can be used jointly with the first mechanism.

@victortoso If you some ideas or remarks, feel free to make comments!

Song's tag use cases

Based on current designs and #6, one can imagine some use cases:

Edit one song's tags

See above.

Edit multiple songs

See the mockup from GSOC 2016. Probably not very useful.

Edit one album

See the two mockups below.
Two remarks (already discussed above):

  • grilo plugin can only return 1 result
  • I'm not exactly sure how it could be possible to combine suggestion with manual edition

Edit multiple albums

Same as multiple songs edition. Probably not very useful.

Relevant art

Album edition

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/music/edit-details-instant-apply-wire.png https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/music/edit-details-wire.png

GSOC 2016 (#6)


Merge request reports