JetStream Finale Controller – Prologue
I remember first hearing in early 2018 that some copyists working at JoAnn Kane Music in LA were using a new type of gaming controller called Elgato Stream Deck to speed up their workflow in Finale and Sibelius (in the case of Finale, no doubt in conjunction with with some sort of Macro program such as Keyboard Maestro).
While not designed specifically for music notation, the original Stream Deck is a perfect productivity companion for Finale. Stream Deck expands on the best features of previous hardware and software controllers.
Like the XKEY system, the original Stream Deck has tactile hardware keys (there is now also an iOS version).
One advantage of the hardware version of Stream Deck for a controller is that the tactile button design allows you to keep your eyes on the music on the main computer screen as you work.
A Picture Is Worth A Thousand Words
The XKEY system allowed you to print custom graphics icons and slide them under the key covers; the idea is great for music notation, but while it’s practical, it’s not very flexible. On the other end of the spectrum, iOS apps can be more flexible with color coding and other graphical attributes for virtual buttons, but to date haven’t contained useful iconography related to music notation software. (MetaGrid has note duration icons and some other related graphics, but even this is more generic).
Stream Deck takes a completely different approach. Each of Stream Deck’s 15 keys is a fully customizable backlit LCD. (the newer Stream Deck XL hardware has 32 keys).
As an example, here are some buttons for selecting tools in Finale, showing how they might appear in a TouchOSC or Lemur layout for iOS. Users will quickly learn what these buttons do, but initially, seeing these words representing Finale tools without any additional context isn’t very clear:

But Finale users will instantly know what each of these tool buttons represent in Stream Deck, because each of these familiar icons is associated with a specific tool selection in the Finale application itself:

At a very basic level, Stream Deck is like XKEYs in terms of basic functionality – you can program any key to be any keystroke combination with modifier keys using a central application on your computer.
In Stream Deck, these sets of key shortcuts and functions are created in what is called a “Profile”. Here is a sample of the types of things possible since the earliest versions of Stream Deck.
Hotkey: key combinations like Command-Option-1 or Ctrl-F2.
Hotkey Switch: Toggle between two key combinations.
Text: Enter a string of text (for something like typing in chord suffixes directly.)
Multi-action: A basic macro sequence of keystrokes etc, allowing you to create a series of commands to trigger when the key is pressed.
Folder: Switch to a new page of shortcuts within the same profile, for potentially thousands of functions related to Finale.
But Finale itself does not respond directly to custom keyboard shortcuts, or provide users a way to program your own custom keyboard shortcuts to access tools, menu items and dialog boxes. With the exception of the Text keys to type in something like chord suffix strings or a shortcut for a composer or arranger name, by itself, being able to send Mac or Windows keyboard shortcuts doesn’t really provide anything of use to Finale users.
Since Finale has no way to directly respond to the keyboard shortcuts, a third party macro program such as Keyboard Maestro for Mac, or Auto Hotkey for Windows would still need to be part of the workflow.
That is, unless Stream Deck is able to output the actual commands to select Finale’s menus and open dialogs directly…
In December of 2018, music engraver and blogger Dan Kreider posted an article on the Scoring Notes blog about how he uses Stream Deck for his work in Dorico. Like Sibelius, Dorico has user programmable keyboard shortcuts. The article is ostensibly a review outlining how to increase productivity in Dorico with Stream Deck, but could be interpreted as a testament to Stream Deck’s ability to not only automate cumbersome tasks, but group tasks logically to improve workflow for any notation program.
I bought a Stream Deck shortly after reading Dan’s article. I found the tactile control of the hardware to feel “just right”. I liked being able to rest my hand on the keypad without having to look at it. And when I did need to look to orient myself, I quickly discovered that relevant graphic icons on the UI provided an instant cognitive boost.
Since I already had created a ton of Keyboard Maestro shortcuts to increase Finale productivity over the years, I immediately set out mapping my own custom Stream Deck profile to my existing KM shortcuts. It wasn’t long before I was working really efficiently with my new setup; essentially replacing the Lemur Controller I had been using on iPad to increase my productivity in Finale.
But I kept wishing that either Finale had user shortcuts, or that I could somehow bypass Keyboard Maestro entirely.
Around this time, Philip Rothman with Leo Nicholson released the first of several commercial Stream Deck profiles for both the Dorico and Sibelius scoring programs called “Notation Express“. Dorico and Sibelius both have an application support file which stores custom user keyboard shortcuts, and Notation Express takes advantage of this.
Notation Express installs its own user shortcuts file with everything linked and ready to go. The downside is if you had a lot of your own custom keyboard shortcuts already programmed, you have to reenter your own custom shortcuts back into Dorico or Sibelius, but if you didn’t already make extensive use of Custom Shortcuts, Notation Express provided users of Dorico and Sibelius a complete turnkey system that “just works”.
I began to reach out to some other Finale users to see if there might be any interest in working together to develop a free productivity tool around the Stream Deck platform for the Finale user community. I was surprised and encouraged by the positive responses I received.
Before long, I found myself discussing the development of what was to become JetStream Finale Controller on a private Slack channel with a small, but growing and very diverse group of Finale users.
Naturally, keyboard shortcuts were an initial sticking point. We began to experiment with Finalescript keyboard shortcuts and a few other things.
Game Changer
On January 7, 2019, Elgato announced software version 4.0 of Stream Deck.
Version 4.0 introduced an SDK (Software Development Kit) for developing your own plugins within Stream Deck, which opened the floodgates for a very different kind of multi button control surface for Mac and PC software applications.
It was suddenly possible to create custom actions to extend the functionalities of Stream Deck; not through a third party macro application, but through the Stream Deck itself.
Within a couple of weeks of the 4.0 release, the Stream Deck SDK subreddit thread already had all sorts of new plugins being posted and discussed – everything from live stock ticker updates to controlling your smart home lighting and MIDI control.
As a Finale user on Mac, one that caught my eye was a plugin to run AppleScript code, written by Sound Designer and programmer Mike Schapiro.
On Mac, this plugin allows you to create arbitrary chunks of AppleScript code assigned to the different buttons to access menus and dialogs without requiring any keyboard shortcuts at all.
Plugins for PC such as Super Macro began to appear as well, designed for the creation of sophisticated macros right inside a Stream Deck profile.
The release of the Elgato SDK made it clear – JetStream Finale Controller would now evolve to be a self contained, cross platform productivity solution; a direct controller conduit to Finale.
For power users, a subtle, yet exciting side benefit of this architecture would be that if you did already have a number of keyboard shortcuts programmed for use with your existing third party Macro program (Keyboard Maestro / Auto Hotkey etc), you could keep using these concurrently alongside the new controller, since no keyboard shortcuts would be required.
And so, just prior to the summer of 2019, it was this series of events which propelled our small cooperative group into serious development of the JetStream Finale Controller.