Performer concatenate

Hi. I am trying to concatenate all performers into a custom tag PERFORMERS,

The expected output will be like this:

PERFORMERS: John Woods (vocals), Mark Cement (guitar), Eddie Rubber (drums)

Can it be done?

I can’t think of a way to do this currently other that iterating through every possible performer:* tag and combining any non-empty values into the new tag, and that would be a horrendous undertaking. It would be MUCH easier to do this with a custom plugin. If you’re interested in doing some testing, I can take a look at trying to write something.

1 Like

I slapped together a plugin to create a multi-value variable %_performers% from the relationship data already downloaded by Picard when “Use track relationships” is enabled in the Option settings.

If anyone gives this a try, please let me know if it helps solve your needs or if you run into any problems. Thanks.


Combine Performer Tags [Download]

Overview

This plugin combines all instrument and vocal performer tags into a new multi-value variable %_performers% for each track. It requires that the “Use track relationships” setting is enabled in OptionsMetadata. Each item in the variable is the performer’s name followed by the instruments and vocals they performed, for example “Jackson Browne (acoustic guitar, piano, lead vocals)”.

The plugin makes no additional calls to the MusicBrainz database, and it does not remove any of the %performer:*% tags.


Option Settings

The plugin adds a settings page under the “Plugins” section under “Options…” from Picard’s main menu. This allows you to control how the plugin operates with respect to processing track performance artists and the attribute details included in %_performers% variable.

Combine Performer Tags Option Settings


What it Does

This plugin reads the track metadata provided to Picard, extracts the list of associated instrument and vocal performers, and combines the information in a multi-value variable for use in Picard scripts.


Example Usage

You can use the following tagger script to include this in the tags written to the files:

$noop( Set as a multi-value tag. )
$setmulti(Performers,%_performers%)

or:

$noop( Set as a regular text tag. )
$set(Performers,%_performers%)

If you have included this as a combined tag, you might also want to remove the individual %performer:*% tags, which can be accomplished by the tagger script:

$unset(performer:*)

6 Likes

@12345joy I updated the plugin to allow some flexibility in the output, and updated the announcement message above.

1 Like

very happy to test your plugin … will update with the result … thanks

1 Like

Worked perfectly. Thank you.

Works well and I could use it to transfer values ​​from the performer field to involvedpeople. Is it possible to integrate it into the “Format Performer Tags” plugin so that this new %_performers% variable has the same structure (e.g. the characters chosen to separate the sections)?

I should be able to do that, but will have to give some thought as to how to set it up so as not to break the backwards compatibility of the current “Format Performers Tags” plugin. It might not happen right away because I have a lot on my plate this month, but stay tuned.

2 Likes

@Pianca82, I took a slightly different approach and kept this as a separate plugin but added similar formatting configuration settings as the “Format Performer Tags” plugin. The main reasons I did it this way are:

  • The plugins do different things (even though they both deal with performer relationships), and users of one of the plugins may not need or want the functionality of the other plugin.

  • If a user does want the functionality of both plugins, they may want to format the output differently for the performer:* tags and the new _performers variable.

The revised Combine Performer Tags plugin, including the requested formatting options is available for download from my repo. The updated documentation can be viewed in the repo as well.

As always, if you decide to give it a try please let me know if you run into any problems. Thanks.

2 Likes