JetStream Finale Controller Development Diary – March 2020


Let’s face it. With competition between music notation software programs heating up as never before, Finale, long the patriarch of modern notation software programs, continues to improve, but in some ways, is showing its age.

It’s not that Finale doesn’t have the power and flexibility of its competitors. Far from it. After 26 years, you can still make a valid argument that Finale is every bit as powerful as its competitors, capable of producing high quality output on par with anything else out there.

Finale does have tremendous horsepower, but this is tempered with an important caveat: harnessing all of that power to be able to work both efficiently and quickly at a professional level has somewhat been left to the end user.

User programmable keyboard shortcuts is one obvious productivity feature which Finale has historically lacked. Instead of integrating user programmable keyboard shortcuts, Finale has relied on third party solutions to solve this for users.

So, for years, power users like myself have integrated third party macro programs like Quickeys and Keyboard Maestro into their Finale workflows, allowing us to automate a wide range of functions, from Tool or menu selection, to complicated, multi-step operations.

But users of traditional Macro programs still run into a logjam at some point, because each operation requires a keystroke (or a menu item) to run.

Traditional Macro programs inherently create two new problems for power-user-style productivity. Right off, the user has to memorize a keyboard shortcut for each function that is assigned.

Memorization is not a problem if you only need shortcuts for a couple of dozen functions, but Finale has 26 tools just in its Main Tool Palette, with 20 Smart Shapes and 29 Simple Entry functions (counting rests). We’re already up to 75 shortcuts not counting the 18 Special Tools, and we haven’t even started to look at menu functions yet!

The second issue is that, one-handed keyboard shortcuts are at a premium on traditional computer keyboards. The easiest shortcuts are keystrokes with a single modifier + key combination, like CONTROL-V OR CMND-C (two examples of keystrokes which are, oops, already reserved by the System.)

Once you get past the single modifier + key combinations, both hands are required to wrangle further shortcuts, at which point, you may as well be selecting functions from the menus without the shortcuts in many cases.


The ideal solution for an external controller for Finale should meet these seven requirements:

  1. Memorizing keyboard shortcuts should not be required.
  2. An ideal control interface uses icons or graphics as labels.
  3. Must be self-contained, and not rely on 3rd party solutions, but also have…
  4. The ability to integrate with 3rd party macro software.
  5. Be able to perform a variety of multi-step, advanced functions.
  6. Shortcuts grouped into task sets of related functions, and…
  7. Users can create their own custom groups for specific workflows.


The JetStream Finale Controller meets and exceeds the seven requirements above. JetStream is built on the Elgato Stream Deck hardware; a tool originally designed for video gamers.

While there is an initial cost to own the Stream Deck hardware or mobile app, JetStream Finale Controller itself is, and will remain FREE.

Elgato’s Stream Deck is an ideal delivery system for a Finale controller. There is a 15-button version for iOS or available as hardware, and a 32 button version of the hardware, called the Stream Deck XL.

There is no need to memorize shortcuts, because each of the buttons has a graphical or text representation of a specific group of tasks or a specific function. For instance, Finale’s tool palette appears in JetStream as backlit buttons; these tool icons are instantly identifiable to every Finale user.

JetStream Finale Tools

Furthermore, JetStream itself doesn’t use keyboard shortcuts at all, except in a handful of cases where Finale itself has reserved that specific shortcut (and we’ve determined that there is no conflict with international keyboards).

In the Mac version, tools, menu selection and more advanced functions are called natively using AppleScript. In the Windows version, we use a freeware scripting language called AutoIT.

If you are a power user who already uses third party macros, this internal scripting provides an additional benefit. JetStream Finale Controller does not hijack your reserved keystrokes if you are already using 3rd party macros.

This means, your existing shortcuts remain reserved as they always have been, so you can bring JetStream alongside your existing productivity tools, and you can also add your existing key shortcuts into the JetStream interface, alongside existing functions. More on that in a bit.


Our grassroots development team started by creating a task group-based UI for the various tools and functions which JetStream accesses in Finale.

  1. The Note Input group contains Speedy Entry and Simple Entry functions.
  2. The Entry (Write) Group contains task sets for Articulations, Dynamics, Clefs, Smart Lines, Chords, Lyrics, Expression Text , Technique Text, Staff Styles and Typopgraphy.
  3. The Edit Group has Music Spacing, System Locks, Multirests, Edit Filters, Noteheads, Beams, Layers, Note Tools, Pitch Tools, Tuplets, Plugins, etc.
  4. The System and Score group handles Tempo Text, Staff Groups, Barlines, Form (Repeats, Pickup bars, Insert or add measures), Key and Time Signatures etc., as well as access to dialogs such as Score Manager, Category Designer, Document Options and Finale Preferences.
  5. The View group has everything related to display – zoom levels, show / hide layout marks and layout, page view / scroll view, fit page, fit width, Tile, Cascade, Concert Pitch / Transposing Pitch etc.
  6. The Page group has text inserts, fit measures, page format for score and parts, redefine pages, etc. etc.


A button in JetStream can either perform a specific function like selecting a tool or opening a dialog, or, it can open a folder containing either 15, or 32 additional functions depending on which version of the Stream Deck you have.

This collection of buttons and folders that makes up JetStream is called a Profile.

It is here that we get into an area of customization that offers an amazing workflow solution. In addition to using JetStream’s logically laid out tools as is, you can copy JetStream’s buttons to the computer clipboard and paste them in any combination to a second Profile we call “JetStream Current”. This is the “Custom Control” area of JetStream Finale Controller.

Think for a moment about how you work. When you are composing music in Finale, you tend to use certain tools. If you are editing music, you use other tools.

JetStream allows you to curate your own sets of functions together so you have the exact tools you need at any point in your workflow.

For example, you might want to group common clefs, some different noteheads, a favorite plugin, and a few common articulations together when working with percussion instruments:

A user created custom curated set in JetStream

Or, you might need to create a group with dynamics, expression entry and staff styles. Easily curated.

The above tools and functions were curated from several different task groups in the regular JetStream, and copied over into the JetStream Current custom control section.

Source task sets for curated sets above.

Stay tuned for the next installment of the JetStream Development Diary.

If you are interested in getting started using JetStream right away, I encourage you to visit and sign up to be notified when JetStream Finale Controller is released, or email to become a member of our beta team so you can start using JetStream today.

RELATED: JetStream Finale Controller Development Diary – April 2020

Leave a Reply

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