Thanks, works perfectly!
It would indeed be nice if this was integrated into the script. I think many people use this format for listing artists/composers.
Out of curiosity, do you know of a way to easily compare the composers listing with other sources, Allmusic in particular? As I understand it there's no way to import Allmusic data in Mp3tag. If there was, it would be easy to export both composer listings and compare them in a text comparer tool.
Usually, I work by using the Discogs tags as a starting point and then compare them with other sources. Most of the tags can easily be done manually, except the 'per-tag' tags like 'title' and 'composer'.
The only problem is that Discogs distinguishes between extraartists per track and per album. On the release page the latter group is the credits. This means only the composers that are listed as extraartists per track are retrieved.
Is there are already an action script available that extracts the composers from the credits and writes it to the tracks? (If there is, it must be a pretty complicated one!)
I know it's complicated. For the new discogs script I'm also trying to get it from both sections. I don't think it will work completely without mistakes, but I'm getting pretty close.
I will take a few days until I upload the script. It has got pretty complicated and I have to do a few other things in that thing called "real life".
Anyway, for your action, try this:
Action 1: Format Value
Formatstring: $if($eql($regexp(%mixartist%,.(Composed By|Written-By|Written By).+,yes),yes),$replace($regexp($regexp(%mixartist%,'.(^|; )[^:](Composed By|Written-By|Written By)[^:]: (.+?(;|$)).*',$3),;$,),',',;),%composer%)
Action 2: Format Value
Field: COMPOSER TEMP
Formatstring: $if($eql($regexp(%credits%,.(Composed By|Written-By|Written By).+,yes),yes),$replace($regexp($regexp(%credits%,'.(^|; )[^:](Composed By|Written-By|Written By)[^:]: (.+?(;|$)).*',$3),;$,),',',;),)
Action 3: Format Value
Formatstring: %composer%$if($and(%composer%,%composer temp%),; ,)%composer temp%
Action 4: Remove Fields
Fields: COMPOSER TEMP
Note that I have used %credits% in the second action. Use the tag-field there where you have stored the album credits.
Thank you! I think it's now working as you planned've it to: It adds the formatted "mixartist" to "composer" for certain tracks and then appends the formatted "credits" tag for each track.
I purposely said "as you've planned it to" because some things can still be improved, although I realize it would be a hell of a job to do
It mainly has to do with the formatting of "credits". Mostly, Discogs uses a structure like:
[artist] (tracks: #-#, #-#), [artist] (tracks: #-#, #, #) etc.
[artist] (tracks: # to #, # to #), [artist] (tracks: # to #, #, #) etc.
and probably there are many more variations.
There would have to be a way, based on the info inside the brackets, to only write the credit composers to the applicable tracks. I don't know if this is at all possible, or maybe you're already working on it, but let me know what you think!
I have thought about that some time ago, wanted to build that directly into the web script, but came to the conlusion that it is not possible in an reliable way.
There are to many variations in the way these track references are written. And not only the track references, also the track numbers themselves have variations (1, 2, 3, .... / a1, a2, b1, ... / 1, 2.1, 2.2, 3, .... / 1-01, 1-02, 1-03 / ...).
I even came upon a few pages, were the numbering system in the tracklist has been changed by some discogs usere, but not that of the track references in the credit section.
Yeah, it's definitely Discog's fault: their syntax is simply to loose to be reliable for database usage. I've never understood the distinguishing between credits and extra artists (aren't they credited..?). If the idea is to distinguish between per-track cast members like and per-album cast members, they should only include people in "credits" that have worked on the whole album. That said, I don't really like that solution either.
Alternatively they could do all credits per track. This is better but it still feels rather awkward, e.g. the album art designer mentioned on each track? It would also lead to much redundancy. Personally, I prefer something like this: