lilypond-user
[Top][All Lists]
Advanced

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

Re: Tie suicide location


From: Thomas Morley
Subject: Re: Tie suicide location
Date: Mon, 20 Jul 2020 12:32:35 +0200

Hi Andrew,

did it help?

Cheers,
  Har,

Am So., 19. Juli 2020 um 11:12 Uhr schrieb Thomas Morley
<thomasmorley65@gmail.com>:
>
> Am So., 19. Juli 2020 um 10:38 Uhr schrieb Kevin Barry <barrykp@gmail.com>:
> >
> > On Sun, 2020-07-19 at 18:08 +1000, Andrew Bernard wrote:
> > > What is this error really about? Is there any way to perform a
> > > textual
> > > search to pin it down?
> >
> > The error occurs when LilyPond tries to find the points to attach a tie
> > to and can't find a notehead. The two situations in which this might
> > occur would be:
> > - you've removed the noteheads
> > - the tie spans 3 or more systems (each system will have a part of the
> > tie, but since there are only notes at the beginning and the end, the
> > system in the middle has a tie with no noteheads)
> >
> > Kevin
>
> Hi Kavin, Andrew,
>
> I don't think the first mentioned case happens here, at least
> { \omit NoteHead b1~ b }
> returns
> lilypond: /home/hermann/lilypond-git/build/../flower/include/interval.hh:256:
> T Interval_t<T>::center() const [with T = double]: Assertion
> `!is_empty ()' failed.
> Aborted (core dumped)
> Not the problem Andrew reported.
>
> For the second case below may help:
>
> foo =
>   \override Tie.after-line-breaking =
>       #(lambda (grob)
>         ;; For a dead Tie return the measure number and moment within
> the measure
>         ;; of the starting point. Additionally color the remaining parts red.
>         (let* ((orig (ly:grob-original grob))
>              (siblings (if (ly:grob? orig) (ly:spanner-broken-into orig) '()))
>              (dead-tie
>                (if (pair? siblings)
>                    (remove grob::is-live? siblings)
>                    '())))
>           (if (pair? dead-tie)
>               (begin
>                 (format #t
>                   "\n\tThe broken Tie starting here: ~a has a dead part.\n"
>                   (grob::rhythmic-location (ly:spanner-bound orig LEFT)))
>                 (map
>                   (lambda (tie) (ly:grob-set-property! tie 'color red))
>                   siblings)))))
>
> \layout {
>   \context {
>       \Voice
>       \remove "Forbid_line_break_engraver"
>   }
> }
>
> \new Staff
> <<
>   { \foo b1~ b b1*2~ b1 }
>   { s1 \break s1 s1 \break s1 \break s1 }
> >>
>
> If you already have some procedure set to Tie.after-line-breaking, it
> will get disturbed ofcourse.
>
> HTH,
>   Harm



reply via email to

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