[JW Lua] Hairpins

Martin Marris mmarris at notecraft.com
Thu Dec 24 14:33:44 CET 2020


OK I have figured it out. The key clue came from Jan, who pointed out that this is set using FCSmartShapeSegment. Until now, I had ignored that class altogether because I assumed it was only relevant for SmartShapes that span multiples measures or systems. 

 

This code, on its own, may be enough. All it does is drag back the right-end of each hairpin by 60 units. Luckily, the source material I am working with is voluminous (600 conductor scores and probably more to come) but simple. I don’t think any hairpins span more than one bar, anywhere. I will try to make it more sophisticated so that it only adjusts hairpins that end at the end of a bar, but even that may be over-doing it.

 

For some reason I did not have to use the “SetCustom” stuff at all.

 

musicregion = finale.FCMusicRegion()

musicregion:SetFullDocument()

local marks = finale.FCSmartShapeMeasureMarks()

marks:LoadAllForRegion(musicregion, true)

for mark in each(marks) do

    local smartshape = mark:CreateSmartShape()

    if smartshape:IsHairpin() then

        local segment = smartshape:GetTerminateSegmentRight()

        segment:SetEndpointOffsetX(-60)

        smartshape:Save()

    end

end

 

Something like this would help end the pain for the large number of Finale users (judging from a Google search) who seem to be frustrated by these collisions between hairpins and group barlines.

 

Martin

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20201224/c11f29dc/attachment.htm>


More information about the JWLua mailing list