[JW Lua] Octave Transposition

Martin Marris mmarris at notecraft.com
Sun Dec 20 22:34:02 CET 2020


After copy/pasting stuff I sometimes need to transpose the results by an
octave, up or down.

 

I assumed this would be easy but several hours later I am stuck.

 

I tried three approaches:

*	Using the scripts kindly provided by Nick Mazuk at
https://github.com/Nick-Mazuk/jw-lua-scripts. But even after incorporating
all of the "transposition" library functions directly into my script I could
not get this to work. I always got an error message that "note" was a nil
object even though I had directly assigned a value to "note."
*	A crude approach using MIDIKey, adding or subtracting 12. This did
result in the correct pitches, but the wrong spellings: C ended up at
B-sharp for example. (These errors happened only on transposing
instruments.)
*	Finally I tried an approach that parsed the note String and changed
it. So for example, Bb4 would be programmatically changed to Bb3 or Bb5 and
then set using note:SetPitch(). This worked OK on "C" instruments but
yielded spectacularly wrong results on transposing instruments (off by a
couple of octaves in some cases). I messed around with the "written pitch"
parameter (the third property in the SetPitch method) but go nowhere.

 

Hmm.

 

Martin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20201220/cc3a9ed9/attachment.html>


More information about the JWLua mailing list