Author Topic: MusicBrainz Picard q & a thread  (Read 87418 times)

Dizza17

  • Jr. Member
  • **
  • Posts: 66
Hi Guys,

This is probably a bit of a Simplistic question but for some reason I haven’t been able to get it to work. I would like to assign the release type to the grouping tag, ie deluxe version, remastered, live etc. what would the Picard script need to look like to achieve this?. Thanks to anyone that can help with this.

Regards
Dizza

hiccup

  • Sr. Member
  • ****
  • Posts: 7710
This is probably a bit of a Simplistic question but for some reason I haven’t been able to get it to work. I would like to assign the release type to the grouping tag, ie deluxe version, remastered, live etc. what would the Picard script need to look like to achieve this?
It's far from simple.
There are many tags and variables available for such purposes.
See here for an overview:
https://picard-docs.musicbrainz.org/en/variables/variables.html

Here is a testing script that retrieves tags that I know of that can provide such extra information on recordings and releases.
Make sure you have checked 'use track relationships' and 'use release relationships'.
Just load some tracks/albums in Picard, and see what content is available for these releases.
It should help you decide on which ones are useful to you.
(don't press 'Save' if you don't want to modify the files you are testing this on)

Code
$set(001_recordingcomment,%_recordingcomment%)
$set(002_performance_attributes,%_performance_attributes%)

$set(003_releasecomment,%_releasecomment%)
$set(004_comment,%comment%)
$set(005_releasetype,%releasetype%)
$set(006_primaryreleasetype,%_primaryreleasetype%)
$set(007_secondaryreleasetype,%_secondaryreleasetype%)

$set(008_media,%media%)
$set(009_discsubtitle,%discsubtitle%)

$set(010_recording_series,%_recording_series%)
$set(011_recording_seriescomment,%_recording_seriescomment%)
$set(012_releaseannotation,%_releaseannotation%)
$set(013_release_series,%_release_series%)
$set(014_release_seriescomment,%_release_seriescomment%)
$set(015_releasegroupcomment,%_releasegroupcomment%)
$set(016_releasegroup_series,%_releasegroup_series%)
$set(017_work_series,%_work_series%)
$set(018_work_seriescomment,%_work_seriescomment%)

About writing the 'Grouping' tag:
Just do something like this:

Code
$setmulti(grouping,%releasetype%)
Or if you want to go crazy and populate 'Grouping' with all that is available from the first script, use this:

Code
$setmulti(grouping,%_recordingcomment%; %_performance_attributes%; %_releasecomment%; %comment%; %releasetype%; %_primaryreleasetype%; %_secondaryreleasetype%; %media%; %discsubtitle%; %_recording_series%; %_recording_seriescomment%; %_releaseannotation%; %_release_series%; %_release_seriescomment%; %_releasegroupcomment%; %_releasegroup_series%; %_work_series%; %_work_seriescomment%)
$copymerge(grouping,$cleanmulti(grouping))

Dizza17

  • Jr. Member
  • **
  • Posts: 66
Hiccup,

I am forever grateful for your assistance. It continues to frustrate me that as much as I have tried to learn basic scripting/regx i just can’t get my head around it beyond the very very basic of scripts.
Having helpful gentleman like yourself along with others in the forum is something that separates this forum from others. Have yourself a great day sir.

Regards
Dizza

hiccup

  • Sr. Member
  • ****
  • Posts: 7710
Thanks Dizza, that's much appreciated.
I'm merely returning the favour to the countless people in- and outside this forum that have helped me—directly or indirectly—when I couldn't figure things out over the years.
And that happened, and still happens a lot.

All this stuff does not come easy or natural to my somewhat fuzzy brain too ;-)
(bumps on my forehead and pulled-out hairs to prove it)

on-topic edit:
Let us know how you fare with trying out all these available release/track information tags?
It could be helpful to other MusicBee/Picard users to decide on which ones may be useful for what.
I myself am only using 2 or 3 of them, since when I did some tests I couldn't see a good purpose for most of the others. But I may be missing something.
Last Edit: October 31, 2023, 08:03:13 PM by hiccup

Dizza17

  • Jr. Member
  • **
  • Posts: 66
@hiccup
You weren’t wrong about the “going crazy” part with the amount of info you can get about a release!
After experimenting with a couple of albums I think I’ll stick with 1-2 scripts to get the performance attributes and primary release type. The rest doesn’t really add any value to how I like my files tagged.

Now to start tackling the sort tags. Wondering if it’s better to just use the standard sort values or try the additional artist variables plugin sort tags.

hiccup

  • Sr. Member
  • ****
  • Posts: 7710
Now to start tackling the sort tags. Wondering if it’s better to just use the standard sort values or try the additional artist variables plugin sort tags.
Personally I don't care about or use any differentiating 'sort' tags or values.
(except for the names of classical composers in my classical setup)
I also don't care about ignoring words such as 'The' etc.

In case it interests you, for preparing and modifying artists/performers and their roles I use the following three Picard plugins:

Additional Artists Variables
Format Performer Tags
Performer Tag Replace

The more I can use Picard to write the tags exactly as I want them, the less I have to worry about additional processing in MusicBee.

edit:
I also have some testing script that retrieves all such additional performer tags in the same manner that my testing script for additional recording and release info does. (001_variable_a  002_variable_b  etc.)
If you are interested I can share that one tonight.
Last Edit: November 01, 2023, 08:00:50 AM by hiccup

Dizza17

  • Jr. Member
  • **
  • Posts: 66
Yeah I haven’t cared much for sort tags either but thought it might add a level of neatness to my files. Perhaps I’ll reassess that rabbit hole.

The Performer & Involved People tags are the ones that I have been working on of late. Testing what Picard scripts work best for musicbee without any further work. In my novice testing, I tried using the Classical extras plugin to create my performer tags but it didn’t seem to work as well as native Picard with the plugins you mentioned above.
Appreciate any tips/script suggestions you have, I also would prefer to do 97% of my tagging in Picard so MB can do what it does best in displaying them.

Dizza17

  • Jr. Member
  • **
  • Posts: 66
I’m curious how others use credited tags in musicbee? Picard does a brilliant job in getting these tags, to which I then use scripts to format them to my liking to be displayed in MB.

Do most users lump them all in the involved people list and then use virtual tags to display them? Or is the preferred method to assign them each a custom tag so they are kept separate for display purposes etc.

Cheers👍🏼



hiccup

  • Sr. Member
  • ****
  • Posts: 7710
Better late than never?:

Some two weeks ago Picard 2.11 was released.

Dizza17

  • Jr. Member
  • **
  • Posts: 66
Now to start tackling the sort tags. Wondering if it’s better to just use the standard sort values or try the additional artist variables plugin sort tags.
Personally I don't care about or use any differentiating 'sort' tags or values.
(except for the names of classical composers in my classical setup)
I also don't care about ignoring words such as 'The' etc.

In case it interests you, for preparing and modifying artists/performers and their roles I use the following three Picard plugins:

Additional Artists Variables
Format Performer Tags
Performer Tag Replace

The more I can use Picard to write the tags exactly as I want them, the less I have to worry about additional processing in MusicBee.

edit:
I also have some testing script that retrieves all such additional performer tags in the same manner that my testing script for additional recording and release info does. (001_variable_a  002_variable_b  etc.)
If you are interested I can share that one tonight.

@Hiccup, I’m interested in how you use the performer replace plug in? I’m also curious how you use it in conjunction with scripts?
Any examples or suggestions would be greatly appreciated.
Regards Dizza

hiccup

  • Sr. Member
  • ****
  • Posts: 7710
@Hiccup, I’m interested in how you use the performer replace plug in? I’m also curious how you use it in conjunction with scripts?
Any examples or suggestions would be greatly appreciated.
The only thing that I have the Performer Tag Replacement plugin doing is changing how some instruments are named. Especially drums, bass, and it it removes 'family' from instrument descriptions.



It is not the type of plugin that makes new (hidden) variables available for scripting, so I have no scripts relying on it.

I am wondering if you are perhaps thinking of the Format Performer Tags plugin?

That one makes the difference for how the performers show up in MusicBee's track details panel.
These are my settings for it:



Note that at the bottom of the screenshot you can also see that the plugin shows a preview of how your settings will turn out.
(yeah, that rdswift is a pretty clever guy ;-)


A third plugin I use for this kind of thing is the Additional Artists Variables plugin.
And this is the one that does make new (hidden) variables available which can then be used for scripting.
See here for what it can do.

It wouldn't be useful to share my scripts that make use of it, since they also contain dependencies on other scripts.
So they won't work for somebody else and would be very difficult to explain.

I do have a testing script for the Additional Artists Variables plugin that may be useful though.
It will write all tags that are made available if you have the plugin installed.
That will give you an idea of what it can retrieve for a release, which can be helpful for deciding which variables to use for your scripts.

Code
$noop(
Album Variables
)

$set(001_artists_album_primary_id,%_artists_album_primary_id%)
$set(002_artists_album_primary_std,%_artists_album_primary_std%)
$set(003_artists_album_primary_sort,%_artists_album_primary_sort%)
$set(004_artists_album_primary_cred,%_artists_album_primary_cred%)
$set(005_artists_album_primary_cred_sort,%_artists_album_primary_cred_sort%)
$set(006_artists_album_primary_legal,%_artists_album_primary_legal%)
$set(007_artists_album_primary_sort_legal,%_artists_album_primary_sort_legal%)
$set(008_artists_album_primary_tags,%_artists_album_primary_tags%)
$set(009_artists_album_additional_id,%_artists_album_additional_id%)
$set(010_artists_album_additional_std,%_artists_album_additional_std%)
$set(011_artists_album_additional_cred,%_artists_album_additional_cred%)
$set(012_artists_album_additional_sort,%_artists_album_additional_sort%)
$set(013_artists_album_additional_cred_sort,%_artists_album_additional_cred_sort%)
$set(014_artists_album_additional_legal,%_artists_album_additional_legal%)
$set(015_artists_album_additional_std_multi,%_artists_album_additional_std_multi%)
$set(016_artists_album_additional_cred_multi,%_artists_album_additional_cred_multi%)
$set(017_artists_album_additional_sort_multi,%_artists_album_additional_sort_multi%)
$set(018_artists_album_additional_cred_sort_multi,%_artists_album_additional_cred_sort_multi%)
$set(019_artists_album_additional_legal_multi,%_artists_album_additional_legal_multi%)
$set(020_artists_album_all_std,%_artists_album_all_std%)
$set(021_artists_album_all_sort,%_artists_album_all_sort%)
$set(022_artists_album_all_cred,%_artists_album_all_cred%)
$set(023_artists_album_all_cred_sort,%_artists_album_all_cred_sort%)
$set(024_artists_album_all_legal,%_artists_album_all_legal%)
$set(025_artists_album_all_std_multi,%_artists_album_all_std_multi%)
$set(026_artists_album_all_sort_multi,%_artists_album_all_sort_multi%)
$set(027_artists_album_all_cred_multi,%_artists_album_all_cred_multi%)
$set(028_artists_album_all_cred_sort_multi,%_artists_album_all_cred_sort_multi%)
$set(029_artists_album_all_legal_multi,%_artists_album_all_legal_multi%)
$set(030_artists_album_all_sort_primary,%_artists_album_all_sort_primary%)
$set(031_artists_album_all_types,%_artists_album_all_types%)
$set(032_artists_album_all_join_phrases,%_artists_album_all_join_phrases%)
$set(033_artists_album_all_count,%_artists_album_all_count%)

$noop(
Track Variables
)

$set(034_artists_track_primary_id,%_artists_track_primary_id%)
$set(035_artists_track_primary_std,%_artists_track_primary_std%)
$set(036_artists_track_primary_sort,%_artists_track_primary_sort%)
$set(037_artists_track_primary_cred,%_artists_track_primary_cred%)
$set(038_artists_track_primary_cred_sort,%_artists_track_primary_cred_sort%)
$set(039_artists_track_primary_legal,%_artists_track_primary_legal%)
$set(040_artists_track_primary_sort_legal,%_artists_track_primary_sort_legal%)
$set(041_artists_track_additional_id,%_artists_track_additional_id%)
$set(042_artists_track_additional_std,%_artists_track_additional_std%)
$set(043_artists_track_additional_cred,%_artists_track_additional_cred%)
$set(044_artists_track_additional_sort,%_artists_track_additional_sort%)
$set(045_artists_track_additional_cred_sort,%_artists_track_additional_cred_sort%)
$set(046_artists_track_additional_legal,%_artists_track_additional_legal%)
$set(047_artists_track_additional_std_multi,%_artists_track_additional_std_multi%)
$set(048_artists_track_additional_sort_multi,%_artists_track_additional_sort_multi%)
$set(049_artists_track_additional_cred_multi,%_artists_track_additional_cred_multi%)
$set(050_artists_track_additional_cred_sort_multi,%_artists_track_additional_cred_sort_multi%)
$set(051_artists_track_additional_legal_multi,%_artists_track_additional_legal_multi%)
$set(052_artists_track_all_std,%_artists_track_all_std%)
$set(053_artists_track_all_sort,%_artists_track_all_sort%)
$set(054_artists_track_all_cred,%_artists_track_all_cred%)
$set(055_artists_track_all_cred_sort,%_artists_track_all_cred_sort%)
$set(056_artists_track_all_legal,%_artists_track_all_legal%)
$set(057_artists_track_all_std_multi,%_artists_track_all_std_multi%)
$set(058_artists_track_all_sort_multi,%_artists_track_all_sort_multi%)
$set(059_artists_track_all_cred_multi,%_artists_track_all_cred_multi%)
$set(060_artists_track_all_cred_sort_multi,%_artists_track_all_cred_sort_multi%)
$set(061_artists_track_all_legal_multi,%_artists_track_all_legal_multi%)
$set(062_artists_track_all_sort_primary,%_artists_track_all_sort_primary%)
$set(063_artists_track_all_types,%_artists_track_all_types%)
$set(064_artists_track_all_join_phrases,%_artists_track_all_join_phrases%)
$set(065_artists_track_all_count,%_artists_track_all_count%)
Last Edit: February 12, 2024, 04:55:31 PM by hiccup