[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
signature.asc
Description: This is a digitally signed message part.