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

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

MusicXML Dolet Plugin for Sibelius Beta Coming Soon

This press release just appeared on the musicxml.com website and I thought it worth sharing (source: https://www.musicxml.com/dolet-8-for-sibelius-beta-coming-soon/)

Over the past few months MakeMusic has been working to update their free Dolet® for Sibelius plug-in for exporting MusicXML files from Sibelius.

Original development was centered around being able to transfer Sibelius files into MakeMusic’s SmartMusic more easily, but it was soon apparent that this would be useful more generally.

It has been over five years since the plug-in has been updated. MakeMusic wanted to take advantage of the new features of both MusicXML 4.0 and Sibelius’s ManuScript programming language to get better MusicXML files out of Sibelius. This should make it easier for people to transfer their music from Sibelius into SmartMusic, Finale, and other music notation apps.

To apply for the beta test, please fill out the application form. This will let them know what type of test coverage they will be getting in terms of both Sibelius versions and applications that will be making use of the exported MusicXML files. If accepted, you will receive information about accessing the beta versions during the week of November 29.

The Dolet 8 for Sibelius plug-in requires Sibelius 2019.5 or later. Restricting to later versions of Sibelius makes it much easier to support the plug-in and make use of the latest ManuScript features.

There will be 50 new features and fixes available in the initial beta release. Here are 10 of the highlights:

  1. Concert scores now export transposition information, including alternate clefs for transposed parts.
  2. Concert scores with octave-transposing parts such as guitar and piccolo now export correctly.
  3. Cross-staff notation is exported starting with Sibelius 2021.9.
  4. Dynamic parts can be exported all at once using the new Export Parts to MusicXML menu item.
  5. Page-aligned text is now exported except for headers and footers.
  6. Many more standard symbols are now exported.
  7. System directions export with the system attribute, providing better results when creating parts from an imported score.
  8. Text that mixes dynamics or musical symbols with words now export correctly.
  9. Metronome marks with numeric ranges now export correctly.
  10. Batch export no longer prompts for saving after each file.

Please consider joining the beta program to let MakeMusic know how it works for you in order to make the plug-in as useful and widely available as possible.

Original musicxml.com press release from November 22nd can be found here.

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”

X / Cross Noteheads in Music Notation

X noteheads, also referred to as “cross” or “crossed” noteheads have a number of functions in modern music notation.

In percussion writing, they are the go-to for non-pitched metallophone instruments such as cymbals or tamtam or gong. For drum set, particularly in jazz or rock charts, cymbals are typically the most active part, and X noteheads help these stand out from the other parts on a 5 line staff.

In vocal music, x noteheads are often used tor spoken text, or for unvoiced sounds / vocal effects. In both instrumental and vocal writing, they can be used to indicate notes of indefinite pitch. And in jazz charts, X noteheads can be used to indicate “ghost” notes in a melodic line.

(for drum set writing, there is an actual “ghost” notehead, which is a regular notehead in parenthesis.)

Cross (x) noteheads can also be used as a special effect to indicate hand / finger damping of instruments such as guitar, or tuned percussion such as vibraphone.

more >> “X / Cross Noteheads in Music Notation”

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”