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.
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.
Sometimes you want to change the pitches in a score without doing a normal transposition. There are a number of Sibelius plugins that can change a pitch to any other pitch.
This shipping plugin (Note Input > Transformations
> More>Pitch Mapping) was one of the very early plugins in Sibelius.
The default dialog lets you map all the spellings of a given
pitch to a single spelling. In this example, C, B#, and Dbb will be respelled
as C (or any other name you choose from the list). This mapping will apply to
all selected notes with the same pitch name, in any octave.
For respelling, you can choose natural notes, single or
double sharps or flats, or leave some notes unchanged, so you can respell some
but not all the selected notes. The
plugin will ignore quartertones, and it cannot respell to quartertones. Even
now, in 2020, plugins are unable to create notes with quartertone accidentals.
New Pitch Higher… gives some options for determining
whether the replaced pitches will be higher or lower than the original pitch.
The details are explained in the dialog that comes up.
Not only can you respell notes this way, you can also change
a note to any other valid pitch. C can be mapped to G# or Fbb if you so desire.
As before, all notes with the same pitch name in any octave are mapped to the
same new note name, in an appropriate octave.
If you choose More Options…, you get a dialog that
lets you map each spelling or a given pitch separately, so you can spell C, B#,
and Dbb to different notes if you like.
The downloadable plugin Transform Scale is a “front end” for the Pitch Mapping plugin. It lets you transform the selected notes to a different scale or mode, and/or change the root of a scale. Changing the root without changing the scale type is the same as transposing.
There are 22 built-in scales, plus you can edit the existing
scales or add your own. Scales are all chromatic (12-tones) scales. You can
specify fewer than 12 notes, and the plugin will choose pitches for any you
leave out. Details are in the Add/Edit scales dialog.
The Percussion Pitch Map plugin
I wrote Percussion Pitch Map to help deal with pitch
and notehead mapping for percussion instruments, but it was pointed out to me
that you can use it to map any pitches, and, unlike the other plugins, it
allows you to choose the octave for both the source and destination notes.
To use it this way, you need to create your own pitch map,
which is a simple text file. You can create it in a text editor, and move it to
the appropriate folder location, or create and edit a pitch map in the plugin.
One detail to note: if you are using Percussion Pitch Map
strictly as a pitch map, the first line in your custom pitch map file should
// Strict pitch, C4
Thanks to Robert Puff, who came up with the concept of the Percussion Pitch Map plugin and wrote the built-in percussion pitch maps, and to James Batty, who came up with the idea of using it as an octave-changing pitch mapper (and pointed out a nasty bug, which has been fixed).
It’s the holiday season, so what better way is there to celebrate than by creating a sparkling Christmas tree directly in Finale. And yes, this tree sparkles and the lights twinkle as well. Even if you aren’t planning on recreating the tree, learning the process will give you lots of insights into Finale.
Welcome to the 4th installment of the learning to code in JW Lua series!
We’re going to take a step back in this article and next week’s article to help give you a better grasp with what’s actually going on. Because learning to code is good, but coding well is really what we’re after.
This series creates a bit of a conundrum because there’s three huge topics to cover:
Each one of these topics is enough to have 10+ hour paid courses for, but we’re trying to cover them all at once. Hence, there are many footnotes to each article.
We’ve taken quite a bit of time learning about the Lua language and JW Lua, so it’s about time to step back and look at some fundamental programming practice that you need to know if you’re going to code.
Just like with creating music, thoughtless/sloppy code really degrades the value of the final product. So today, we’re going to look at some of the aspects of writing great Lua code.
Welcome to the third installation of learning to code with JW Lua for Finale. So far, we’ve learned the basics of the Lua language and have written one small script in JW Lua. Today, we’re going to expand on the script we wrote last time to help us really get more comfortable, while introducing another really important aspect of coding: the if statement.
And by now, you might start to see why JW Lua can be incredibly powerful in Finale. Though you haven’t really written much, you can already start to see that the ability to create loops and edit the music on the page can really speed up your workflow.
But we’re still missing one key ingredient: logic.
And that’s why we use if statements in programming. It allows the code to start making intelligent choices, which will allow you to code up many of your repetitive tasks instead of doing them all by hand.
Welcome to the second article on learning to code with JW Lua.
In the first article, we learned some of the basics of the lua language, including datatypes and for loops. Today, we’re going to take that knowledge and apply it with creating an actual script that changes every notehead in a selected region.