When using 3rd party tagging software such as Picard, Mp3tag, etc. it can be a challenge to get these programs to write all tags in the same way as how a music player/manager such as MusicBee expects and requires them to be.
E.g. a tag such as 'record label' knows variations such as:
- label
- publisher
- organization
It will depend on the software and the audio format what is used.
And when the tagging software writes them in a way that MusicBee does not expect, these tags will simply not show up.
For Picard you can use scripting to make such necesary adjustments, called 'tag mapping'.
To make things easier for beginning Picard users I have concocted such a script.
It will map all the tags that Picard would write differently from how MusicBee expects them, to be fully compatibe with MusicBee.
This does not pretend to be the only, nor the best, nor a complete solution.
It's intended as an easy way for users who want to start using Picard, without the need to learn how to script first to get some basic, good results with MusicBee.
The script may also be helpful to more advanced Picard users that can use it to tweak and expand things to their own preferences.
- - -
HowTo:- copy the script:
$noop(
tag mapping for flac, opus, ape)
$if($eq_any(%_extension%,flac,opus,ape),$set(initialkey,%key%),)
$if($eq_any(%_extension%,flac,opus,ape),$unset(key))
$if($eq_any(%_extension%,flac,opus),$set(organization,%label%),)
$if($eq(%_extension%,ape),$set(publisher,%label%),)
$if($eq_any(%_extension%,flac,opus,ape),$unset(label),)
$if($eq_any(%_extension%,flac,opus,ape),$set(mixartist,%remixer%),)
$if($eq_any(%_extension%,flac,opus,ape),$unset(remixer))
$if($eq_any(%_extension%,flac,opus),$set(source medium,%media%),)
$if($eq(%_extension%,ape),$set(mediatype,%media%),))
$if($eq_any(%_extension%,flac,opus,ape),$unset(media),))
$if($eq_any(%_extension%,flac,opus,ape),$set(setsubtitle,%discsubtitle%),)
$if($eq_any(%_extension%,flac,opus,ape),$unset(discsubtitle))
$if($eq_any(%_extension%,flac,opus,ape),$set(origyear,%originaldate%),)
$if($eq_any(%_extension%,flac,opus,ape),$unset(originaldate))
$unset(originalyear)
$noop(
Artist, Composer, Display artist, Display composer)
$set(display artist,%artist%)
$set(artist,%artists%)
$copymerge(composer,writer)
$set(display composer,$replace(%composer%,;,\,))
$noop(
create 'Involved People List' for flac, opus, ape)
$if(%arranger%,$setmulti(_arranger,arranger: %arranger%),)
$setmulti(_arranger,$replace(%_arranger%,;,; arranger:))
$if(%djmixer%,$setmulti(_djmixer,DJ-mix: %djmixer%),)
$setmulti(_djmixer,$replace(%_djmixer%,;,; DJ-mix:))
$if(%mixer%,$setmulti(_mixer,mix: %mixer%),)
$setmulti(_mixer,$replace(%_mixer%,;,; mix:))
$if(%engineer%,$setmulti(_engineer,engineer: %engineer%),)
$setmulti(_engineer,$replace(%_engineer%,;,; engineer:))
$if(%producer%,$setmulti(_producer,producer: %producer%),)
$setmulti(_producer,$replace(%_producer%,;,; producer:))
$copymerge(involvedpeople,_arranger)
$copymerge(involvedpeople,_djmixer)
$copymerge(involvedpeople,_mixer)
$copymerge(involvedpeople,_engineer)
$copymerge(involvedpeople,_producer)
$if($eq(%_extension%,mp3),$unset(involvedpeople))
- install it in Picard like this:
- make sure you that have 'Use release relationships' and 'Use track relationships' checked.
- - -
what the script does:
Picard | MusicBee equivalent | for mp3 only | script function: |
Artist | Artist | | writes a multi-value Artist tag writes a single-value Display Artist tag |
Arranger | - | gets written to Involved People List | writes Arranger: to Involved People List for FLAC, OPUS and APE |
Composer | Composer | | joins Composer and Writer into Composer (multi-value) joins Composer and Writer into Display Composer (single-value) |
Writer | - | | joins Composer and Writer into Composer (multi-value) joins Composer and Writer into Display Composer (single-value) |
Mix-DJ | - | gets written to Involved People List | writes DJ-mix: to Involved People List for FLAC, OPUS and APE |
Remixer | Mix Artist (activate custom tag) | Artist: Remixer | maps the tag properly to Mix Artist (1) |
Mixer | - | gets written to Involved People List | writes Mix: to Involved People List for FLAC, OPUS and APE |
Engineer | - | gets written to Involved People List | writes Engineer: to Involved People List for FLAC, OPUS and APE |
Producer | - | gets written to Involved People List | writes Producer: to Involved People List for FLAC, OPUS and APE |
Original Release Date | Original Year | | maps to Original Year (yyyy-mm-dd) |
Disc Subtitle | Set Subtitle (activate custom tag) | | maps the tag properly to Set Subtitle (1) |
Initial Key | Initial Key (activate custom tag) | | maps the tag properly to Initial Key (1) (2) |
Record Label | Publisher | | maps the tag properly to Publisher |
Media | Media Type (activate custom tag) | | maps the tag properly to Media Type (1) |
(1) to have it available in MusicBee you need to set/activate the custom tag for it
(2) requires activating Picard's 'AcousticBrainz Tonal-Rhythm' plugin (which sets both the Initial Key and BPM)
note:The script works for flac, mp3, opus and ape audio formats.
I've not checked or adjusted it for any other types. (nor do I intend to)
IMPORTANTMake sure that you first do some thorough testing of the script on
copies of files from your actual library.
Picard is a powerful tool, and you should make sure that things are working as you expect before letting it loose on your actual library.