Reviewers: , Message: Hey all,
As part of project markup & at the suggestion of Nicolas Sceaux by way of Valentin's opera, I've implemented in-notes in LilyPond. These notes hover above systems and come up a fair bit in vocal music. It works, but I have one major and one semi-major snag that I'd like to run by people. Please don't run the regtests on this yet until these snags are worked out. Semi-major-snag: get_footnotes_from_lines should only ever be called once and should stash its results in the systems and/or probs. I'll figure out how to do this in the near future. Major snag. On about 1 out of every 5 runs of this patch, it leads to way-too-big spacing. This is because the stencils of in notes are, for some reason, registering infinite extents in page-spacing.cc when they're being counted (check account_for_footnotes and you'll see that the value of the extent for in_notes is occasionally really really really large). This is strange because when the in_notes are added to the breaker (System::get_in_notes_in_range), these extents are correct. I think it is an issue with pointers and garbage collection of stencils - does anyone have any intuition about this. Here's a test file: \version "2.15.15" \header { texidoc = "LilyPond does in-notes. The positioning of these notes can be above or below the staff via the paper variable @code{in note direction} and spaced via the variable @{in-note-padding}. " } \relative c' { \repeat unfold 5 { \repeat unfold 20 { a\< b c d\! } % activates the in-note \once \override FootnoteItem #'footnote = ##f \footnoteGrob #'NoteHead #'(0 . 0) "" \markup { \box \fill-line { "this is a test this is a test" } } a b c d \repeat unfold 20 { a b c d } \autoFootnoteGrob #'NoteHead #'(-1 . 1) "foo bar foo bar" a b c d \repeat unfold 20 { a\< b c d\! } } } Description: Sketch for in-notes. Please review this at http://codereview.appspot.com/5293053/ Affected files: M lily/constrained-breaking.cc M lily/include/constrained-breaking.hh M lily/include/page-breaking.hh M lily/include/page-layout-problem.hh M lily/include/system.hh M lily/page-breaking.cc M lily/page-layout-problem.cc M lily/page-spacing.cc M lily/system.cc M scm/define-grob-interfaces.scm M scm/define-grob-properties.scm M scm/define-grobs.scm M scm/paper-system.scm _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel