Jump to content

Custom clef and incipit spacing for Gregorian chant

From LilyPond wiki
Revision as of 17:15, 7 November 2025 by Lemzwerg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

In LilyPond 2.24.4, you may want to reduce the horizontal space after a Gregorian clef. You can do this with \override Staff.Clef.space-alist.first-note = #'(minimum-fixed-space . [insert your preferred spacing]). Note: LilyPond 2.25 features improved spacing for extra-slim clefs.

And if your incipit has a four-line staff, but your music uses a modern five-line staff, you may want to add some white space between the incipit and the modern staff. You can do this with \stopStaff and \hideNotes.

\version "2.24.4"

incipitMusic = \relative c {
  \override Staff.StaffSymbol.line-count = #4
  \clef "vaticana-do3"
  \override NoteHead.style = #'vaticana.punctum
  c1

  % The following line helps with spacing between the first two neumes:
  \hideNotes c \unHideNotes

  e

  % The following line helps with spacing between the second neume
  % and the end of the visible four-line staff:
  \hideNotes e \unHideNotes

  % The following line effectively prints white space between
  % the incipit and the modern five-line staff:
  \stopStaff \hideNotes g a
}

ictus = #(make-articulation 'ictus)

chant = \relative c' {
  \cadenzaOn
  c4 e g\ictus a g2
}

verba = \lyricmode {
  Sál -- ve, Re -- gí --  na,
}

\score {
  \new Staff \with {
    \incipit \incipitMusic
    instrumentName = ""
  } <<
    \new Voice = "melody" \chant
    \new Lyrics = "text" \lyricsto melody \verba
  >>

  \layout {
    \context {
      \MensuralStaff
      \remove Time_signature_engraver
      
      % The following line reduces the horizontal space between
      % the "vaticana-do3" clef and the first neume (c1):
      \override Clef.space-alist.first-note
        = #'(minimum-fixed-space . 1.0)
    }
    \context {
      \Staff
      \remove Time_signature_engraver
    }
    \context {
      \Voice
      \remove Stem_engraver
    }
  }
}