By typing in the "Format string" "Ä,A," or "\u010d,c," or "u010d,c," ... files and folders are changed only the first typed letter!
But typing into *. mta file "Ä,A," ... are changed letters to all! Besides respecting uppercase and lowercase letters. See attachment.
Why is that??
Attach the file to your Aaa.mta with some Latvian letters - what you see in there (on a computer without Latvian encoding)?
Attached is an excerpt from one MTA file out of my still growing arsenal of Mp3tag related stuff.
I use this MTA script since more than seven years unchanged.
I wrote this MTA file while I was learning to understand the Mp3tag toolset, to solve my tagging tasks.
There are some things in there which I would code in another way nowadays, but as it works still today ... never change a running system, you know.
For you it might be of interest how I did the replacement of special characters to ASCII characters.
I faced difficulties in renaming the Cyrillic letters. Action renamed only about 45% of the characters!
_FILENAME $Replace(%_path%,Ru,En,) See attachment.
On the _path D:\Music\АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\05. АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.flac
during operation Aaa (Ru) path.mta I get (->) D:\Music<u>ABVGDEJoZhZIJKLMNOПРСТУФХЦЧШЩЪЫЬЭЮЯ\05. ABVGDEJoZhZIJKLMNOПРСТУФХЦЧШЩЪЫЬЭЮЯ.flac!
What is it? Format string entry is too long? Change only 16 x 2 (32) letters!
What am I doing wrong or what should I do?
With the same method of renaming the _path of Latvian letters to English letters or letters from German to English letters action _FILENAME $replace(%_path%,Lv,En,De,En) is working!
!!All tags have to keep all of the Latvian language, German, Russian and other languages letters!!
And more ... To be able to change back to English letters to Russian characters should be able to use
Ъ -> # # ъ -> #, or ''
Ь -> '' ь -> ', or ' http://en.wikipedia.org/wiki/Romanization_of_Russian
ISO/R9: 1968 + GOST 1971 (2)
What does "ARTIST_" what is the difference between "ARTIST" your attached *. mta file?
While you are designing a proper translation replace function you should not use the pseudo tag-field _FILENAME as the target of your experiments. Do use a temporary tag-field!
Names in the file system have additional conventions, which may 'overlap' or 'alienate' the result of the $replace function.
One more note about clarity of scripting:
Do avoid such very long tapeworms of parameters.
Do use several smaller distinguished $replace function calls.
The tag-field "ARTIST_" is just a temporary tag-field to hold intermediate results, beside the original value in the original tag-field "ARTIST".
When all tag work has done, such self-defined temporary tag-fields will be deleted.
In the Mp3tag list view I have created some columns to display the content from the temporary tag-fields, for example TITLE_, ARTIST_, ALBUM_, FILENAME_, so there is a good overview of what is going on, without to ravage existing content.
When all tag work has done, I disable manually the helper columns or I activate one of my stored column configuation files via the "Utils" dialog in the column configuration dialog.
Slowly, but I began to realize something - thank you.
It seems to be working! Do as follows in the attachment will be correct?
Is it not possible to combine the activity say:
Rergular expression "ARTIST_" and "TITLE_" and "ALBUM_": "[ß]" -> "ss"
and similarly with the other characters?
Is the *.mta file can be infinitely long?
How do you delete the temporary tag-fields? Is this erasure occurs automatically without me directions defined?
In my mta file collection there are files ...
... with size of 20 KB and over 100 action entries
(e. g. "Timestamped Lyrics (for Cue File).DD.mta")
... with size of 11 KB and 200 action entries
(e. g. "Format _ALL#Set _ALL World Countries to Mixed Case.mta").
The Mp3tag developer should know the limits for sure.
No, this is not feasible.
You have to set up a series of actions as specified.
Because the mta file is a simple text file, you may do mass edit within a mta file using an editor application like notepad++, provided you know what you're doing.
Nothing that is absolutely physical can be "infinitely long"
But the action group file can have as many actions as you need
Setup an action group with all the scripting actions you require
OR
set ALL in the action field so the script action applies to every 'tag' in the file.
The editing effort may be reduced if the actions are of the type "Format value" and the format string is a $replace() statement with numerous pairs of strings to be replaced (e.g. ß,ss,ä,ae,ü,ue).
You then modify the action for the first field and then copy the whole action and modify only the target field.
This would then reduce the amount of actions to just the normal text fields like albumartist, artist, title, album instead of having to edit each pair for all fields (would probably create something like 40 actions instead of just the 4 in my example)
Now, if you have the task to replace the following:
ä -> ae
ö -> oe
ü -> ue
ß -> ss
for the fields ALBUMARTIST, ARTIST, TITLE and ALBUM
If you do that with an action of the type "Replace" you would have to write 4 actions for "ä" (one for ALBUMARTIST, one for ARTIST, one for TITLE and one for ALBUM).
The same would follow for ö, ü, ß -> all in all 16 actions.
The alternative approach would be, to use an action of the type "Format value"
choose ALBUMARTIST as field
As format string you would enter: $replace(%albumartist%,ü,ue,ä,ae,ö,oe,ß,ss).
NOW: copy that action and edit it: instead of ALBUMARTIST select TITLE as field, set %title% as field variable in the $replace function.
Do the copying for ARTIST and ALBUM -> all in all 4 actions.
And all of them can be seen without scrolling.
If it comes to editing the pairs, you edit only the first action and then copy that "master" action the way I described before.
The advantage is that if you have lengthy lists of replacements, it is very easy to overlook one pair. The copying will avoid that source of errors.
That is what I meant.
This option is only appropriate for the German language, because it is a small amount of a specific letter. Latvian language, but especially in the Russian language does not fit. In the replace of the entry is too long - see post # 43 the previous page.
Attached File Aaa__Ru__path.mta and Aaa__De__path.mta
I get started with the German language as an example, because replace is low and you easier to understand, to later arrive at the Russian language (or any non English language) problem solving.
Later, I will experiment with AND or OR or "%TAG%" and replace the list of long chains division!
Is it possible to create a temporary tag-fields as TAG_? It is TAG entire field duplicates. Take me all the necessary replaces in the TAG_ and take TAG_ replaced names to create folders with names. For all entries TAG remain as they were at the beginning - unreplaced.
I am not sure to understand correctly your question.
With Mp3tag you are free to create any tag-field of your wish, hm, there might be some restrictions regarding the character set for fieldnames or the length of fieldnames, but this is not the point here.
When you apply user defined tag-fields in mta actiongroup and remove them in the same process, then such tag-fields will never be embedded in the media file.
They become incorporated in the media file only when they are still alive at the end of the mta actiongroup.
You can use temporary tag-fields to prepare text strings like you need it, without changing the content of existing tag-fields. This is the Mp3tag implementation of the so called "temporary variable".
I was thinking: Is it possible to create a duplicate (temporary) of all the tag fields in a single operation?
For example: "Format value"TAG": %tag%"
... so that the temporary and new tag fields "ARTIST", "TITLE_", "ALBUM_", etc. created simultaneously and automatically with the pursuit of above example.
Not that I know of, will say, I never did this before.
But you may do some experiments with the function $list (search the forum for examples).
Maybe there is a tricky way to get all tag-field names and their content into text file (this works already) or into one variable, then automatically edit the tag-field names, then import back the changed set of tag-fields, but for what it is worth?
If you need a copy from the current set of tag-fields from within one media file, then create a dummy.mp3 file and use Mp3tag to copy the entire tag from the media file to the dummy.mp3 file.