[Top][All Lists]

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

Unpredictable insertions of superfluous extra space between lines of lyr

From: Connor Harris
Subject: Unpredictable insertions of superfluous extra space between lines of lyrics
Date: Mon, 1 May 2023 20:19:22 -0400

I've discovered a bizarre bug (originally in LilyPond 2.22.1, confirmed in
all versions up through 2.23.13 with reason to suspect that the underlying
issue may still exist in later versions) with vertical spacing of lyrics.
Under very specific, seemingly unpredictable conditions, LilyPond inserts
several lines of extra space between two lines of lyrics attached to the
same staff. See the below example, which (for reasons I'll discuss later)
is about as minimal as I can get it. It's edited down from an engraving of
the German folk song "Hoch auf dem gelben Wagen" that I was working on when
I discovered it:

\version "2.22.1"

#(set-global-staff-size 18)

music = \relative c' {
  \key f \major
  \time 4/4
  c4 f8 g a4 c | a4( g) f r |
  c4 f8 g a4 g | f2. r4 |
  c4 f8 g a4 c8 c  | \break a4( g) f4 r4

verseOne = \lyricmode {
  Hoch auf dem gel -- ben Wa -- gen
  sitz’ ich beim Schwa -- ger vorn.
  Vor -- wärts die Ros -- se _ tra -- ben;

verseTwo = \lyricmode {
  Po -- stil -- lion an der Schen -- ke
  füt -- tert die Ros -- se~im Flug.
  Schäu -- men -- de Ger -- sten -- ge -- trän -- ke

\score {
  \new Staff { \music }
  \addlyrics {\verseOne}
  \addlyrics {\verseTwo}

What makes this bug bizarre, and why this example had to be so long, is
that any number of tweaks, some of them only affecting a single note or
character in the lyrics, will eliminate the excessive vertical spacing (but
seemingly similar-looking tweaks won't). For instance, these changes fix
the lyrics spacing:

- Eliminating the forced break after measure 5. (This is where a line break
naturally fell in my first engraving of the whole song, and why I
discovered the bug in the first place.)
- Adding another forced break anywhere before bar 5.
- Changing the time signature to 2/4, leaving the note durations unchanged.
- Changing the H in "Hoch", or the S in "Schenke" and "Schäumende", to
lowercase (but not the P in "Postillion" or the W in "Wagen").
- Changing the elision in "Ros -- se~im" to one word: "Ros -- seim"
- Eliminating the curved apostrophe after "sitz"
- Changing the g in "gelben" to uppercase (but not the first letters of
several other lowercase words, such as "füttert"
- Changing "dem", the third word in the first verse, to "den"
- Changing the last note of the first measure (C5) to anything on or below
the third line (that is, B4 or below). Raising instead of lowering that
note leaves the space unaffected, as does changing other notes: for
instance, changing that C5 to D5, or changing the preceding A4 to G4, leave
the extra space unaffected

I've tried to replicate this bug with several LilyPond versions and
produced it in all versions up to 2.23.13; it doesn't seem to affect
2.23.14 and beyond. I considered it worth reporting nevertheless, because
it seems so exquisitely context-dependent that even if my example doesn't
exhibit it in later LilyPond versions, this may be due to other changes in
LilyPond internals, not because the underlying problem in lyric spacing has
been fixed.

One final comment: I initially discovered this bug with three lines of
lyrics, and it only affected the spacing between the second and the third;
the first and second lines were spaced as they should be.

Connor Harris

reply via email to

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