How to use the eponymous relationship in filenaming?

hey there. so anyone into jazz probably knows the issue of having albums you wanna see under one discography split among several artist collaborations with different names. I have learned that we have this “eponymous” relationship to highlight the prominent figure of such a band.

is there any way yet to use this attribute in picard? I would like to merge all these collaborations folders into just one of the prominent person.

1 Like

I don’t think this is possible with the “eponymous” attribute, but it should be possible with the artist name with a file naming script (at least if the complete artist name makes it an eponymous group).

EDIT: On second thought: it won’t be that easy. How is Picard supposed to know who the eponymous artist is? (for comparison)

2 Likes

I’m not a Picard expert, but I think that this would require sending at least one extra API request per release to retrieve the artist relationships attached to the credited artist(s).

For example, after looking up a release like Brubeck Time with a request like https://musicbrainz.org/ws/2/release/d83320de-1269-3b80-b2c8-525a91e91578?inc=artists&fmt=json, I don’t think that there’s any way to see that Dave Brubeck is an eponymous member of The Dave Brubeck Quartet without sending an additional request like https://musicbrainz.org/ws/2/artist/7bf711e9-4e69-4e08-b6e8-c0cb5805f1e7?inc=artist-rels&fmt=json.

Per @rdswift’s comments on https://community.metabrainz.org/t/possible-to-get-an-artists-legal-name-in-my-file-renaming-script/471702, it sounds like it might be possible to fetch the artist relationships using a plugin. Classical Extras may be a starting point for this. (I don’t see any references to “eponymous” in Classical Extra’s source code or in the main picard-plugins repository, so I suspect that this isn’t already supported.)

3 Likes

too bad. well, so how do you manage these cases? for now I’m considering adding a custom tag which Picard will read and use to replace the album artist.

1 Like

For tagging I do something like this. I store specific code in the comment tag (which I keep) to modify other tags, not only the custom “albumartists” tag (which I need for Kodi).

I once thought about an automated solution, but there are many obstacles. How to handle collaborations or groups with more than one eponymous artist, e.g. Keith Jarrett, Gary Peacock, Jack DeJohnette? It’s a case by case decision.

Same for file system. I only rename the tracks and keep the rest of the path when tagging.

But maybe there is a chance to find the eponymous artist. The artist is probably a performer, so we could possibly loop through the performer tags and compare them to the album artist. Unfortunately I have an appointment and can’t try it out right away.

Maybe @rdswift has an idea.

Not a good one. :stuck_out_tongue:

This could be done using a plugin, but would involve additional api calls.

As I see it (without a lot of thought), the steps would be something like:

  1. Determine if the (primary) album artist is a group. If not, there is no eponymous artist, so quit processing. This information should be available without requiring an additional call to the api, but it is not made available by Picard other than through a plugin. This is how the Additional Artists Variables works.

  2. Retrieve the list of artists in the group with their artist rels. This requires one additional call to the api.

  3. Check for relationships that are “member of band” and contain the “ephonymous” attribute, and add the artist to a multi-value variable (in case there is more than one identified).

  4. If the multi-value variable is not empty, add it to the album metadata.

This would handle the case for the album artist, and would add only one additional api call (at most). The same could be done for each track artist if you wanted, but could result in an additional api call for each track. The additional calls might be reduced by building a cache into the plugin.

Note that this would provide a multi-value variable with all band members that have been identified as being eponymous. I would likely sort the names in the multi-value variable initially based on some logic around start and end dates, and then by the artist sort name, so that the list would be ordered consistently for a band. It would then be up to the user (in their script) to check if this variable existed and, if so, select which artist(s) they want from the list. (If it were me, I would likely only use the first artist.)

If there is any interest, I could likely come up with something by combining code from my “Additional Artists Variables” and “Additional Artists Details” plugins, and would probably provide two different multi-value variables (one with the artists names and the other with the sort names). If I do take this on, how would you suggesting sorting if there are multiple eponymous members, and should I also include the processing for each track (which could be enabled/disabled as an option setting)? Any other options? Those that know me understand that I like to have a plan and specification sorted out before I actually start writing code. :wink:

4 Likes

I took my idea with the “performers” and made a script. Unfortunately, it would only work under ideal conditions, which are not to be expected.

I write the information to a multi-value “albumartists” tag, which I use for Kodi - “albumartist” is not multi-value.

$setmulti(_myperformers,$performer(,;),;)
$foreach(%_myperformers%,$if($rsearch(%albumartist%,%_loop_value%),$copymerge(_myalbumartists,_loop_value),))
$setmulti(albumartists,$if2(%_myalbumartists%,%_albumartists%))

It works for…
Electric Bath by The Don Ellis Orchestra
Standards Live by Keith Jarrett, Gary Peacock, Jack DeJohnette
Welcome to Us by “Dennis Gonzalez Band of Nordic Wizards” (currently not a group but “Dennis Gonzalez credited as”)

The script could be adapted to work for formations where an eponymous band leader is not a performer but has another role.
But it will ultimately fail, if there are no performers, misspelt performers, abbreviated performers, etc.

Here is what I really do:

$setmulti(albumartists,$if2($rsearch(%comment%,A{\(.*\)}),%_albumartists%))

I write A{Don Ellis} to the comment tag of a “Don Ellis Orchestra” album, save and refresh. The first time it is necessary to save twice, because the value must be present in the comment so that it can be used by the script. It will also work for “albumartist”.

3 Likes