[JW Lua] JWLua scripts

Charles O. Lawrence charlesolawrence at bellsouth.net
Tue Sep 17 14:49:32 CEST 2013


Jari,

I have implemented the slot concept.  By moving staves around in the Score
Manager, it clearly shows the relationship between slot numbers and stave
numbers.

A few more questions.  When swapping layers with a selected region, what if
I don't want to include staves that are hidden, but are selected?  As you
know, they could be hidden because they are empty and Hide Empty Staves is
selected, or they may have a hide staff style applied.  I don't see a
property or method to determine if a staff is hidden.  Also, does it matter
if Scroll or Studio view is selected instead of Page, since Scroll/Studio
view will always show hidden staves?

Thanks,
Charles Lawrence

-----Original Message-----
From: JWLua [mailto:jwlua-bounces at jwmusic.nu] On Behalf Of Charles O.
Lawrence
Sent: Monday, September 16, 2013 7:08 PM
To: 'The JW Lua script plug-in.'
Subject: Re: [JW Lua] JWLua scripts

Jari,

Thank you for taking the time to review my script code.

Of course tables should be used whenever possible.  I should have seen that
in the SetInitValues.

I know you said using the region directly was error prone, but I did not
realize in what way.  Thanks for pointing it out.  I did consider the
possibility that staff numbers may not start at one and be consecutive, but
in all the tests I did, it never happened otherwise.  It just dawned on me
as I was writing this that perhaps if I had repositioned a staff with the
ScoreManager it might have shown up.  I did see the mention of a "slot" when
examining the PDK docs, but it wasn't clear to me what a "slot" really was.
It makes more sense now.

Even though RequireSelection is true, I checked for empty regions because
the AlertError box does not provide for a Cancel (cannot be dismissed), and
is not modal, so the user could unselect any selected region while the alert
box is open waiting for a user response (click OK).  Maybe some other alert
would be more appropriate.

I had in the past briefly examined the Finale PDK supplied by MM, and
quickly dismissed any thought of trying to dig into it.  I had recently
retired and was not interested in coding any more at that time.  JWLua has
rekindled an old smoldering ember.  I used to thrive on this kind of stuff.
I am amazed at what you have done with your PDK in your "spare time."

Charles Lawrence



-----Original Message-----
From: JWLua [mailto:jwlua-bounces at jwmusic.nu] On Behalf Of Jari Williamsson
Sent: Monday, September 16, 2013 4:19 PM
To: The JW Lua script plug-in.
Subject: Re: [JW Lua] JWLua scripts

Charles (and everyone else),

Here are some comments on the source code.

Replace:
dialog:SetInitValues(useLayer[1],useLayer[2],useLayer[3],useLayer[4])
with:
dialog:SetInitValues(useLayer)

(The dialog setters can use a single table as parameters - and tables SHOULD
be used in really large dialog boxes with loads of options. In the 0.05 Wiki
docs, I recommend using a single table from around 6 options.)

The SwapLayersRegion.lua has an error (for the reason why I said it is easy
to make errors by using the region directly).

This line is the problem:
for staff = startStaff,endStaff do

A staff number in Finale can be ANY 1-based number and the staves can appear
in ANY order. It's an error to assume that the staves at the top of the
score always have a lower staff ID number.

Instead you should use the SLOT number for the region, which is linear
within the region - and then convert the slot to a staff number through the
region object.

This would be the replacement code:
local region = finenv.Region()
for slot = region.StartSlot, region.EndSlot do
     local staff = region:CalcStaffNumber(slot)


Also, that same script manually checks for empty regions. However, that code
will never run, since you've also defined the plug-in with:
finaleplugin.RequireSelection = true

So if the user haven't selected a region in this case, JW Lua will display a
message to the user before the plug-in even starts.


On 2013-09-16 21:22, Charles O. Lawrence wrote:
> Believe me, it is not as easy to get started as it may first appear.  
> The learning curve is steep, and JWLua is nothing like FinaleScript.

And believe me, if you have ever tried to use the Finale PDK directly, the
JW Lua learning curve is nothing. ;-)

I guess more developers will have an increased interest when we get closer
to a "version 1.0". I really appreciate that you're trying JW Lua at such an
early stage. Your feedback is very valuable - thanks!


Best regards,

Jari Williamsson


_______________________________________________
JWLua mailing list
JWLua at jwmusic.nu
http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu


_______________________________________________
JWLua mailing list
JWLua at jwmusic.nu
http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu





More information about the JWLua mailing list