As I am involved in the visuals ministry in church, I usually have to check through the lyrics of each song before service for consistency. This is tedious work as there are many songs, and have to repeatedly do the same validation each week. As any knowledgeable IT geek would do, I wrote a UltraEdit macro to automate the task using Regular Expressions to find and replace stuff.
Currently this script does the following:
- Correct all words to proper capitalization
- Capitalize first word of every line
- Capitalize any word that refers to God. E.g.: Jesus, Lord, Holy Spirit, Father
- Standardize words/punctuation
- Replace angled quotation marks (“) to standard (")
- Replace tabs with a space
- Replace words like “O” to “Oh”
- Captalize labels and add buffer lines before each (Chorus, Verse, Bridge, etc.)
- Removes unnecessary stuff
- Lines with song chords, if any
- Multiple spaces
- Trailing spaces
- Multiple blank lines
- Certain punctuations
Example song (before running the macro):
2. Tell the world
Verse 1:
F#m
Don't want to stand here and shout your praise,
F#m
And walk away and forget your name.
F#m
I stand for you if that's all all i do,
F#m
'Cause there is none that compares to you.
Pre Chorus:
F#m F#m
'Cause all i want in this life is you.
F#m
And all i want in this whole world is you, you, you.
Chorus:
Bm7 D
A E
Tell the world that jesus lives.
F#m D
Tell the world that. tell the world that.
A E
Tell the world that he died for them.
F#m D
Tell the world that he lives again.
Verse 2:
F#m
No longer i, But christ in me.
F#m
'Cause it's the truth that set me free.
F#m F#m
How could this world be a better place, by Thy mercy, and by Thy grace.
Bridge:
A Bm9 F#m D
Come on, Come on, we'll tell the world about you.
A Bm9 F#m D
Come on, Come on, we'll tell the world about you.
Example song (after running the macro):
Tell the world
Verse 1
Don't want to stand here and shout Your praise,
And walk away and forget Your name.
I stand for You if that's all all I do,
'Cause there is none that compares to You.
Pre-Chorus
'Cause all I want in this life is You.
And all I want in this whole world is You, You, You.
Chorus
Tell the world that Jesus lives.
Tell the world that. tell the world that.
Tell the world that He died for them.
Tell the world that He lives again.
Verse 2
No longer I, but Christ in me.
'Cause it's the truth that set me free.
How could this world be a better place, by thy mercy, and by thy grace.
Bridge
Come on, come on, we'll tell the world about You.
Come on, come on, we'll tell the world about You.
Here’s the macro code:
InsertMode
ColumnModeOff
HexOff
PerlReOn
TrimTrailingSpaces
Top
Find RegExp "^[ ]+"
Replace All ""
Find RegExp "^\s*(([A-G][\/ A-G a-z 0-9 #]{0,5})\s+)+\s*$"
Replace All ""
Find RegExp "^[0-9]+[\. \: \)]?\s*"
Replace All ""
Find RegExp "^(Key|key|KEY)[\. \: \)]?\s*[A-G a-g].*"
Replace All ""
Top
Loop
SelectLine
ToLower
SelectWord
ToCaps
Key END
Key RIGHT ARROW
IfEof
ExitLoop
EndIf
EndLoop
Top
Find RegExp "\b(you)\b"
Replace All "You"
Find RegExp "\b(you've)\b"
Replace All "You've"
Find RegExp "\b(you're)\b"
Replace All "You're"
Find RegExp "\b(your)\b"
Replace All "Your"
Find RegExp "\b(yours)\b"
Replace All "Yours"
Find RegExp "\b(christ)\b"
Replace All "Christ"
Find RegExp "\b(father)\b"
Replace All "Father"
Find RegExp "\b(god)\b"
Replace All "God"
Find RegExp "\b(almighty)\b"
Replace All "Almighty"
Find RegExp "\b(son)\b"
Replace All "Son"
Find RegExp "\b(he)\b"
Replace All "He"
Find RegExp "\b(he's)\b"
Replace All "He's"
Find RegExp "\b(his)\b"
Replace All "His"
Find RegExp "\b(him)\b"
Replace All "Him"
Find RegExp "\b(himself)\b"
Replace All "Himself"
Find RegExp "\b(holy ghost)\b"
Replace All "Holy Ghost"
Find RegExp "\b(i)\b"
Replace All "I"
Find RegExp "\b(jehovah)\b"
Replace All "Jehovah"
Find RegExp "\b(jesus)\b"
Replace All "Jesus"
Find RegExp "\b(saviour|savior)\b"
Replace All "Saviour"
Find RegExp "\b(holy spirit)\b"
Replace All "Holy Spirit"
Find RegExp "\b(holy one)\b"
Replace All "Holy One"
Find RegExp "\b(spirit)\b"
Replace All "Spirit"
Find RegExp "\b(lord)\b"
Replace All "Lord"
Find "Lords"
Replace All "lords"
Find RegExp "\b(king)\b"
Replace All "King"
Find "Kings"
Replace All "kings"
Find RegExp "\b(Word)\b"
Replace All "word"
Find "prince of peace"
Replace All "Prince of Peace"
Find "my redeemer"
Replace All "my Redeemer"
Find "Kingdom"
Replace All "kingdom"
Find "your majesty"
Replace All "Your Majesty"
Find "my Spirit"
Replace All "my spirit"
Find RegExp "\b(o|oh)\b"
Replace All "Oh"
Find RegExp "\s*\b(((^(P|p)re)(C|c)horus)|((^PRE)CHORUS))\b"
Replace All "\n\nChorus"
Find RegExp "\s*\b((P|p)re([ ]|-)?chorus|PRE([ ]|-)?CHORUS)\b"
Replace All "\n\nPre-Chorus"
Find RegExp "\s*\b((P|p)re|PRE)\b"
Replace All "\n\nPre"
Find RegExp "\s*\b((C|c)oda|CODA)\b"
Replace All "\n\nTag"
Find RegExp "\s*\b((V|v)erse|VERSE)\b"
Replace All "\n\nVerse"
Find RegExp "\s*\b((B|b)ridge|BRIDGE)\b"
Replace All "\n\nBridge"
Find RegExp "\s*\b((I|i)ntro|INTRO)\b"
Replace All "\n\nIntro"
Find RegExp "\n\nIntro(.)*\n\n"
Replace All "\n\n"
Find RegExp "\s*\b((E|e)nd(ing)?|END(ING)?)\b"
Replace All "\n\nEnding"
Find ":"
Replace All ""
Find "’"
Replace All "'"
Find "‘"
Replace All "'"
Find "“"
Replace All """
Find "”"
Replace All """
Find "["
Replace All ""
Find "]"
Replace All ""
Find " "
Replace All " "
Find " "
Replace All " "
Find " "
Replace All " "
Find "'S"
Replace All "'s"
Find "'R"
Replace All "'r"
Find "'V"
Replace All "'v"
Find RegExp "^'c"
Replace All "'C"
Find RegExp "(\r\n){3,}"
Replace All "\r\n"
SelectAll
Copy
Download The Macro (requires UltraEdit)