Re: Warnings with custom contexts and \addQuote
David Kastrup <[email protected]> Mon, 29 Sep 2025 14:39:40 +0200
| Newsgroups | gmane.comp.gnu.lilypond.bugs |
|---|---|
| Organization | Organization?!? |
| Message-ID | <[email protected]> |
Nate Whetsell <[email protected]> writes: > Thank you for all your work on LilyPond! > > I’ve found that when defining a stream of music using \addQuote, if the music contains a custom context, “cannot create context” warnings are thrown when the music is passed to \addQuote. > > I suspect that these warnings are accurate—the custom context really can’t be created—but I’m reporting it as a bug because, as far as I can tell, there’s no way to cause \addQuote to create the custom context. (The warnings can be silenced with ly:expect-warning, however.) > > I can reproduce this in LilyPond 2.24.4 and 2.25.27. Note that in 2.24.4, the behavior is a little different; LilyPond 2.24.4 reports that converting to a PDF failed with “fatal error: failed files: [filename]”, but the PDF is actually written. LilyPond 2.25.27 reports “Success: compilation successfully completed”. > > Here is a minimal example: > > \version "2.25.24" > > \layout { > \context { > \name MyContext > \type Engraver_group > \alias Voice > } > \inherit-acceptability MyContext Voice > } > > music = \new MyContext { s1 } > > \score { > \new Staff { \music } > } > > % #(ly:expect-warning (G_ "cannot create context: ~a") "MyContext") > \addQuote "music" \music > Well, the way to get by without the warning (that indicates an actual problem) would be How partCombineListener is set up and used is really not a good interface. It should probably just consist of a "layout modification" if such a thing existed, and/or be set up to just inherit from the current layout context. -- David Kastrup
exa.ly
(text/x-lilypond, 491 B)
\version "2.25.24"
\layout {
\context {
\name MyContext
\type Engraver_group
\alias Voice
}
\inherit-acceptability MyContext Voice
}
partCombineListener =
\layout {
\partCombineListener
\context {
\name MyContext
\type Engraver_group
\alias Voice
}
\inherit-acceptability MyContext Voice
}
music = \new MyContext { s1 }
\score {
\new Staff { \music }
}
% #(ly:expect-warning (G_ "cannot create context: ~a") "MyContext")
\addQuote "music" \music