lilypond-user
[Top][All Lists]
Advanced

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

Re: Bug in Completion_heads_engraver ?


From: Graham King
Subject: Re: Bug in Completion_heads_engraver ?
Date: Sun, 21 May 2023 14:53:19 +0100

Thanks Jean, both for the solution and for the education.

On 21 May 2023, at 13:58, Jean Abou Samra <jean@abou-samra.fr> wrote:



Le dimanche 21 mai 2023 à 12:09 +0100, Graham King a écrit :

In the following code, I would expect the tie between the final two notes to be dotted.  The actual output is a solid tie.  Not sure whether this is a bug or just my doing something wrong...

\version "2.25.0"

{ c''2
  \once \tieDotted
  \set melismaBusyProperties = #'()
  1 ~ 2
}

\layout {
  \context {
    \Voice
    \remove "Note_heads_engraver"
    \consists "Completion_heads_engraver"
  }
}

I can work around this pretty easily, but I'd rather preserve the note durations of the original mensural notation if possible.

That the second tie is not dotted is perfectly normal since \once makes a command apply only at the current moment, and that tie starts later.

I feared that this might be the case.  I'll have to be much more circumspect when using the Completion_heads_engraver, in case a change of barline distribution triggers this unexpectedly.

What is more surprising is that the first tie is not dotted; this is harder to explain simply, it's caused by shenanigans in the internals of Completion_heads_engrver (it creates ties “retroactively”, later than when they start).

Try

\version "2.24.1"

{ c''2
  \once \override Tie.color = red
  \set melismaBusyProperties = #'()
  1 \single \tieDotted ~ 2
}

\layout {
  \context {
    \Voice
    \remove "Note_heads_engraver"
    \consists "Completion_heads_engraver"
  }
}
That works!  I didn't know about \single (and I hadn't thought of using a tweak).  I might convert all my dotted-tie instances to this mechanism, to avoid the impression that the decisions of the Completion_heads_engraver are changing the semantics of the .ly file.

reply via email to

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