<div dir="ltr"><div>For Fin14 or higher, I would only modify hairpins where hairpinMeasurePos = measureDuration. However, for files created before Fin14 the 80 EDU fudge factor makes sense.</div><div><br></div><div>If you really want to be complete, you could also check for hairpins that span systems and adjust their left continuation points as well. (The "left continuation point" is actually the <i>right</i> side of the left/first chunk of a system-spanning smart shape. I haven't researched the nomenclature for this in the PDK Framework, however. It may be different)</div><div><br></div><div>Another check I would consider for a general solution is only to do this if there is actually a group barline. But that may be overkill for your purposes.<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 24, 2020 at 9:13 AM Martin Marris <<a href="mailto:mmarris@notecraft.com">mmarris@notecraft.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" lang="EN-US"><div class="gmail-m_8177240892843805404WordSection1"><p class="MsoNormal">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!).<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">musicregion = finale.FCMusicRegion()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">musicregion:SetFullDocument()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">local marks = finale.FCSmartShapeMeasureMarks()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">marks:LoadAllForRegion(musicregion, true)<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">for mark in each(marks) do<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">    local smartshape = mark:CreateSmartShape()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">    if smartshape:IsHairpin() then<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        local segment = smartshape:GetTerminateSegmentRight()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        measureID = segment.Measure<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        measure = finale.FCMeasure()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        measure:Load(measureID)<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        measureDuration = measure:GetDuration()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        hairpinMeasurePos = segment.MeasurePos<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        if measureDuration - hairpinMeasurePos < 80  then                        --test for hairpin ending close to barline<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">            segment.EndpointOffsetX = segment.EndpointOffsetX - 30       --pull it back a bit<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">            smartshape:Save()<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">        end<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)">    end<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(197,90,17)"> end<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Martin<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div>_______________________________________________<br>
JWLua mailing list<br>
<a href="mailto:JWLua@jwmusic.nu" target="_blank">JWLua@jwmusic.nu</a><br>
<a href="http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu" rel="noreferrer" target="_blank">http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu</a><br>
</blockquote></div>