<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hi Martin,<br>
    <br>
    ah, ok, that's a very special task.<br>
    You might wanna try the "Deactivcate all" preset in Perfect Layout.
    <br>
    If you run PL in that mode, only hairpins and dynamic expressions
    are processed.<br>
    <br>
    Happy holidays to everyone!<br>
    <br>
    Jan<br>
    <br>
    <div class="moz-cite-prefix">Am 24.12.2020 um 11:55 schrieb Martin
      Marris:<br>
    </div>
    <blockquote type="cite"
      cite="mid:003601d6d9e3$49e50e00$ddaf2a00$@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;}@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 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;}pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}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">Hi Jan,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Good to hear from you. Long story, but it
          turned out that Perfect Layout, while no doubt excellent for
          most production projects, was not suited to this one. We need
          very tight control over a limited number of things, but I
          found Perfect Layout to be a bit too broad-brush for what we
          are trying to do on this rather odd project. We are not trying
          to produce a visually attractive or perfect score in Finale,
          but rather, we are doing “smart explosion” of conductor scores
          and then parsing the objects so that they will look good when
          imported somewhere else via XML. This often means making
          things look fairly crappy in Finale, to get the desired result
          at the other end. (Once the XML transfer process has been
          completed, the Finale files could just as well be thrown
          away.)<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">After three weeks of coding I now have two
          large JW Lua scripts that have automated the majority of
          tasks, cutting time spent by at least 75% on most files. This
          is a similar approach to what we’d been doing for the past
          couple of decades with very large Sibelius projects, but it is
          the first time I have done deep automation on the Finale side
          of things. In retrospect I wish we’d started earlier!<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">The main issue with super-automation of
          this kind is that you have to be able to justify the time
          spent on development. In this case it was three weeks of
          coding, but I think it is going to cut what might have been a
          six-month project down to six weeks. The trouble is that when
          you start coding a project, you are never quite sure how long
          it is going to take or even whether it will be possible to
          achieve your automation goals!<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Thanks for the tip about controlling the
          endpoints in JW Lua, I will play around with it. We’ve already
          automated the placement of most common objects, hairpins are
          really the one remaining item that is wasting too much time in
          human editing.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Merry Christmas everyone, and fervent
          wishes for a better 2021!<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>
          <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>Jan
              Angermüller<br>
              <b>Sent:</b> Thursday, December 24, 2020 10:38<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>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-bottom:12.0pt">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.<o:p></o:p></p>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal" style="margin-bottom:12.0pt">>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.<o:p></o:p></p>
          <table class="MsoNormalTable" cellpadding="0" border="0">
            <tbody>
              <tr>
                <td style="padding:.75pt .75pt .75pt .75pt">
                  <p class="MsoNormal">void
                    FCSmartShapeSegment::SetCustomOffset <o:p></o:p></p>
                </td>
                <td style="padding:.75pt .75pt .75pt .75pt">
                  <p class="MsoNormal">(<o:p></o:p></p>
                </td>
                <td style="padding:.75pt .75pt .75pt .75pt">
                  <p class="MsoNormal">bool <o:p></o:p></p>
                </td>
                <td style="padding:.75pt .75pt .75pt .75pt">
                  <p class="MsoNormal"><em><span
                        style="font-family:"Calibri",sans-serif">rightside</span></em><o:p></o:p></p>
                </td>
                <td style="padding:.75pt .75pt .75pt .75pt">
                  <p class="MsoNormal">)<o:p></o:p></p>
                </td>
                <td style="padding:.75pt .75pt .75pt .75pt"><br>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p class="MsoNormal" style="margin-bottom:12.0pt"><br>
          <br>
          Best.<br>
          Jan<o:p></o:p></p>
        <div>
          <p class="MsoNormal">Am 24.12.2020 um 07:51 schrieb Martin
            Marris:<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <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
                href="mailto:jwlua-bounces@jwmusic.nu"
                moz-do-not-send="true"><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
                href="mailto:jwlua@jwmusic.nu" moz-do-not-send="true"><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-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
              <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>
          <p class="MsoNormal"><br>
            <br>
            <o:p></o:p></p>
          <pre>_______________________________________________<o:p></o:p></pre>
          <pre>JWLua mailing list<o:p></o:p></pre>
          <pre><a href="mailto:JWLua@jwmusic.nu" moz-do-not-send="true">JWLua@jwmusic.nu</a><o:p></o:p></pre>
          <pre><a href="http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu" moz-do-not-send="true">http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu</a><o:p></o:p></pre>
        </blockquote>
        <p class="MsoNormal"><br>
          <br>
          <o:p></o:p></p>
        <pre>-- <o:p></o:p></pre>
        <pre>Jan Angermüller<o:p></o:p></pre>
        <pre>Dipl.-Ing.(FH) Dipl.-Jur. <o:p></o:p></pre>
        <pre>Orchideenstieg 13<o:p></o:p></pre>
        <pre>22297 Hamburg<o:p></o:p></pre>
        <pre>Tel. 040 - 28 94 84 82<o:p></o:p></pre>
        <pre>Mobil 0173 - 99 33 904<o:p></o:p></pre>
        <pre><a href="http://www.elbsound.studio" moz-do-not-send="true">www.elbsound.studio</a><o:p></o:p></pre>
      </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>