Jump to content

Compilation error on music overflow: Difference between revisions

From LilyPond wiki
m Replace version="2.24.0" with version="2.24" now that the LilyWiki extension supports auto-selecting the latest release in a stable series
No edit summary
Line 23: Line 23:


[[Category:Scheme]]
[[Category:Scheme]]
[[Category:Paper and layout]]
[[Category:Paper and layout]][[Category:Snippet]]

Revision as of 22:50, 21 November 2025

When you have multiple overflowing measures, the music flows off the page. This snippet forces an error when this happens by checking the width of each system and checking it against the paper width.

\version "2.24"

scorepaper = \paper { }

#(define staffcount 0)

\relative c' {
  \override Staff.StaffSymbol.after-line-breaking =
    #(lambda (grob)
       (set! staffcount (+ staffcount 1))
       (let* ((staff-width (interval-length (ly:grob-property grob 'X-extent)))
              (staff-space (ly:output-def-lookup scorepaper 'staff-space))
              (paper-width (ly:output-def-lookup scorepaper 'paper-width))
              (my-width (/ paper-width staff-space)))
         (if (> staff-width my-width)
             (ly:error "Music overflows page at staff ~a." staffcount))))
  %% uncomment this and compilation will fail, throwing a music overflow error.
  %r4 
  \repeat unfold 100 { c1 }
}