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.
- from the Songs view, select one song and click on
edit details. It displays a new dialog
- An online search is automatically triggered to get song's tags. It uses
acoustidplugins from grilo (some tags retrieval are still missing, see grilo-plugins!24 (closed))
- writeback (not implemented): click on
use suggestionsto store the result.
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.
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
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.