Here at Finale one of our missions is to help you realize your musical vision more efficiently. It’s at the core of our user-facing and technical decisions. That’s why we’re always intrigued by others in the music notation community who are finding ways to use Finale and other tools in their arsenal in unique ways.
The JetStream Finale Controller is one such innovation. We sat down with Robert Puff and Jacob Winkler, two of its creators, to learn more about the inspiration behind the technology, accessibility, future developments, and more.
What is the JetStream Finale Controller?
Jacob Winkler (JW): JetStream is a set of tools designed to streamline the process of notating music in Finale. These range from simple access to tools and other menu items to more complex processes that might require several steps when done traditionally.
What underlying technologies does it rely on?
Robert Puff (RP): JetStream runs on the Elgato Stream Deck. The Stream Deck was originally created by Elgato for video gamers and broadcasters.
The hardware comes in two backlit, tactile key configurations. There is a 15 LCD key version and a 32 LCD key XL version.
There is also an iOS and Android App version of JetStream that is identical in functionality to the 15-key hardware version, the only difference is that both of the hardware versions have tactile keys. All versions of Stream Deck display instantly familiar icons for Finale users—for instance the Smart Shapes and other Tools.
On the software side, JW Lua by Jari Williamsson is the central hub around which JetStream is built, with native AppleScript on the Mac and AutoIT on Windows performing basic menu and tool selection tasks. The Keyboard Maestro version uses the Lua functions of JetStream; and is designed to integrate directly into a user’s existing KM workflow.
JW: Our main Lua script has almost 500 unique functions in it!
RP: …all told, there are currently around 1,000 functions in the Stream Deck versions of Jetstream.
JW: And development is also being done using AutoHotkey (Windows) and the Touch Portal mobile app.
How do I set it up?
JW: On Windows, we have an installation program that puts the files where they need to be, including the JW Lua plug-in, though there is still some configuration to be done in the JW Lua plug-in itself in order to get JetStream showing up in the menus. On Mac, you will need to carefully install the required plug-ins in their appropriate folders, as well as the configuration of the JW Lua menu.
What inspired the idea?
RP: Finale users, particularly pro users, will frequently enhance their Finale setups with a third party macro program to improve productivity.
External controllers like JetStream are a natural extension of traditional macro programs, as they provide a way to organize macro operations logically by tools or categories, among other advantages. There have been a number of third party attempts over the years at creating external controllers for Finale.
A few years ago, Tim Davies showed me a custom solution he had created, which used TouchOSC on iPad to send key commands to Keyboard Maestro on Mac, which in turn, sent commands to Finale. As a Keyboard Maestro user on Mac, the setup was appealing, because I already had a ton of shortcuts set up in KM, and with Tim’s Touch OSC setup, you could organize a lot of buttons on one screen. But one disadvantage of a large control surface without any kind of tactile feedback is that you have to keep looking over at it.
The smaller surface area and tactile buttons of Stream Deck represent a different kind of workflow. There are fewer buttons available on screen at one time, but you can basically use it like you might any other kind of keyboard, without needing to constantly look at it once you get used to the layout.
I first heard about a couple of copyists at Joanne Kane music in LA using the Elgato Stream Deck hardware for commercial music copying. Its multi button design is a natural fit for a music notation controller.
JW: JetStream was partially inspired by the Elgato Stream Deck profiles Philip Rothman developed for… some competing notation products. It therefore started life as a Stream Deck profile, though it has grown beyond the hardware stream deck in a number of ways.
Who has contributed to its development?
RP: The core development group is Jacob Winkler, CJ Garcia, Nick Mazuk (Finale Superuser), and myself. As a team, we were fortunate to connect with one another in the way that we did. We all share the same goal of providing something really useful for the Finale user community.
We started a Slack channel for beta testing and development, and a number of people from all over the world popped in and out as beta testers and contributed some really great ideas that really raised the bar. For instance, Riccardo del Prete in Italy improved our button graphics. We are grateful to all of the people who have helped us release JetStream. We maintain a list of contributors here: https://jetstreamfinale.com/development-team/
I have to give a shoutout to CJ Garcia—he really stepped up with a ton of the initial programming; maintained a GitHub of all of the test builds and a bunch of other stuff.
Jake and Nick were instrumental in helping bring JetStream to Finale users on both the Mac and Windows side. Jake also wrote all of the installation documentation for JetStream.
How does someone get one?
JW: Head to jetstreamfinale.com and look for the “Get JetStream” link. We have a MailChimp sign-up, and you will be sent a download link.
RP: The Elgato Stream Deck USB hardware can be purchased directly from Elgato.com, or from a number of retailers like Best Buy or on Amazon. The iOS or Android app versions can be purchased on the appropriate App store.
Do I have to buy hardware?
JW: No… But you will probably need to spend some money somewhere!
For pro users, the hands down best way to experience JetStream is the Elgato Stream Deck XL, with 32 buttons, followed closely by the regular Stream Deck with its 15 buttons. In our experience, this USB setup offers the quickest response, and for me, is the most satisfying … Sometimes, nothing beats the tactile sensation of pushing an honest-to-goodness BUTTON!
RP: The iOS and / or Android version of Stream Deck are subscription based Apps with a free, three day trial. These app versions do not have the tactile keys of the hardware but function very well, and using your smartphone or tablet is very convenient. If you are on the fence, the apps can be a great way to try out JetStream Finale Controller to get a feel for how it works for little or no cost. A number of pro users have ended up with both the hardware and app versions in their setups, or use the hardware as well as the Keyboard Maestro version, which does not require any hardware..
JW: The Keyboard Maestro profile accesses only the JetStream Lua functions. We figure Keyboard Maestro users will already have their own shortcuts for selecting menu items so we didn’t bother with those!
Does the software cost anything?
RP: Nope. If you are using the Stream Deck version, the Elgato hardware or app subscription is the only cost of admission. There is no cost for Keyboard Maestro users. JetStream Finale Controller itself is free.
What’s your favorite JetStream feature?
JW: Personally, I already have a lot of functions mapped to keyboard shortcuts on both Windows and Mac, so the things I love the most are the various Lua functions that essentially automate multiple steps.
The dynamics features are a good example: I think it’s so cool being able to select a region and hit a few buttons and automatically have dynamic expressions and hairpins applied at musically meaningful locations aligned at the correct height! Or being able to change all the noteheads in a region quickly to different shapes with a single button push.
RP: For me, every time we add a new function to JetStream, that is my current favorite! I love the new Tacet creation function, for instance.
How did you get started using Finale?
JW: I started using Finale as an undergraduate at the University of Washington school of music. I think my first version was Finale 3.0 for Windows. At first I just used it for writing my music theory assignments, but as my schooling progressed that meant that I was also trying to torture Finale into making Schenkerian graphs… That’s a great way of getting to know the program, by the way :)
RP: The first version of Finale I purchased was v2.0 for Mac. I saw a demo of it at a computer store, and I had to have it. I was using MOTU’s Professional Composer at the time, which was cool because it was new technology and easy to use, but it wasn’t very flexible, and so I would frequently just go back to writing my charts out by hand. In those early days, I would always buy the latest notation software to try it out (Mosaic, Overture, Encore) because in addition to being notation oriented, I’m also productivity oriented. But I’ve always come back to Finale. Even back then, Finale was incredibly flexible and powerful.
Can I customize the button layout based on the type of work I am doing?
RP: This is a great question, because it touches on how different users, and different areas of music require unique workflows.
JW: This might be a good time to mention “JetStream Current,” which is a separate profile that we include and hope users will customize to fit their needs. The immediate needs of a composer might not be the exact same needs of an orchestrator, which might not be the same needs as a copyist, which might not be the same needs as a proofreader. So everyone along that chain can set up a “JetStream Current” profile with the tools that make the most sense to their particular needs and workflow.
RP: We have set up a few example folders of custom workflow groups in the JetStream Current profile to help users get started; for instance, one set is called “Sample String Tools”. Another is “Sample Part Layout Tools”, and “Sample Perc. Tools” (thanks to Tim Cates) contains functions you might need when writing drum and percussion charts. These are all found in the “JetStream Current” user profile to give users a jump start. At some point, we’d love to add more user submissions from JetStream users to this area.
It’s worth mentioning that there is no requirement to create your own custom sets, and in fact, many Finale users will find that the layout of JetStream works great without any customization. That said, power users in particular may find the customizable JetStream Current feature very useful.
What types of Finale users is JetStream for?
JW: Our goal has been to do the heavy lifting for you. The most complicated things the end user needs to be able to do are to install the files to the correct locations and then follow some directions on how to get the Lua script to show up in the menu.
I can’t think of any level of Finale user that wouldn’t benefit in some way from JetStream. The cost of the hardware might be prohibitive for some, so the cost/benefit might not work out for casual users, but for anyone using Finale regularly it’s well worth a look.
RP: Using JetStream is very simple—you don’t need to be a programmer or anything like that.
What are the plans for future development?
JW: We’ve got some ideas for improving on existing functions, and we’ve got a whole list of things that we’d love to implement. At some point we’d love to implement a way of the user choosing preferences for various aspects of the Lua functions. Windows users will eventually get the AutoHotkey option.
JetStream currently only works with the English version of Finale. We’d dearly love to be able to help out our international friends and provide a solution that works with localized Finale versions, but with our current limited resources this is probably a long way off.
Keep in mind that we are all volunteers developing JetStream out of our love of Finale and the MakeMusic community: Development has tended to come in bursts of activity as room in our schedules permits.
Is there a user group where people can trade actions and support each other?
JW: We have a Facebook group called JetStream Finale Controller that has been a good place for folks to ask for help and offer suggestions, and in fact a few new functions we’re adding have been in response to requests on Facebook.