MCSmarties wrote:The preset "Uppercase the first letter of each line of the Lyrics" is not ideal.
Currently, it uppercases the first character but sets everything else in lower case!
Yes, I am aware about the English word "I" (
http://www.mediamonkey.com/forum/viewto ... 44#p163244), and there is also a problem with personal names which should have first character uppercased.
MCSmarties wrote:Of course, this assumes that the ONLY capitalization problem with the lyrics was the first letter of each line...
Well, this is just one more problem for such implementation. What if someone has a lyrics with all characters in uppercase? How about languages where "I" should not be uppercased? Believe it or not, in my language the word "I" has a meaning of "and" in English and it should be lowercased when it is in sentence.
Anyway, I am thinking to introduce one more preset for the next version of this script which would be same as mentioned preset, except it would uppercase the word "I" and maybe it would have a rather limited list of English personal names (of course, this list would be user-customizable).
MCSmarties wrote:would it be possible to make a preset that would replace all kinds of words with others?
Like "cos", "cuz" with "cause" (a pet peeve of mine), or add apostrophes where missing (im, ill, dont, wont -> I'm, I'll, don't, won't)
Of course it is possible. There are already included some presets which are doing similar thing, even within only one step. Just take a look at the preset "Fix common words (featuring, presents, versus)" or "Remove diacritical marks from the Title" - with a single preset you could replace many characters or words to another characters or words: Feat, feat, Feat., feat., Featuring, featuring, Features, features, Ft, ft, Ft. are all converted to ft., then Presents, Presenting ... to pres. and Versus, Vs ... to vs.. It is all possible with a help of the custom VB function MapArray.
Here are settings for your example:
Find what:
Code: Select all
\b(?:(cos|cuz)|([Ii]m)|([Ii]ll)|(dont)|(wont))\b
Replace with:
Code: Select all
MapArray(Array("$1", "cause", "$2", "I'm", "$3", "I'll", "$4", "don't", "$5", "won't"))