Change Stubborn Text in Finale Quickly, Easily & Globally with Finale Script

In “Finale Text Sized, Placed & Styled – Document Options & the Category Designer, we looked at how we can set up a Finale document’s overall font choices using the Document Options > Fonts and the Category Designer.

Changes to the Category Designer and Set Default Music Font affect your score in real time; however, some of the text objects in Document Options > Fonts can only be set prior to starting work on your score; problematic if your score is already completed, or you need to update your House Style after the fact.

So, since some of the Document Settings don’t update in real time in Finale, how do we change the font settings for text types such as Lyrics*, Measure Numbers*, Staff Names* and Text Blocks* which we have already entered?

This is where writing a few short lines of Finale Script can help you. Wait! You don’t have to be a computer programmer. It’s really simple, I promise. And it will save you hours of work over time with minimal effort up front.


SIMPLE & SCRIPTABLE


We’ll start by creating separate, short scripts to change the fonts (and optionally their sizes and styles) of 4 common text types that can’t globally be updated from Document Options after entry: Lyrics*, Measure Numbers*, Staff Names* and Text Blocks*. Once we understand how they work, we can combine them into one larger script that will update all 4 types in a single pass.

Open the Finale Script Palette, found in the Plugins Menu of Finale:

When the Finale Script palette opens, click the New Script icon, then double click on it to open the Editor:

The following short Finale scripts are all variations of the same simple Text Search and Replace Script. Each of them starts with these 3 words on one line:

process current doc

…which is an instruction to process only the topmost open score.

Once we add a unique second line, we’ll have a complete functioning script. We can then create variations for each of the other text types we need to update in our score. Each script will search for all text of a given type, and replaces the font (and optionally size and style) you have specified. Here is how this second line of the script will break out:

  1. search all text – an open quote followed immediately by a closed quote.
  2. replace all text – an open quote followed immediately by a closed quote.
  3. with this font – the desired font name is indicated, in between [brackets]
  4. with this size – the desired font’s new size is optionally indicated here.
  5. in this style – the font’s new style is optionally indicated, e.g. plain, italic, bold.
  6. for this type of text – “bar numbers”, “lyrics”, “staff names”, “text blocks” etc.

UPDATING THE FONTS OF BAR NUMBERS, LYRICS, STAFF NAMES & TEXT BLOCKS


The following simple 2 line Finale Script updates the font, size and style of all currently existing Bar Numbers. (You can specify any font you currently have installed on your computer).

process current doc
search “” replace “” [Helvetica] 18 plain, bar numbers

 Lyrics are almost identical. You simply replace “bar numbers” with “lyrics” at the end of the second line, and of course, setting the size and style to your preference:

process current doc
search “” replace “” [Times New Roman] 12 italic, lyrics

Same thing with Staff Names. The syntax is exactly the same, you just end the line with “staff names”:

process current doc
search “” replace “” [Helvetica14 boldstaff names

You may want to treat Text Blocks (Page Text) a little differently, since there may already be a number of text blocks on pages of your score in different sizes and styles. Even easier. The following script will change all of the page text to your desired font family, but it won’t change sizes or styles:

process current doc
search “” replace “” [Georgia], text blocks

You can also globally change the font family for all the text in the document in one shot by simply removing “, text blocks” from the end of the script above.  But use this global directive with caution. It changes not only the Text font everywhere on the score pages, it also changes the Music and Number font definitions in the Category Designer, which means that music fonts in your metronome markings could be turned into the master text font (generally not desirable). And, there is typically no reason to resort to this, as you can typically get great results by just running the individual focused scripts above.

Once you have the individual scripts working with your own fonts and attributes, particularly if you use the same House Style a lot, you’ll probably want to combine these individual short scripts into one combined script that does everything at once:

// START SCRIPT
process current doc
search “” replace “” [Helvetica] 13 plain, bar numbers
search “” replace “” [Times New Roman] 12 italic, lyrics
search “” replace “” [Times New Roman] 14 bold, staff names
search “” replace “” [Times New Roman], text blocks
// END SCRIPT

Note that all of the text search and replace scripts above are globally replacing all text of a given text type. It is also possible to filter (search) for a specific word and replace it everywhere within one specific text type, or globally for all text, such as:

search “moon” replace “stars”, lyrics
search “moon” replace “stars”


COPY DOCUMENT SETTINGS BETWEEN DOCUMENTS


Not only can you use Finale Script to change the House Style of existing Lyrics*, Measure Numbers*, Staff Names* and Text Blocks* etc.,  but you can also use Finale Script to copy other score settings, such as page sizes, margins, staff sizes etc. from your tweaked template into a new document.

Assuming we’ve tweaked the Document Settings in one score the way we like them, we can quickly copy these settings into other scores using a simple Finale Script.

Let’s create a simple script to do this:  Open the Finale Script Palette, found in the Plugins Menu of Finale:

When the Finale Script palette opens, click the New Script icon, then double click on it to open the Editor:

Name your new Script “Import Document Options” and type in the text as shown:

 

Let’s take a look at what we just created.

Line 1 : “process all open docs” instructs Finale Script to apply the instructions in the script to all scores (e.g. documents) that are currently open.

Line 2 : “don’t process current doc” tells Finale Script not to copy our new settings back into our source file. The “current doc” is the score that is foremost (on top) when you run the script, and so our “source file” is on top, with one or more “destination” scores underneath it when we run the script.

Line 3 : “import house style” is Finale Script’s command to copy *all* the document option settings over to the destination document(s). Finale Script also allows you to copy a number of these settings individually, should you want to.

To see the full range of individual import options available, locate the pre-made “Import Document Options” script in the Import Folder of the Finale Script Palette. Learn more in the section on Finale Script in the Finale Manual

Save and Close the Script. If you now open your destination score first, and then your source score, the source will appear on top, and you can run this Script to copy your Document Settings over to your destination score.

To import page formatting for both parts and score, simply add the following 2 new lines to the end of the script (page formatting falls outside the House Style to allow for more flexibility):
import page format (for score)
import page format (for parts)

That’s it! That’s all there is to it. Quickly and easily change stubborn text elements and / or copy Document Options from one score to another via Finale Script.

~robert

One Reply to “Change Stubborn Text in Finale Quickly, Easily & Globally with Finale Script”

  1. You have no idea how useful these scripts will be for me. I have to convert a bunch of arrangements to a house style and had no idea that could be automated. Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *

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