An Introduction To FinaleScript

I know that “notation software” and “power user” are terms which scare the espresso out of many of you. In the early days, when dirt-simple capabilities were achieved only through conversely complicated efforts, everybody was a power user. They had to be. Nobody fired up Finale, Music Publisher, Personal Composer, Score, etc., just for the fun of it. Over time, as competition bred innovation with a side order of user base growth, much of the burden has been shifted from the user to the software, so being a “power user” has become more and more of a choice.

For many years, though, a central component of any power strategy involved 3rd-party macro software, which acted like a second and third set of smart, nimble hands to quickly and predictably do complex mouse actions, data input, and feature activation. The good news was that your speed went up because you could, at a minor level, “reprogram” the software with macros. The bad news was you had to. Plus, you had to feed and water them every time you got upgraded, they didn’t reliably access all the features [you essentially were compounding one graphical interface (notation program] with another (macro program,) and you couldn’t take your extra horsepower from computer to computer without a lot of exporting and installing.

The answer, eventually, became scriptability, or the built-in reprogrammability of a macro program (and conceivably much more) without its misfires and shortcomings. With Finale, it’s called, oddly enough, FinaleScript.

How does it work? It’s a plug-in, written by Robert Pièchaud, and it supplies a set of commands which can access virtually every menu and dialog box setting in Finale. All the user need do is decide when, which one(s), and in what order the commands should run and then assemble the script like cards in a poker hand. Macro program veterans will get the routine quickly, but don’t dump your trusted helper quite so quickly. I still use QuicKeys on all of my other programs, and it still may come in handy in a niche sense for Finale.

Where FinaleScript shines is reliability (a script command and its target function are both within Finale and reference the same code) and a very plain and easy to learn language and syntax.

Scripts can be activated by shortcut keystrokes utilizing all ASCII character keys on the main keyboard (1234567890-=qwertyuiop[ ]\asdfghjkl;’zxcvbnm,./) Keystrokes must be modified by at least Command and/or Control, but may also use Shift and/or Option. Unfortunately, the function keys and the numeric keypad are off-limits (why?) Even with these restrictions, the 360 possible shortcuts remaining should be more than enough for some truly creative laziness. My only quibble is that, the way these restrictions fall, one-handed shortcutting is limited, meaning you must take your other hand off the midi keyboard or mouse/trackball to access many of the key combinations that are left. Of course, don’t forget there are also 36 (1-0, A-Z) metatools for single-function triggering associated with each tool that has them available.

Let’s give FinaleScript a test drive. The following is Mac-centric, but PC users shouldn’t have any trouble following along. First, open the FinaleScript Palette, shown in Example 1 (Plug-ins Menu/FinaleScript/FinaleScript Palette…)


Example 2 identifies the icons on the palette.


With nothing highlighted, and with Finale set to EVPUs as the current measurement unit (Finale 2011 Menu/Preferences/Measurement Units/EVPUs) click on the “New Script” icon. This will add a blank, untitled script to the list (ex. 3.) Double-click on it and launch its edit window (ex. 4.)



In this case, our script will be a simple, nested menu selection (Finale 2011 Menu/Preferences/Mea-surement Units/Inches) but Finale is savvy enough to find it using only “Menu item ‘Inches.’” This, then, constitutes your “script.” In the “name” field, input its name as “Change Meas. Units To Inches” (ex. 5.) To test the script, click on the “Run Script” button and then check to see if now “Inches” is selected as the current measurement unit. If it worked, click “Save & Close” and you will be taken back to the script palette, where you will see the new script added to the list (ex. 6.)



To assign it a shortcut keystroke, double-click on your new script again and go back to its edit window (ex. 5.) Clicking on “Use Shortcut” and “Select” brings up the Shortcut Editor for that script (ex. 7.) Type a combination keystroke (in this case “Control-I”) and you will be notified only if that combination is already taken. If it isn’t, click on “OK” and you will go back to the edit window for that script, where you will see that now it has a shortcut assigned (ex. 8.)



Click “Save & Close” and, back in the palette window, notice your script now has its shortcut visible next to the name (ex. 9.)


That’s it! You’ve just taken your first steps into, as Obi Wan said, “a bigger world.” In the palette window, browse through the supplied scripts and open them to see how more complicated ones are approached and built, but all of them are outgrowths of the approach you just experienced. The well-written FinaleScript section of the Finale user manual will show you the rules of the road.

I’ll admit that, out of an avid macro-programmer’s sense of redundancy, I always kept FinaleScript at an arm’s distance, but its advantages (batch processing, proprietary access to features, portability, ease of programming, etc. far outweigh the disadvantages (clunky shortcut organization.) Between metatools and FinaleScript “macros,” there’s plenty of room to ratchet up your horsepower. No extra charge.


  • JKL
    March 17, 2011 @ 7:05 pm

    A great introduction to FinaleScripts, Ron.

    I don’t have a third party macro program, so FinaleScripts are a huge time saver for me. I can also share scripts with my colleagues (a simple drag and drop operation), and this helps us to generate uniform work across several systems.

    The help files, accessible through the FinaleScript palette, are very useful for finding out all the possible commands that can be scripted.

  • Joseph Marcello
    January 12, 2012 @ 7:17 pm

    Greetings –

    Even with all the voluminous directions, one simple point eludes solving –

    After one has created the Macro or script, and one has chosen a keyboard command to initiate it, when one does so, even though the script is run, it consistently re-opens the FinaleScript Editor Box in the process, necessitating a manual, mouse-click closing of the box – which of course is a drag!

    What am I not doing, so that the keyboard command triggers the action(s) without dragging us back into the FinaleScript Editor Box?

    Many thanks,


  • Peter Adams
    July 1, 2014 @ 3:14 pm

    The process of saving a document as a PDF file is very labor intensive. Does a macro exist for this function? If not, can anyone provide step-by-step instructions? Thanks.

Comments are closed.