I have found my issue. Using the short vocal name got me part way there.

But I was being lazy and not using a correct partial measure. Instead I was being lazy and starting the first measure of the verse with a skip.  It seems that if the start of the measure is a skip or a rest then neither long or short vocal name will show up.

Here is a my corrected MWE and result including an initial partial measure (which is what I should have done in the first place).

\version "2.24.4"

\language "english"

\include "../../Lilypond/Functions.ly"

introChords = \chordmode {
  d2:m c | bf a:m7 | d1:m | \partial 2. q2. | \break
}

introNotes = \relative c' {
  \clef "treble" \numericTimeSignature\time 4/4
  \key d \minor
  s1 | s | a'8 bf a g f e d c | \partial 2. d2. |
}

verseChords = \chordmode {
  |
  \partial 4 s4
  d4:m s4 s4 s4 |
  d4:m s4 s4 s4 |
  c4 s4 s4 s4 |
  d2.:m s4 |
  d4:m s4 s4 s4 |
  d4:m s8 s8 s4 s4 |
  c1 |
  c2. s4 |
  c4:7 s4 s4 s4 |
  d2.:m s4 |
}

verseNotes = \relative c' {
  \clef "treble" \numericTimeSignature\time 4/4
  \key d \minor
  \partial 4 d4 |
  \repeat unfold 32 d4
}

verseOneLyrics = \lyricmode {
  \set ignoreMelismata = ##t
  \repeat unfold 32 test
}

verseTwoLyrics = \lyricmode {
  \set ignoreMelismata = ##t
  \repeat unfold 32 test
}


theScore = {
  <<
    \new ChordNames { \introChords }
    \new Staff { \introNotes }
  >>
  \repeat volta 4
  {
    <<
      \new ChordNames { \verseChords }
      \new Staff \new Voice { \verseNotes }
      \addlyrics
      {
        \set vocalName =  \markup { "Andy"}         \set shortVocalName =  \markup { "Andys" }
        \verseOneLyrics
      }
      \addlyrics
      \with { \override LyricText.color = #blue }
      {
        \set vocalName =  \markup { "Anita" }
        \set shortVocalName =  \markup { "Anitas" }
        \verseTwoLyrics
      }
    >>
  }

}

\book {
  \bookOutputName "test1"

  \score {
    {
      \theScore
    }
  }
}

Reply via email to