Automating Finale for Windows

A frequent question for Windows users of Finale is if there is any equivalent to Keyboard Maestro, the popular macro utility for MacOS. Unfortunately the answer is no: There is no solution for Windows that is both powerful and easy to use.

The available solutions – AutoIT and AutoHotkey – are still powerful, but nobody would ever really call them easy to use (especially not in comparison to Keyboard Maestro).

With that said, I’m going to give a brief tutorial on how to begin using AutoHotkey to control Finale, at least to do simple tasks like call up menu items. I may tackle more complex automation in the future.

AutoHotkey is actually an offshoot of AutoIT, and as its name suggests it is particularly well suited to the task of creating hotkeys. You can create scripts using any simple text editor, such as the excellent Notepad++. I’m going to start my macro file off with a series of parameters I’ve cobbled together through internet searches. Most of these parameters aren’t super important to what we’re about to do and in fact could be left off, but it’s easy enough to add them in:

#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
#SingleInstance Force
SetTitleMatchMode 1
DetectHiddenWindows On
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1

Some of the more useful lines in here are:

  • “SetTitleMatchMode 1” – this tells AutoHotkey to only loosely match the name of the active Window, which is important because the name of the window will change with each document, but will always start with “Finale”. For this reason, we don’t want it trying to find an exact Window name.
  • “#SingleInstance Force” – This tells AutoHotkey you want only one instance of the script to run at once – useful during setting up your macro file.

Following this preamble, add this line of code to tell AutoHotkey to only apply the hotkeys when Finale is active:

#IfWinActive Finale ahk_class Finale

Now we can start adding hotkeys. A hotkey is defined by first declaring the Hotkey followed by two colons. The modifier keys each have special characters:

  • Ctrl is ^
  • Shift is +
  • Alt is !
  • Win is #

I’m going to set up F4 to access the Speedy Entry Tool. I start with this:

F4::

Note that if I had wanted, say Ctrl+Shift+F4 I would have used ^+F4::

Next I add the code to execute. This could be as simple as sending alternative key strokes… In fact, for years I used the following as my execute code:

Send, !ts

Meaning “send Alt+t” (which calls up the Tools menu) “then still hold Alt send s” (which activates Speedy Entry). How did I know what letters to use? In Windows menus, items are keyboard accessible by hitting Alt and the underlined character in the menu item.

I’ve never really had issues with using this method, but there is another way, which is to use the WinMenuSelectItem command, like this:

WinMenuSelectItem, , , Tools, Speedy Entry

Let’s pull this apart. The first element is the command itself, WinMenuSelectItem, which tells AutoHotkey to activate a menu item. This is followed by two parameters WinTitle and WinText that I have chosen to leave blank (parameters in AutoHotkey are seperated by commas), as in my experience their usage seems a little finicky. This is followed by the name of the menu to access, followed by the menu item itself. If there were any submenus involved, they would also get listed. As an example, if I wanted to access the ‘View/Show/Hidden Notes and Rests’ command I would use:

WinMenuSelectItem, , , View, Show, Hidden Notes and Rests

I should point out that I try to be very accurate with capitalization here, though AutoHotkey actually doesn’t really care. AutoIT does, however, and since I have also used that for some Finale automation in the past I’ve gotten into the habit.

Finally, end each hotkey macro with Return. If you are going to be doing multiple hotkeys in the same file you might find it handy to write notes to yourself using comments, which start with double semi-colons ;;. There is no limit to the number of different hotkeys you can add to a single file, though trying to assign the same hotkeys to different macros will result in an error.

Save your file with the suffix .ahk. You can either run the script file directly, or convert it to a standalone executable file (.exe). I ensure my macros are always available to me by also dropping a shortcut to my script in my StartUp folder.

Here is the entire file:

#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
#SingleInstance Force
SetTitleMatchMode 1
DetectHiddenWindows On
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1

#IfWinActive Finale ahk_class Finale

;;SPEEDY ENTRY
F4::
WinMenuSelectItem, Finale, Finale, Tools, Speedy Entry
Return

I hope this helps some poor Windows users out there. I really, really wish there was a solution as easy to use as Keyboard Maestro on Mac, but with a little effort AutoHotkey really does offer a similar level of power.

-Jacob Winkler

Robert Puff – A Tribute

Robert Puff, notation guru, software wiz, and the creator of the Of Note blog, passed away last week after a battle with mantle cell lymphoma.

Philip Rothman over at Scoring Notes wrote a lovely tribute to Robert and his distinguished career as an innovative expert in music preparation, which you can read here.

Robert was a colleague, a mentor, and a friend. He will be dearly missed.

It is my intention to keep publishing articles to Of Note, which has been an invaluable resource to me and countless others over the years interested in taking deep dives into notation software. Work will also continue on the JetStream Finale Controller, which was created through Robert’s continual search for better tools.

If you are so moved, you could direct a charitable donation in Robert’s honor to St. Jude Children’s Research Hospital.

– Jacob Winkler

Finale 27 – Symbol Select for Expressions, Smart Lines, and More

Finale 27 introduced a powerful new feature that is easy to overlook, especially since MakeMusic hasn’t mentioned it in any of their marketing materials.

In almost every place you can add text in Finale, there is now an ‘Insert Symbol’ command added to the text menu:

Insert Symbol in Text menu

Note that this command has the shortcut Cmd+Opt+Shift+S on the Mac (Ctrl+Alt+Shift+S on Windows).

Invoking that command will bring up the new and improved Symbol Select window, including the category sidebar if you are accessing a SMuFL font. So why is this such a big deal? Because it makes actually using the ~2600 symbols in the SMuFL spec much easier.

more >> “Finale 27 – Symbol Select for Expressions, Smart Lines, and More”

Finale 27 – First Impressions

On June 15, 2021, MakeMusic released Finale 27, the first major release since version 26 was released in October 2018. The major features being touted are:

  • Interactive music sharing functionality using the SmartMusic platform.
  • Standard Music Font Layout (SMuFL) support, including new SMuFL-compatible versions of Finale’s default music fonts.
  • An Improved instrument list, including new instruments as well as better automatic configuration of sounds for playback.
  • MusicXML 4.0 support, including the ability to export/import linked parts.

Here are my first impressions of Finale 27 and these new features.

more >> “Finale 27 – First Impressions”

Dorico: Editing Recorded Scripts

I have been spending a lot of time lately working in the JW Lua plug-in for Finale (here’s a shameless plug for the JetStream Finale Controller), but I have also been falling in love with Dorico. I’m very excited about the fact that Dorico also uses the Lua scripting language as the basis of its macro system.

If you are not familiar with how Dorico’s macro feature works, there’s another Of Note post you can read here to get you started. Of special importance is the location of the generated scripts, and the necessity to rename the userscript.lua file in order to access it from the menu.

more >> “Dorico: Editing Recorded Scripts”

Finale: Shape Designer

Finale’s Shape Designer is a built-in vector drawing program that can be used to address all sorts of little notational problems. It crops up in all sorts of places:

Expression Tool – Select “Shape” from the bottom of the Expression Designer.

Articulation Tool – Select “Shape” for the main and/or flipped symbols

Custom Arrowheads – This is available when designing a Smart Line, or when adding a line from within the Shape Designer itself (see below).

Executable Shapes – This can be found under the Playback tab of the Expression Designer.

Clef Designer – Accessed through Document Options. Choose “Shape” instead of Character:

Multimeasure Rests – Accessed through Document Options. The multimeasure “H” shape is actually a set of three lines grouped together: By ungrouping these you can adjust the thickness or appearance of your multimeasure rests.

Custom Stem Tool   – Double click a note’s editing handle to bring up the shape selection box.

Here is a brief overview of some of the things the Shape Designer can do, along with a few examples of ways I’ve used it recently.

more >> “Finale: Shape Designer”

Using Virtual Machines (VM) for Legacy Music Notation Software

I recently had to retire my trusty 2007 Macbook due to lack of Dropbox support for OS X Lion (10.7). I ran into an unexpected snag with the Macbook Air I bought to replace it, though: the most current OS X operating systems do not support older versions of Finale, but a number of orchestrators I work with still use Finale 2011 and Sibelius 6.

Fortunately, there is a solution to this dilemma in the form of virtual machines.

A virtual machine (VM) is an emulation of a computer operating system. This operating system could be a different operating system (such as Windows OS running inside the Mac OS) or, in this case, an older version of the same operating system (e.g. two different versions of the OS running on the same computer).

My Macbook Air is now running High Sierra (OS X 10.13), but I have El Capitan (OS X 10.11) installed inside Parallels Desktop to run older software versions of Finale and Sibelius. It was a relatively painless process, though not without a few kinks along the way. I hope my experiences will help others navigate those setbacks. more >> “Using Virtual Machines (VM) for Legacy Music Notation Software”