Case Conversion Exceptions


#1

Hi all,

Becoming a huge fan of this app. :w00t:
Seems to be able to do all I need it to do. I'm currently getting all my tags in place and building up an directory structure using this filenaming

%artist%
%year% %album%
%artist% [%album%] $num("%track%", 2) - %title%

I have been using the default case conversion in the actions (ALT+F5) to get tags and filenames "Like This". But sometime I would prefer to have exceptions, e.g.:

Not Cd1 or Cd2 in the album name, but CD1 and CD2 instead.
Same with romer numbers, like III, II, IV should always remain in Caps (ie not Iii, Ii or Iv).
Not R&b but R&B.
VA in artist for "various artists" instead of Va.

Any ideas to what would be the smartest way to go about this is warmly welcome.
I'm sure the application can do this, just not sure if I should use "Case Conversion" or "Replace" and how to build of the exception cases.


#2

Simply use a Replace action with all your exceptions, e.g.:

Vii -> VII
R&b -> R&b
... and so on.

Best regards,
~ Florian


#3

thanks for the answer, I'll give it a go.


#4

Sorry for bringing up old topic.

I use mp3tag a lot, thanks for a great program Florian!

Tried to make a Regex for this but didn't worked.

In foobar there's a formatting called $caps2()
It does the same as mp3tag's "mixed" but it ignores UPPERCASE letters

mp3tag: test TEST tesT > Test Test Test
foobar: test TEST tesT > Test TEST TesT

Maybe you could add it in the case conversion dialog where Mixed Case is, or if it's solveable with regex.

Thanks.


#5

my RegEx Attempt for this:
1 action with 2 RegEx sub-actions:

1:
"\s([a-z])"
" $upper($1)"

2:
"^([a-z])"
"$upper($1)"

without the " letters


#6

Thanks dano, that worked very good (just had to add " around $1 :wink: ) :music:

Now I just need something to replace the "uppercase first letter from/after": (-_.

Thanks again.


#7

You can do this via a simple Case conversion action.

~ Florian


#8

No, it will override the regex =(

If I first do the Mixed then TEST will be Test and then I use dano's regex on that, you get the idea.

That's why I wanted it in the dropdown menu, it's exactly like Mixed but it keeps uppercase =)


#9

Can you give an example? I don't really understand how you mean this.


#10

Just like what you can choose in the case conversion dialog

Like that.

But if I choose that after or before your regex it will not work.

Some sort of explanation:
I have this for example: TEST test (test)
and I have used the regex so it becomes like this: TEST Test (test)
Then I want to use so it uppercase after ( with the Mixed.
Final result: Test Test (Test)


#11

Well, then just make some more regular expression actions...
like:
.([a-z])
.$upper($1)

-([a-z])
-$upper($1)
...


#12

It worked.
I guess \ is an escape char? Like in Linux

Just had to add the damn "" around $1 =)

Thanks again


#13

\ is an escape char, please look in the helpfile for further explanation and to see which chars you must escape (ALT+5->Help)
sry with the "" but i have an alpha version that handles this a bit different, i forgot about it.
$upper("$1") is right in the current downloadable versions


#14

Hi again.

I tried the new version and now none of your regex works anymore, dano.

Tried to change to yours without "" didn't worked, just get
Original tag: Artist
Parsed: [ SYNTAX ERROR IN FORMATTING STRING ]rtist

\s([a-z])
$upper($1)

^([a-z])
$upper($1)

Edit: should I even put single quotes around functions? Like '['a-z']'
Didn't worked either, but now I didn't got syntax error.


#15

\s([a-z])
$upper($1)

^([a-z])
$upper($1)

works for me.
even without the \ in $upper
what's the content of artist tag field, any special chars that could break this? or are you applying some other actions at the same time that are not updated maybe?


#16

In artist: Test test TEST (test) .test

with regex: [ SYNTAX ERROR IN FORMATTING STRING ]est Test TEST (test) .test

Haven't changed the second actions yet(the ones with uppercase after "[(-_." )

I have these in an action:

Regular expression "ARTIST": "\s([a-z])" -> " $upper($1)"
Regular expression "ARTIST": "^([a-z])" -> "$upper($1)"


#17

I don't know, but can you attach (zipped or rared) the Action files (.mta files) that make these problems here so I can analyse them?


#18

Sure, here you go http://dwi.mine.nu:81/actions.zip

I added all actions, the one that's problem is NEW TEST [TAG] Case conversion (ARTIST).mta
And the one with all your regex is [TAG] Case conversion (ARTIST).mta

Thanks


#19

OK :smiley: the problem is a simple typo

$upper($1)
$upper($1)

do you see it?

\ must be before the ( in the second $upper


#20

Thanks, that worked, strange that it worked in the old version though =)

Now there's only problem with the rest of the regex

This is what I get
Test $upper+(T)est $upper+(T)EST (Test) .Test