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