[JW Lua] Hairpins

Martin Marris mmarris at notecraft.com
Thu Dec 24 16:12:09 CET 2020


So here is the slightly more sophisticated version, which only adjusts hairpin end-points if they come close to a barline. I think I am mixing a lot of apples with a lot of oranges, but it seems to work. The numbers are pretty arbitrary and would not work except in this tightly controlled project where I already know what the scores generally look like. So that’s it for now (crossing fingers!).

 

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()

        measureID = segment.Measure

        measure = finale.FCMeasure()

        measure:Load(measureID)

        measureDuration = measure:GetDuration()

        hairpinMeasurePos = segment.MeasurePos

        if measureDuration - hairpinMeasurePos < 80  then                        --test for hairpin ending close to barline

            segment.EndpointOffsetX = segment.EndpointOffsetX - 30       --pull it back a bit

            smartshape:Save()

        end

    end

end

 

Martin

 

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


More information about the JWLua mailing list