<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hi Martin,<br>
    <br>
    as you own Perfect Layout, why don't you use it for hairpins?<br>
    The plug-in has this barline collision algorithm.<br>
    Hairpins can be controlled through JW Lua, except for hairpins that
    span more than two systems: then only the first and the last hairpin
    part can be adjusted.<br>
    <br>
    <div><br>
    </div>
    <div>>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.<br>
      SetCustomOffset uses the boolean value to determine the start/end
      segment.<br>
      <br>
      <table class="memname">
        <tbody>
          <tr>
            <td class="memname">void
              FCSmartShapeSegment::SetCustomOffset </td>
            <td>(</td>
            <td class="paramtype">bool </td>
            <td class="paramname"><em>rightside</em></td>
            <td>)</td>
            <td><br>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <br>
    <br>
    Best.<br>
    Jan<br>
    <br>
    <div class="moz-cite-prefix">Am 24.12.2020 um 07:51 schrieb Martin
      Marris:<br>
    </div>
    <blockquote type="cite"
      cite="mid:001401d6d9c1$3b3cbc80$b1b63580$@notecraft.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@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;}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;}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]-->
      <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
            <a class="moz-txt-link-rfc2396E" href="mailto:jwlua-bounces@jwmusic.nu"><jwlua-bounces@jwmusic.nu></a> <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.
            <a class="moz-txt-link-rfc2396E" href="mailto:jwlua@jwmusic.nu"><jwlua@jwmusic.nu></a><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"
                moz-do-not-send="true">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"
                moz-do-not-send="true">JWLua@jwmusic.nu</a><br>
              <a
                href="http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu"
                target="_blank" moz-do-not-send="true">http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu</a><o:p></o:p></p>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
JWLua mailing list
<a class="moz-txt-link-abbreviated" href="mailto:JWLua@jwmusic.nu">JWLua@jwmusic.nu</a>
<a class="moz-txt-link-freetext" href="http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu">http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Jan Angermüller
Dipl.-Ing.(FH) Dipl.-Jur. 
Orchideenstieg 13
22297 Hamburg
Tel. 040 - 28 94 84 82
Mobil 0173 - 99 33 904
<a class="moz-txt-link-abbreviated" href="http://www.elbsound.studio">www.elbsound.studio</a></pre>
  </body>
</html>