<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Thanks Robert. I am giving up on this one for the time being. We will use the JW Change plugin manually. It has a whole set of commands specifically for Hairpins. We have found that we can get more or less what we are looking for by setting all the horizontal positions to zero or something close to zero. This can be relative to the note entries, or relative to the measure borders. The very existence of all these options makes me think there must be some way to do the same in JW Lua although of course these may be calls that have not been implemented yet.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The JW Change plugin can cope with most of these issues, but cannot always fix sloppily attached hairpins, even though it has options that try to do this. That is one of the reasons I was hoping to achieve this programmatically in JW Lua (by using the “find nearest” stuff, which I am already using to fix the attachment of text dynamics). We are not looking for subtlety. All of the source material is at the elementary level and, for most instruments, hairpins should always start on a note entry and end at the rhythmic conclusion of another note entry (but without colliding with group barlines, so pulled back slightly at the right hand end at the end of a measure). In theory we should use a different algorithm for pianos and other instruments that cannot change dynamic through a sustained note, but I have more or less given up on that one and perhaps it is only engravers and other notation geeks who care.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Martin<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> JWLua <jwlua-bounces@jwmusic.nu> <b>On Behalf Of </b>Robert Patterson<br><b>Sent:</b> Thursday, December 24, 2020 00:29<br><b>To:</b> The JW Lua script plug-in. <jwlua@jwmusic.nu><br><b>Subject:</b> Re: [JW Lua] Hairpins<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>I've never used the PDK Framework support for Smart Shapes. It's complicated even with direct PDK access. That said:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>1. You will almost certainly need to call SetCustomShaped(true). (What has me confused is that in Finale each endpoint has its own customized bit, so I am not sure how the PDK Framework is doing this without specifying the left or right endpoint.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>2. It's possible you are correct that FCSmartShapeCtrlPointAdjust is not what you want. But if it isn't, then what you *do* want is not hooked up through the PDK Framework. So it's worth fiddling further, I'd say.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Good luck.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Wed, Dec 23, 2020 at 6:14 PM Martin Marris <<a href="mailto:mmarris@notecraft.com">mmarris@notecraft.com</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I’ve been trying to adjust the right end-point of hairpins. In the source Finale material I am working with, these routinely collide with or cross the group barlines in conductor scores, but I want them to stop a bit before the barline (this issue gets even more exaggerated if the file is brought into another environment via MusicXML). <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>From Google searches it seems like this is a known issue for Finale users, with all sorts of manual and semi-automated solutions. Indeed if I create a totally vanilla Finale document without using any special settings, that is exactly the behavior that I get when placing a slur. If you create a hairpin that spans a measure, it snaps to end exactly on the group barline.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>There is a sample script on the JW Lua website that loads FCSmartshape objects, filters for hairpins, and changes the hairpin opening size by changing the FCSmartShapeCtrlPointAdjust setting for ControlPoint1OffsetY.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>So far, so good. But when I try to change the “X” horizontal settings, nothing happens. I am beginning to think that these “control point adjust” settings have nothing to do with what I am trying to achieve, namely changing the X-offset (relative to the beat, or relative to the measure) of the SmartShape object.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Martin<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div></div><p class=MsoNormal>_______________________________________________<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" target="_blank">http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu</a><o:p></o:p></p></blockquote></div></div></body></html>