What you probably need is just applying »Format Value« actions to the fiels you really want changed, i.e., %artist%, %title%, %album%, %_filename%, %_directory%.
I’d then use something like (example):
ACTION GROUP »Format into Mixed Case«
ACTION »Format value«
Field: TITLE
Format string: $caps2(%title%,'/[(. -')
Note: There is a BLANK character between the ».« and the »-«!
This should convert case like you want (I hope): Making everything lowercase except at word beginnings and after characters like »/«, »[«, »(«, ».«, »blank«, and »-«.
Now for replacing »special words« like Roman Numerals, »CD« or »EP«, we simply add additional actions to the same action group. I demonstrate this here to always capitalize Roman Numerals as well as the words »EP« and »CD«:
ACTION »Replace with regular expression«
Field: TITLE
Regular expression: (\W)([ivxlcdm]+)(\W)
Replace matches with: $1$upper($2)$3
[_] case-sensitive comparison
(To be honest, I would recommend against trying to automatically convert roman numerals, since this will of course also transform words like »Mix« into »MIX«! I did this more for intellectual exercise … If we used this one, we could also scrap the next one, since »cd« would be converted by this regexp as well. If you really want to use the »automatics«, I’d really recommend to set up a Filter afterwards (i.e., press F3, select field TITLE in this case and enter (\W)([ivxlcdm]+)(\W) as the filter expression) and manually correct all badly converted »roman numerals«. Remember, it will also catch things like the English word »I«, the Italian article »Il«, the English word »Mix«, the German word »im«, etc.!)
ACTION »Replace with regular expression«
Field: TITLE
Regular expression: (\W)(cd)(\W)
Replace matches with: $1CD$3
[_] case-sensitive comparison
ACTION »Replace with regular expression«
Field: TITLE
Regular expression: (\W)(ep)(\W)
Replace matches with: $1EP$3
[_] case-sensitive comparison
Now for handling the other fields like %artist% and so on, you just replicate these steps. You can put everything together into one Action Group.
I just tested this with some files and it does convert a string like
this is from ZZ top w.a.s.p. (disc 1) ep/maxi-cd part ii, Chepcd (cd 1) four-fold © mmviii by me
into
This Is From ZZ Top W.A.S.P. (Disc 1) EP/Maxi-CD Part II, Chepcd (CD 1) Four-Fold © MMVIII By Me
You can see it
- leaves already uppercased characters alone,
- converts names like »W.A.S.P.«, »U.D.O.« as intended,
- starts a new word after characters like »/[(.-«,
- even uppercases roman numerals,
- always converts »EP« and »CD« to uppercase, except if the letters »ep« or »cd« are part of another word (that’s the reason for the test word »Chepcd«)
Regarding the
file name (%_filename%): If you don’t want to end up with odd errors due to illegal characters in the filename, I’d recommend to
first format all fields it depends on like above,
then add (as a last action in the group) something like:
ACTION »Format value«
Field: FILENAME
Format string: $validate($ansi(%artist% - %title%),)
This will keep filenames »clean« by substituting all »illegal« characters with an underscore »«, and also not change the existing file extension (».mp3« or the like). For our example above, this will rename the file to »Artist - This Is From ZZ Top W.A.S.P. (Disc 1) EP_Maxi-CD Part II, Chepcd (CD 1) Four-Fold © MMVIII By Me.mp3«. Note the »/« being changed to »«.
Hope this helps 