Finale: Lyric Tools

Sometimes knowledge and wisdom get lost, only to be rediscovered later. I recently stumbled across some old Finale Tips and forum posts that offer some useful tools for working with lyrics in Finale that deserve some attention again!

Lyric Hyphenator

In July of 2013, Mark Adler of MakeMusic posted a link on Finale Tips to Juicio Brennan’s excellent online Lyric Hyphenator. Type or paste your lyrics into the window on your browser, hit “Hyphenate My Text!”, then copy and paste back into the Finale Lyrics window. This works great if you work primarily with Click Assign, as I do – I like my Lyrics Window neat and tidy, and it turns into a mess when I use “Type Into Score”.

Smart Quotes

In August of that same year, Robert had a blog post on using FinaleScript to convert straight quotes to smart quotes. It’s a great solution to the fact that Finale will only let you type in “straight” quotes and apostrophes, rather than replacing them with “smart” characters that curve in or out as required. However, there are a few problems with the script as it exists.

As it is presented, the script looks for all straight quotes and replaces them with “opening quotes.” It then goes through and sequentially replaces any combination of letter+(open quote) and replaces that with letter+closing quote. It must do this independently for both uppercase and lowercase letters, as well as several international characters, resulting in over 80 different comparisons. This results in a very slow script (I just timed it at 21 seconds on my main computer), and even as it exists now there are a few omissions from the international characters, and no comprehensive search and replace for an initial apostrophe. If these fixes were added, the script would work in all cases, but the execution time would probably double!

After some tinkering, I came up with an alternative script which does not rely so heavily on individual comparisons. It takes the opposite approach to the older script, making all straight quotes closing quotes, then looking for instances of space+quote or linefeed+quote (Windows) or carriage-return+quote (Mac) to replace as opening quotes. Because there are so many fewer direct comparisons that need to be made the script executes much faster. There are some specific instances that this script will not fix, though: Any text string (lyric, text box, expression, etc.) that begins with a quotation mark or apostrophe will not get fixed, though subsequent lines will. Figures 1 and 2 show some text boxes and the Lyric Window before and after this script was applied, with the remaining problem areas highlighted:

Fig 1

Before applying script

Fig 2

After applying script

Here is the script I used:

// Search ‘straight’ quotes (Unicode character <34>) and  replace them with ‘smart’ quotes
search <34>” replace with
search  ”” replace with” 
// Unicode character <10> is the “line feed” character, <13> is “carriage return”
search <10>” replace with <10>“
search <13>” replace with <13>“
// Search ‘straight’ apostrophes and replace with ‘smart’ apostrophes
search replace with 
search  ’ replace with 
search <10>’ replace with  <10>‘
search<13>’” replace with  “<13>‘

Elisions and “Hard Spaces”

There are times, especially when working with languages like Spanish and Italian, where you will need to elide multiple words on the same lyric. The manual suggests using the equals symbol and then doing a search and replace with an uppercase ‘I’ from the EngraverFontSet font. This is also simple to automate using FinaleScript; I also like to increase the size of the font a bit, though this is a matter of personal taste!

Another option for eliding lyrics is to use a “hard space” (or “non breaking space”), accessed with Opt+Space on a Mac and Alt+[0160] on Windows. Scripting this is a little bit trickier, though, especially when trying to develop a script that works seamlessly between Mac and Windows (I work in both, so I like my scripts to as well!).

After going down a few interesting rabbit holes (hidden text did not work), I hit on the idea of using a glyph that I knew was blank in the Finale Lyrics font and would probably never get used as an actual lyric: The euro symbol!

The following script turns an equals sign (=) into an elision slur, and the carat character (^) into essentially a blank character, sized to appear like a normal space. The addition of “lyrics” constrains the search and replace function to lyrics, so the script will not replace things like equal signs in metronome markings. This works equally well in both Mac and Windows environments.

//  Replace carat (^) with ‘Euro’ character from Finale Lyrics
//      (empty glyph, should appear blank!)
search lyrics^^replace with “” [Finale Lyrics] 8
//  Replace = with elision slur from EngraverFontSet
search lyrics=replace with “I[EngraverFontSet] 16

This can be combined with the “smart quotes” script above into a single script, making a pretty efficient catch-all for processing lyrics.


Jacob Winkler is the Artistic Director of the Seattle Girls Choir, and an instructor in Finale and Sibelius for the Pacific Northwest Film Scoring Program. He is frequently engaged as a choral singer for film and game soundtracks, including the Halo, Assassin’s Creed, and World of Warcraft series. LinkedIn

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.