Need help moving (feat.)

Hi.

I've a lot of tracks that look like this:
ARTIST: Jay-Z (feat. Pharell)
TITLE: Change Clothes

I want them to look like this:
ARTIST: Jay-Z
TITLE: Change Clothes (feat. Pharell)

In other words, I want to move the (feat. Pharell) part from the artist field to the title field, without removing the text already in there.

Is there any easy way to get this done? I've searched the forum but couldn't find anything.

Very thankful for any help.

You may create an Actiongroup containing following actions:

Action #1:
Action type: Format value
Field: HOMER11_SWAP
Formatstring: %ARTIST%

Action #2:
Action type: Replace with regular expression
Field: ARTIST
Regular expression: ^(.) ((.))$
Replace matches with: $1

[ ] case-sensitive comparison

Action #3:
Action type: Replace with regular expression
Field: HOMER11_SWAP
Regular expression: ^(.) ((.))$
Replace matches with: $2

[ ] case-sensitive comparison

Action #4:
Action type: Format value
Field: TITLE
Formatstring: %TITLE% %HOMER11_SWAP%

Action #5:
Action type: Remove fields
Fields to remove (semicolon-separated): HOMER11_SWAP

DD.20061205.1640

Thank you so very much.
It works perfectly. This is gonna save me so much time!

wow - this will definately save a great deal of time...

Any chance you have a thought how to accomplish this when you have artist1/artist2/artist3 in the ARTIST tag?

You may separate the artists collection string into single tagfields and use these single tagfields for your needs.
See pictures attached.




OK - what if Feat Artist is *not* enclosed in parentheses?

You have to create another new regular expression or try to manipulate the existing regular expression that will fit to the new task.

If you are not familiar with regular expressions yet, you may try to get help from the forum community, giving us an comprehensive example about the strings from before and after state.

DD.20061214.0520

The before and after are very similiar to the original post:

Before:
ARTIST: Jay-Z feat. Pharell
TITLE: Change Clothes

After:
ARTIST: Jay-Z
TITLE: Change Clothes (feat. Pharell)

Instead of (see above HOMER11 example):
Action type: Replace with regular expression
Field: ARTIST
Regular expression: ^(.) ((.))$
Replace matches with: $1

[ ] case-sensitive comparison

you may use:
Regular expression: ^(.) (([f|F]eat.))$

This will swap the string part 'feat. ...' or '(feat. ...)' as is.

From:
ARTIST: Jay-Z feat. Pharell
To:
TITLE: Change Clothes feat. Pharell

From:
ARTIST: Jay-Z (feat. Pharell)
To:
TITLE: Change Clothes (feat. Pharell)

If you want to swap the string part 'feat. ...' or '(feat. ...)' and have the target part always surrounded by round brackets, you may choose following example:

Action #1:
Action type: Format value
Field: _SWAP
Formatstring: %ARTIST%

Action #2:
Action type: Replace with regular expression
Field: ARTIST
Regular expression: ^(.) (([f|F]eat.))$
Replace matches with: $1

[ ] case-sensitive comparison

Action #3:
Action type: Replace with regular expression
Field: _SWAP
Regular expression: ^(.) (([f|F]eat.))$
Replace matches with: $2

[ ] case-sensitive comparison

Action #4:
Action type: Format value
Field: TITLE
Formatstring: %TITLE% (%_SWAP%)

Action #5:
Action type: Remove fields
Fields to remove (semicolon-separated): _SWAP

DD.20061214.1540

Perfect, thanks for your help!

If there is no "(feat. [...])" in the artist tag, the complete artist tag is added at the end of the title tag. is it possible to avoid that with an if expression?

Thanks :slight_smile:

I have not seen that issue when using these actions, please double check that you've copied them in correctly, you may need to post them here.

Allright,

i used as first action
"Action #1:
Action type: Format value
Field: _SWAP
Formatstring: %ARTIST%"

and the problem is still there. i created a column for "_swap". after my song is tagged like artist: artist1, title: song (feat. artist2) there stand the artist1 in the swap row. i think somewthing with that part is wrong:

Action #3:
Action type: Replace with regular expression
Field: _SWAP
Regular expression: ^(.) (([f|F]eat.))$
Replace matches with: $2
[ ] case-sensitive comparison

if there is no feat. [...] in the swap field, the script don't deletes (although there is the "$2") the artist 1 in the swap field.

... or i'm too stupid

I can look at your actions in more detail later, but for now here are the contents of the action list that I use (needs a little clean-up, but it works):
[#0]
T=5
F=USR_SWAP
1=%artist%

[#1]
T=4
F=ARTIST
1=^(.*) (\\\\(*[f|F]eat.*\\\\)*|/)$
2=$1
3=0

[#2]
T=4
F=USR_SWAP
1=^(.*) \\\\(*([f|F]eat.*)\\\\)*$
2=$2
3=0

[#3]
T=5
F=TITLE
1=$if($eql(%artist%,%usr_swap%),%title%,%title% (%usr_swap%))

[#4]
T=9
F=usr_swap

I didn't know what that meant "[#1] T=4", i just inserted the if-clause in the 4th action ($if($eql(%artist%,%SWAP%),%title%,%title% (%SWAP%))). Now it works perfectly.

Thanks very much! :slight_smile:

If a search expression in a $regexp() function cannot be evaluated to a specific match, then the $regexp() function returns the complete input search value.

To work around this often unwanted behaviour you may use something like this:
$if($eql(%regexp_result%,%search_field%),%search_field%,your modified %regexp_result%)

DD.20080117.1150.CET

Hi, i followed the instructions above but if i run the "script" only 2 round brackets are added to the TITLE Tag and the feat. artist is removed from the ARTIST Tag - what did i wrong?
i hope somebody can help me.

You can try this:
Feldinhalt ab bestimmter Position ausschneiden und in anderes Feld einfügen

thanks for the link newser
Is it possible that the filename is renamed to?