Convert artist field (Artist1, Artist2, Artist3) to be placed in Title field as (feat. Artist 2, Artist 3)


#1

Hi,

I tried using this thread for some help but I couldn't get it working. It works if I change the artist field to Artist 1\\Artist2 manually, but if I try and replace all commas into \\ it doesn't work.

How my library is currently formatted and how I want the library to be formatted

Can anyone help me out? Thanks.


#2

Can't you just show here in the forum in writing what contents of the artist field looks like and what the title field looks like?

Also, I think that you mix a single artist field with just a long string of names in it with a multi-value field of the type ARTIST which should be merged before you process it. But I could be wrong.


#3

Sorry, I'm new to this! I don't really understand what you mean.

When I try to run the following:

%TITLE%$iflonger($meta(ARTIST,1),0,' (feat. '$regexp($cutRight($replace($meta(ARTIST)', ',%ALBUMARTIST%', ',),$len(', ')),'^(.+),(.+)$','$1 &$2')')',)

It doesn't reformat the title unless the artists are seperated using \\. So if I tried to convert all of the commas (which currently seperate the artist like 'A$AP Rocky, Drake') into \\ I expected it to work, but this only works if add the \\ manually.


#4

refers to a multi-value field. So you would have to check if you really got one. You can see that in the extended tags dialogue (Alt-T) where you would not see just one field of the type ARTIST but many.
If you have just one, then the $meta() function is not needed.

And that is why I asked you to show what you have got in the field ARTIST in text form.


#5

Ah, I see.

I currently have Artists it in the following format:

6LACK, Offset

I would like to remove the Offset from the Artist tag and put it in the title:

Balenciaga Challenge (feat. Offset)

And when running that code, it doesn't work. How would I get it to work with commas instead of the multi-value fields? Or is there a way to convert it into seperate fields automatically?


#6

Oops, I removed the $meta bit and it works but it causes problems if there are no features.

If the artist field has only the main artist, how would I make it so that track is ignored?

How the library looks after running the following code:
%TITLE%$iflonger(ARTIST,0,' (feat. '$regexp($cutRight($replace($meta(ARTIST)', ',%ALBUMARTIST%', ',),$len(', ')),'^(.+),(.+)$','$1 &$2')')',)


#7

Just an idea:
you could also use an action group with the following action:
GUess value
Source: %artist%
Pattern: %artist%, %feat_artist%

Format value for TITLE
Format string: %title%[ (feat. %feat_artist%)]

Remove field: feat_artist
(this last action carry out when you found out that the other actions lead to the right result as you would otherwise loose the featured artists).


#8

I was able to do it! It was probably ineffecient, but it got the job done. Since this will be the only time I'll need to do it on such a large library so I don't mind doing the second step manually.

I filtered my library with the following conditions:

artist HAS "," AND title NOT HAS "feat."

Then ran the following code against the results:

%TITLE%$iflonger(ARTIST,0,' (feat. '$regexp($cutRight($replace($meta(ARTIST)', ',%ALBUMARTIST%', ',),$len(', ')),'^(.+),(.+)$','$1 &$2')')',)