Taggerscript + Plugin: Separating performers by instrument

Tags: #<Tag:0x00007f9d09a8bc60>

I wanted to share a taggerscript to address issues that many people likely share with the default Picard behavior for saving artist performance relationships:

  1. My preferred MP3 players cannot read TMCL and IPLS frames
  2. I find the default parentheses formatting to be extremely noisy and difficult to read, so I’d prefer to separate the performers by instrument into dedicated fields.

It’s a pretty simple script that just requires the “Instruments” plugin by David Mandelberg:

$foreach(%_instruments%,
  $set(_currentInstrument,%_loop_value%)

  $if($eq(%_currentInstrument%,other instruments),,
    $noop(Standardize instrument names to be used in tag field names)
    $set(_standardizedInstrument,$lower(%_currentInstrument%))
    $set(_standardizedInstrument,$replace(%_standardizedInstrument%,drums \(drum set\),drums))
    $set(_standardizedInstrument,$replace(%_standardizedInstrument%,membranophone,drums))

    $noop(Set custom field)
    $set(_currentCustomPerformerField,performer %_standardizedInstrument%)
    $set(_performerPattern,%_standardizedInstrument%)
    $setmulti(%_currentCustomPerformerField%,$performer(%_currentInstrument%,	),	)
  
    $noop(keep list of instruments so the tags can be scripted)
    $copymerge(_standardizedInstruments,_standardizedInstrument)
  )
)

$foreach($unique(%_standardizedInstruments%),
$set(_standardizedInstrument,%_loop_value%)
$copymerge(instruments,_standardizedInstrument)
)

$unset(performer:*)

Here’s a demonstration:

Before:
image
After:
image

Hope others enjoy this as much as I will.

3 Likes