lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Line-breaking with non-aligned barlines


From: Thomas Morley
Subject: Re: Line-breaking with non-aligned barlines
Date: Mon, 29 Oct 2018 22:25:42 +0100

Am Mo., 29. Okt. 2018 um 12:10 Uhr schrieb David Sumbler <address@hidden>:
>
>
> -----Original Message-----
> From: Thomas Morley <address@hidden>
> To: David Sumbler <address@hidden>
> CC: lilypond-user <address@hidden>
> Subject: Re: Line-breaking with non-aligned barlines
> Date: Sun, 28 Oct 2018 02:01:04 +0200
>
> Am Fr., 26. Okt. 2018 um 23:52 Uhr schrieb David Sumbler <
> address@hidden>:
>
>
> > But as things are the break here is still unsatisfactory
> > because the semiquaver just after the break has 2 long beams
> > stretching
> > back to the start of the line, whereas one would ideally want 1 long
> > beam and a short one.  I haven't managed to figure out how this can
> > be
> > changed: any ideas would be welcome.
>
> A minimal would be:
>
> \paper { indent = 0 ragged-right = ##t }
>
> {
>     \override Beam.breakable = ##t
>     s2. s8
>     c'8[
>     \break
>     c'16]
> }
>
> I do not quite understand what to do with this.

Well, a minimal example demonstrates a certain behaviour. In this case
the too long "second beam" which should be a beamlet.
It does it in a shorter way compared to your code below. Nothing else.

In the same mail I provided some code as a workaround to shorten the
second beam to a beamlet.
In a followup I provided a more general coding:
http://lists.gnu.org/archive/html/lilypond-user/2018-10/msg00406.html

So I don't understand what you're asking.

>
> What I now have (in the light of your previous email) amounts to:
>
> {
>         s2 s4..
>         \once \override Beam.breakable = ##t
>         \scaleDurations 6/4 {
>                 << bf8[( { s1*1/24 \bar"" \break s1*1/12 } >>
>                              a16]) r }
> }

This code will only work if you remove Forbid_line_break_engraver from
the relevant Voice, p.e.

\language "english"
\new Voice \with { \remove "Forbid_line_break_engraver" }
{
        s2 s4..
        \once \override Beam.breakable = ##t
        \scaleDurations 6/4 {
                << bf8[( { s1*1/24 \bar"" \break s1*1/12 } >>
                             a16]) r }
}
>
> This gives the unsatisfactorily long second beam on the a16 note.

Yep, as for my minimal.
Attached you'll find an image where I colored the too long beam along
with another one applying my latter function.
(Using your example)

\language "english"
\new Voice \with { \remove "Forbid_line_break_engraver" }
{
        s2 s4..
        \once \override Beam.breakable = ##t
        \shortenBrokenBeams
          #'(()(0 2.6))
        \scaleDurations 6/4 {
                << bf8[( { s1*1/24 \bar"" \break s1*1/12 } >>
                             a16]) r }
}

> Does your minimal example provide a way of correcting this, and if so,
> how should my code be altered?

Your code is ok (apart from the need to remove said engraver).
LilyPond is at fault here and provides no method to get better output.
Thus I coded one. Use it ;)

HTH,
  Harm

Attachment: atest-83-long-second-beam.png
Description: PNG image

Attachment: atest-83-beamlet.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]