Learning to Code in JW Lua | Part 2: Changing Notehead Characters

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.

Sure will beat using the Special Tools!

So let’s dive right in. more >> “Learning to Code in JW Lua | Part 2: Changing Notehead Characters”

Learning to Code in JW Lua | Part 1: Introduction to Lua

JW Lua is quickly becoming a popular plug-in for Finale because of it’s unbelievable potential for improving your Finale workflow. It’s over 300 times faster than FinaleScript, more flexible than your macro program of choice, and connects directly to Finale’s codebase. Which means it can save you lots of time while achieving better results, regardless of what “better” means to you.

There’s just one problem:

Because it’s written in a language not known by all programmers, and is a highly customized version of that language, it can appear daunting to learn how to code with it. It can seem even harder if you’ve never coded before.

So today we’re going to start a series of how to code with JW Lua, even if you’ve never coded before. We’re going to walk through, step-by-step, every aspect of JW Lua that you need to code in JW Lua. more >> “Learning to Code in JW Lua | Part 1: Introduction to Lua”

Plug-ins that run other plug-ins in Sibelius

Since Sibelius version 1, plug-ins have been able to run other plug-ins. For example, the Proof-read plug-in is just a container that lets you call the main Run() method of the plug-ins Check Pizzicatos, Check Clefs,… so you can do all your proofreading at once. These plug-ins were designed to be called by other plug-ins, and typically do not display a dialog when they run.

.image001

This document will discuss plug-ins that call the top-level Run() method of other plug-ins, which is equivalent to running the plugin from the plug-in menu.

more >> “Plug-ins that run other plug-ins in Sibelius”

Eliminating Duplicate Plugins in Sibelius

sib-plugins

If you have multiple copies of a plugin in different locations (typically a downloadable plugin you have forgotten about installing, and so you installed it again to a different location), you may not be running the copy of the plugin you expect. This is true even if you explicitly run it from one of the plugin menus (or in Sibelius 6 and earlier, from the single plugin menu).

If the plugin files are identical it doesn’t matter which copy is run, but you may have installed an update which has different code, and you will find that you are not seeing the effects of the change.

more >> “Eliminating Duplicate Plugins in Sibelius”

Sibelius Plug-ins

­­­

What are plugins and how do I run them?

In Sibelius, plug-ins are extra features created using a programming language called ManuScript. Sibelius ships with about 150 plug-ins. These plug-ins are documented in the Sibelius Reference. Plug-ins can do many of the same things that built-in Sibelius commands do.

more >> “Sibelius Plug-ins”

Finale Page Layout Advancements & Plugins | JW Copy Part Layout…

Back before there was such a thing as computer notation software, commercial music copyists working with pen and ink used a technique called “Advancing the Layout”.

To illustrate, I’ll use French Horn parts in an orchestral score. In this hypothetical score, there are a lot of commonalities between the four horn parts:

  1. The four horns always enter together.
  2. Horns are in unison for a good portion of the score.
  3. Rhythms are generally homophonic when they are playing chords.
  4. They share a common transposition.

To advance the layout, common elements such as Page Text, Key and Time Signatures, Rehearsal Marks and other System Text, Barlines, Repeats, Endings are laid out in ink on the page. Next, any common unison passages are copied into the chart, as well as any common rests for homophonic chord passages.

The copyist then takes this “master page”, which functions as a partially filled-out template to the photocopier and runs copies so that the notes for each part can be filled in. As you can imagine, this technique of capitalizing on the commonalities within the parts saved hours of work, back in the day.

Before photocopiers, the ozalid process was used to reproduce music for commercial recording sessions and concerts.

These days, because of the way Finale automatically applies music spacing as you go, the page layout can change dynamically as music is entered into your score. A byproduct of this is that user attention to page layout is typically at the end of the workflow rather than the beginning. This reorganization of workflow is not a bad thing as long as you are, in fact, paying attention to the page layouts at some point!

In more recent versions of Finale, the business of having to ink different notes into a copy of a parts template, or copy and paste notes from the score into a separate part staff or file during the part creation stage has largely been replaced with Linked Parts; specifically the “Voicing” feature in the Manage Parts… dialog. You can enter diads or triads in a line of score, and then for any given part, choose rules for Finale to select which specific notes from that staff will display for that part.

However, even though we can control which notes go where using this dialog, the page layout for the parts themselves is not addressed in the Manage Parts dialog.

Wouldn’t it be great to be able to create the layout for Horn 1 and then copy that layout to the other Horn parts so we don’t have to recreate this page layout manually 4 different times? Turns out, there is a plugin for this very task.

Enter the very useful “JW Copy Part Layout…” plugin by Jari Williamsson. Once you have manually created your layout for the first part, with the second (or subsequent) part frontmost, run the plugin. The dialog looks like this:

fin-jw-copy-part-layout

The plugin displays the name of the Current (open) Part which will inherit the new layout. You select the part  you want to copy the page layout from in the instrument list.

Note there are a couple of useful options in this dialog besides the Copy Layout button. If you have sections where the Multi-measure rests are not identical you can uncheck the “Multi-measure Rests” option so that the majority of the layout will still be copied. You can then manually adjust the layout of the region with the differences manually.

You can switch to a specific part while the plugin dialog is forward by selecting a part, and then clicking the “View Selected” button. This will bring the selected part forward. Note that the “Current part:” name will then change in the dialog, allowing you to Copy the Layout from any other selected part in the dialog.

JW Copy Part Layout is free (donate to the developer if you would like), and works with Finale 2012 or newer. While there is no direct link to individual plugins provided by the developer, you can download the JW Copy Part Layout plugin here:

For Finale 2011 and earlier, a good solution is the Transfer function of the full (paid) version of the TGTools plugin suite to copy locked measure groups (measure layout) as well as system margins and attributes between parts..

~robert

How Sibelius Plugins Store their Settings for User Data

Some Sibelius plugins (for example, Respell Sharps as Flats) run without taking any input from a user. They do not display a dialog, but just run and do what they were designed to do.

Other plugins take input from users by putting up a dialog box that has boxes to type into, or check boxes, list boxes, or radio buttons. You might see a dialog that looks like this:

sibprefs-image1

In this dialog there is a great deal of data, but the initial values in the edit boxes will change every time the plugin is run, because they are pulled out of the current score. The plugin does not save anything from the previous run, but instead always starts fresh.

Other plugins, however, remember what a user typed in the last time the plugin was run, assuming that the same settings might be used again. Here are some different ways plugins can save these settings.

more >> “How Sibelius Plugins Store their Settings for User Data”