lilypond-user
[Top][All Lists]
Advanced

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

Re: programming error: note-column has no direction


From: Valentin Petzel
Subject: Re: programming error: note-column has no direction
Date: Sat, 07 Oct 2023 19:22:09 +0200

Hello Harm,

The error you are seeing is caused by handling NoteCollisions. This has 
different behavior depending on the direction of the note column. The direction 
is set by the stem engraver, which is removed in this context.

To get rid of this message we can either remove collision handling alltogether 
by doing

\layout {
  \context {
    \GregorianTranscriptionStaff
    \remove Collision_engraver
  }
}

or we can let Lilypond properly handle collision by having a Stem grob 
created, but not actually printed:

\layout {
  \context {
    \GregorianTranscriptionVoice
    \consists Stem_engraver
    \omit Stem
  }
}

The second one is most likely the more stable one, as other places might also 
assume that a note column does always have a stem.

Regarding whether this is a valid bug: Basically we are running into UB here. 
This context is explicitely intended for transcribing gregorian chant, so we 
would not expect polyphony in the first place. But I think no syntactically 
correct Lilypond code should trigger an internal error, so I’d say there are 
these two paths to resove this:

 → Remove the very concept of collision from these contexts or
 → Allow the context to create silent Stem grobs

I do not know if there is any reason for not engraving the stems, but if there 
isn’t I’d say the latter one is the more stable path.

Cheers,
Valentin

Am Samstag, 7. Oktober 2023, 10:35:20 CEST schrieb Thomas Morley:
> Hi,
> 
> this came up in the german forum:
> https://lilypondforum.de/index.php/topic,1280.msg6613.html
> 
> A more minimel example:
> 
> \version "2.24.2"
> 
> %% \include "gregorian.ly"
> %%
> %% \layout {
> %%   \context {
> %%     \GregorianTranscriptionVoice
> %%     \consists Stem_engraver
> %%     \omit Stem
> %%   }
> %% }
> 
> \new GregorianTranscriptionStaff
>   <<
>     \new GregorianTranscriptionVoice
>     { \voiceOne b' }
>     \new GregorianTranscriptionVoice
>     { \voiceTwo g' }
> 
> 
> Returns:
> programming error: note-column has no direction
>     { \voiceOne
>                 b' }
> 
> Looks like its triggered by the removed Stem_engraver in 2.24., thus a
> first fix is to reconsist said engraver and omit Stems.
> 
> Is this a valid bug?
> 
> 
> Thanks,
>   Harm

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

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