[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: slurs, shape en linebreaks
From: |
David Nalesnik |
Subject: |
Re: slurs, shape en linebreaks |
Date: |
Thu, 5 Mar 2020 07:36:25 -0600 |
Hi Martin,
On Thu, Mar 5, 2020 at 6:21 AM Martin Tarenskeen
<address@hidden> wrote:
>
>
> Fixed typo in attachment, question unchanged.
>
>
> On Thu, 5 Mar 2020, Martin Tarenskeen wrote:
>
> >
> > Hi,
> >
> > If a slur is crossing a linebreak, using the \shape function doesn't work
> > properly anymore.
Are you meaning there is some sort of regression, or that it never
worked the way you'd like?
> > I work around this by splitting the slur in two, and then
> > use \shape twice to tweak the end of the first and the start of the second
> > part of the slur to make it look like one slur. See attached.
> >
You can address the parts individually in one \shape invocation. See
code below.
> > Is there an easier and/or better way to do this? My method has a
> > disadvantage
> > that it only works if the linebreak doesn't change - in the example a \break
> > is used. But when using automatic linebreak formatting the break may change
> > if the score is changed, or if a new lilypond version chooses a different
> > linebreak.
> >
There is always going to be manual tweaking depending on LilyPond's
layout choices, because \shape is simply a fine-tuning of those
choices. I suppose it would be nice to have a conditional somehow
attached--only tweak in the case of brokenness. I imagine you could
use \alterBroken for this--\shape simply adds an offset to calculated
control-points, so use \alterBroken with Slur.control-points.
Does the following help any?
\score {
\new Staff {
\relative c' {
\shape #'(
() ; leave first piece, or unbroken alone
((-2.5 . 1.5) (0 . 0.5) (0 . 0) (0 . 0))
) Slur
c4( d e f | g a b c |
%\break
b a g f | e d c1 2) |
c4( d e f | g a b c |
\break
b a g f | e d c1 2) |
}
}
\layout {}
}