Learning to Code in JW Lua | Part 4: Best Coding Practices

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:

  • Programming Practices
  • Lua language
  • JW Lua

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.

more >> “Learning to Code in JW Lua | Part 4: Best Coding Practices”

Learning to Code in JW Lua | Part 3: Changing Character Based on Pitch

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.

more >> “Learning to Code in JW Lua | Part 3: Changing Character Based on Pitch”

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”

Finale v26.1 release

“Things which matter most must never be at the mercy of things which matter least.”  ~Goethe

MakeMusic just announced the release of version 26.1 of Finale. This is a solid point release update which refines new features introduced since the initial release of Finale v26 in October of 2018 and earlier, and also squashes some bugs which were affecting productivity for some users, as well as improvements for MusicXML and SmartMusic.

Here’s a quick look:

more >> “Finale v26.1 release”

Moonlighting with Lua – the powerful tool for music notation you never hear of.

I suppose a good place to start is with the question “What exactly is Lua?”

Lua is a lightweight computer programming language (the complete Lua distribution could fit on a floppy disk) designed primarily for use within other applications (think plugins) to increase functionality and productivity of the host software program.

Video games are a good example. In recent years, Lua has risen to become a lingua franca for scripting in video games as diverse as World of Warcraft and Angry Birds. For programmers with an interest in this area, this means that your Lua programming skills are transferable from company to company.

Lua’s construct of simple, flexible meta-features can be extended as needed, rather than supplying a feature-set specific to one software program. This makes Lua an ideal and powerful tool for music notation software.

History & Trivia: Lua was created in 1993 by members of the Computer Graphics Technology Group (Tecgraf) at the Pontifical Catholic University of Rio de Janeiro (PUC-Rio), in Brazil. In 2011, Lua was honored with Game Developer Magazine’s Front Line Award in the programming tool category.

‘Lua’ is the Portuguese word for ‘moon’. In Roman mythology, ‘Lua’ was the Goddess to whom soldiers sacrificed captured weapons. 

more >> “Moonlighting with Lua – the powerful tool for music notation you never hear of.”

Create Lead / Top Line Chord Notation for Rock, Jazz & Pop Charts in Finale

Lead Line Chord Notation, also referred to as Topline Notation is a shorthand notation convention that is sometimes used for rock, jazz and pop guitar or keyboard charts.

Lead Line / Topline notation is a good way to get the chord voicings you are looking for as a composer or arranger, particularly if you don’t actually play guitar (or piano); it allows you to specify melodic motion of the chords without having to supply details of voicings you may or may not know are practical (or possible) on that instrument.

To create this type of notation, visually, the stems are extended past the noteheads to show that the chords are voiced below (or above) the written lead notes. Here is an example:

Let’s take a look at a couple of different ways to create this type of notation in Finale.

more >> “Create Lead / Top Line Chord Notation for Rock, Jazz & Pop Charts in Finale”