LilyPond snippets: Ancient notation

# Ancient notation

Ancient notation

## Adding a figured bass above or below the notes

When writing a figured bass, you can place the figures above or below the bass notes, by defining the `BassFigureAlignmentPositioning.direction` property (exclusively in a `Staff` context). Choices are `#UP` (or `#1`), `#CENTER` (or `#0`) and `#DOWN` (or `#-1`).

This property can be changed as many times as you wish. Use `\once \override` if you don’t want the override to apply to the whole score.

    bass = {
      \clef bass
      g4 b, c d
      e d8 c d2
    }

    continuo = \figuremode {
      <_>4 <6>4 <5/>4
      \override Staff.BassFigureAlignmentPositioning.direction = #UP
      %\bassFigureStaffAlignmentUp
      < _+ >4 <6>
      \set Staff.useBassFigureExtenders = ##t
      \override Staff.BassFigureAlignmentPositioning.direction = #DOWN
      %\bassFigureStaffAlignmentDown
      <4>4. <4>8 <_+>4
    }

    \score {
      <<
        \new Staff = bassStaff \bass
        \context Staff = bassStaff \continuo
      >>
    }

## Ancient fonts

Shown here are many of the symbols that are included in LilyPond’s ancient notation.

    upperStaff = \new VaticanaStaff = "upperStaff" <<
      \context VaticanaVoice <<
        \transpose c c {

          \override NoteHead.style = #'vaticana.punctum
          \key es \major
          \clef "vaticana-fa2"
          c1 des e f ges

          \override NoteHead.style = #'vaticana.inclinatum
          a! b ces'
          \bar "|"

          \override NoteHead.style = #'vaticana.quilisma
          b! des'! ges! fes!
          \breathe
          \clef "vaticana-fa1"
          \override NoteHead.style = #'vaticana.plica
          es d
          \override NoteHead.style = #'vaticana.reverse.plica
          c d
          \bar "|"

          \override NoteHead.style = #'vaticana.punctum.cavum
          es f
          \override NoteHead.style = #'vaticana.lpes
          g as
          \override NoteHead.style = #'vaticana.upes
          bes as
          \override NoteHead.style = #'vaticana.vupes
          g f
          \override NoteHead.style = #'vaticana.linea.punctum
          \once \override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|"

          es d
          \override NoteHead.style = #'vaticana.epiphonus
          c d
          \override NoteHead.style = #'vaticana.cephalicus
          es f

          \set Staff.alterationGlyphs =
            #alteration-medicaea-glyph-name-alist
          \override Staff.Custos.style = #'medicaea
          \override NoteHead.style = #'medicaea.punctum
          \clef "medicaea-fa2"
          ces des
          \bar "|"

          e! f! ges
          \clef "medicaea-do2"
          \override NoteHead.style = #'medicaea.inclinatum
          a! b! ces'
          \override NoteHead.style = #'medicaea.virga
          b! a!
          \bar "|"

          ges fes
          \clef "medicaea-fa1"
          \override NoteHead.style = #'medicaea.rvirga
          e des ces

          \set Staff.alterationGlyphs =
            #alteration-hufnagel-glyph-name-alist
          \override Staff.Custos.style = #'hufnagel
          \override NoteHead.style = #'hufnagel.punctum
          \clef "hufnagel-fa2"
          ces des es
          \bar "|"

          fes ges
          \clef "hufnagel-do2"
          \override NoteHead.style = #'hufnagel.lpes
          as! bes! ces'
          \override NoteHead.style = #'hufnagel.virga
          bes! as!
          \bar "|"

          ges! fes!
          \clef "hufnagel-do-fa"
          \override NoteHead.style = #'hufnagel.punctum
          es! des ces des! es! fes!
          \bar "||"

          s32*1
        }
      >>
    >>

    lowerStaff = \new MensuralStaff = "lowerStaff" <<
      \context MensuralVoice <<
        \transpose c c {

          \key a \major
          cis'1 d'\breve gis'\breve e'\breve \[ e'\longa fis'\longa \]
          \set Staff.forceClef = ##t
          \clef "neomensural-c2"
          cis1
          \bar "|"

          \[ g\breve dis''\longa \]
          b\breve \[ a\longa d\longa \]
          \clef "petrucci-c2"

          fis1 ces1
          \clef "petrucci-c2"
          r\longa
          \set Staff.forceClef = ##t
          \clef "mensural-c2"
          r\breve
          \bar "|"

          r2
          \clef "mensural-g"
          r4 r8 r16 r16
          \override NoteHead.style = #'mensural
          \override Rest.style = #'mensural
          \clef "petrucci-f"
          c8 b, c16 b, c32 b, c64 b, c64 b,
          d8 e d16 e d32 e d64 e d64 e
          r\longa
          \set Staff.forceClef = ##t
          \clef "petrucci-f"
          r\breve
          \bar "|"

          r\breve
          \clef "mensural-f"
          r2 r4 r8 r16 r16

          \set Staff.forceClef = ##t
          \clef "mensural-f"
          e\breve f g a1
          \clef "mensural-g"

          \[ bes'!\longa a'!\longa c''!\longa \]
          e'1 d' c' d' \bar "|"
          \bar "|"

          bes'!\longa fis'!1 as'!1 ges'!\longa % lig
          \set Staff.forceClef = ##t
          \clef "mensural-g"
          e'2 d' c' \bar "|"

          \set Staff.forceClef = ##t
          \clef "petrucci-g"
          c'2 d' e' f'
          \clef "petrucci-g"
          g' as'! bes'! cis''!
          bes'! as'! gis'! fis'!
          \set Staff.forceClef = ##t
          \clef "mensural-g"
          es'! des'! cis'!1 \bar "||"
        }
      >>
    >>

    \paper {
      line-thickness = #(/ staff-space 5.0)
    }

    \score {
      <<
        \upperStaff
        \lowerStaff
      >>
      \layout {
        indent = 0.0
        \context {
          \Score
          timing = ##f
        }
        \context {
          \MensuralVoice
          \override NoteHead.style = #'neomensural
          \override Rest.style = #'neomensural
          \override Flag.style = #'mensural
          \override Stem.thickness = #1.0
        }
        \context {
          \MensuralStaff
          \revert  BarLine.transparent
          alterationGlyphs =
            #alteration-mensural-glyph-name-alist
          clefGlyph = #"clefs.petrucci.c2"
        }
        \context {
          \VaticanaStaff
          \revert  BarLine.transparent
          \override StaffSymbol.thickness = #2.0
          alterationGlyphs =
            #alteration-vaticana-glyph-name-alist
          \override Custos.neutral-position = #4
        }
      }
    }

## Ancient notation template – modern transcription of gregorian music

This example demonstrates how to do modern transcription of Gregorian music. Gregorian music has no measure, no stems; it uses only half and quarter note heads, and special marks, indicating rests of different length.

    \include "gregorian.ly"

    chant = \relative c' {
      \set Score.timing = ##f
      f4 a2 \divisioMinima
      g4 b a2 f2 \divisioMaior
      g4( f) f( g) a2 \finalis
    }

    verba = \lyricmode {
      Lo -- rem ip -- sum do -- lor sit a -- met
    }

    \score {
      \new GregorianTranscriptionStaff <<
        \new GregorianTranscriptionVoice = "melody" \chant
        \new GregorianTranscriptionLyrics = "one" \lyricsto melody \verba
      >>
    }

## Ancient time signatures

Time signatures may also be engraved in an old style.

    {
      \override Staff.TimeSignature.style = #'neomensural
      s1
    }

## Chant or psalms notation

This form of notation is used for Psalm chant, where verses aren’t always the same length.

    stemOff = \hide Staff.Stem
    stemOn  = \undo \stemOff

    \score {
      \new Staff \with { \remove "Time_signature_engraver" }
      {
        \key g \minor
        \cadenzaOn
        \stemOff a'\breve bes'4 g'4
        \stemOn a'2 \section
        \stemOff a'\breve g'4 a'4
        \stemOn f'2 \section
        \stemOff a'\breve^\markup { \italic flexe }
        \stemOn g'2 \fine
      }
    }

## Custodes

Custodes may be engraved in various styles.

    \layout { ragged-right = ##t }

    \new Staff \with { \consists "Custos_engraver" } \relative c' {
      \override Staff.Custos.neutral-position = #4

      \override Staff.Custos.style = #'hufnagel
      c1^"hufnagel" \break
      <d a' f'>1

      \override Staff.Custos.style = #'medicaea
      c1^"medicaea" \break
      <d a' f'>1

      \override Staff.Custos.style = #'vaticana
      c1^"vaticana" \break
      <d a' f'>1

      \override Staff.Custos.style = #'mensural
      c1^"mensural" \break
      <d a' f'>1
    }

## Incipit

When transcribing mensural music, an incipit at the beginning of the piece is useful to indicate the original key and tempo. While today musicians are used to bar lines in order to faster recognize rhythmic patterns, bar lines were not yet invented during the period of mensural music; in fact, the meter often changed after every few notes. As a compromise, bar lines are often printed between the staves rather than on the staves.

    %% With 2.23. this throws:
    %% programming error: Loose column does not have right side to attach to.
    %% Likely "Hidden BarLine during note yields programming error"
    %% https://gitlab.com/lilypond/lilypond/-/issues/4084
    %%  --Harm

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % A short excerpt from the Jubilate Deo by Orlande de Lassus
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    global = {
      \set Score.skipBars = ##t
      \key g \major
      \time 4/4

      % the actual music
      \skip 1*8

      % let finis bar go through all staves
      \override Staff.BarLine.transparent = ##f

      % finis bar
      \bar "|."
    }

    discantusIncipit = {
      \clef "neomensural-c1"
      \key f \major
      \time 2/2
      c''1.
    }

    discantusNotes = {
      \transpose c' c'' {
        \clef "treble"
        d'2. d'4 |
        b e' d'2 |
        c'4 e'4.( d'8 c' b |
        a4) b a2 |
        b4.( c'8 d'4) c'4 |
        \once \hide NoteHead
        c'1 |
        b\breve |
      }
    }

    discantusLyrics = \lyricmode {
      Ju -- bi -- la -- te De -- o,
      om -- nis ter -- ra, __ om-
      "..."
      -us.
    }

    altusIncipit = {
      \clef "neomensural-c3"
      \key f \major
      \time 2/2
      r1 f'1.
    }

    altusNotes = {
      \transpose c' c'' {
        \clef "treble"
        r2 g2. e4 fis g |
        a2 g4 e |
        fis g4.( fis16 e fis4) |
        g1 |
        \once \hide NoteHead
        g1 |
        g\breve |
      }
    }

    altusLyrics = \lyricmode {
      Ju -- bi -- la -- te
      De -- o, om -- nis ter -- ra,
      "..."
      -us.
    }

    tenorIncipit = {
      \clef "neomensural-c4"
      \key f \major
      \time 2/2
      r\longa
      r\breve
      r1 c'1.
    }

    tenorNotes = {
      \transpose c' c' {
        \clef "treble_8"
        R1 |
        R1 |
        R1 |
        % two measures
        r2 d'2. d'4 b e' |
        \once \hide NoteHead
        e'1 |
        d'\breve |
      }
    }

    tenorLyrics = \lyricmode {
      Ju -- bi -- la -- te
      "..."
      -us.
    }

    bassusIncipit = {
      \clef "mensural-f"
      \key f \major
      \time 2/2
      r\maxima
      f1.
    }

    bassusNotes = {
      \transpose c' c' {
        \clef "bass"
        R1 |
        R1 |
        R1 |
        R1 |
        g2. e4 |
        \once \hide NoteHead
        e1 |
        g\breve |
      }
    }

    bassusLyrics = \lyricmode {
      Ju -- bi-
      "..."
      -us.
    }

    \score {
      <<
        \new StaffGroup = choirStaff <<
          \new Voice = "discantusNotes" <<
            \set Staff.instrumentName = "Discantus"
            \incipit \discantusIncipit
            \global
            \discantusNotes
          >>
          \new Lyrics \lyricsto discantusNotes { \discantusLyrics }
          \new Voice = "altusNotes" <<
            \set Staff.instrumentName = "Altus"
            \global
            \incipit \altusIncipit
            \altusNotes
          >>
          \new Lyrics \lyricsto altusNotes { \altusLyrics }
          \new Voice = "tenorNotes" <<
            \set Staff.instrumentName = "Tenor"
            \global
            \incipit \tenorIncipit
            \tenorNotes
          >>
          \new Lyrics \lyricsto tenorNotes { \tenorLyrics }
          \new Voice = "bassusNotes" <<
            \set Staff.instrumentName = "Bassus"
            \global
            \incipit \bassusIncipit
            \bassusNotes
          >>
          \new Lyrics \lyricsto bassusNotes { \bassusLyrics }
        >>
      >>
      \layout {
        \context {
          \Score
          %% no bar lines in staves or lyrics
          \hide BarLine
        }
        %% the next two instructions keep the lyrics between the bar lines
        \context {
          \Lyrics
          \consists "Bar_engraver"
          \consists "Separating_line_group_engraver"
        }
        \context {
          \Voice
          %% no slurs
          \hide Slur
          %% Comment in the below "\remove" command to allow line
          %% breaking also at those bar lines where a note overlaps
          %% into the next measure.  The command is commented out in this
          %% short example score, but especially for large scores, you
          %% will typically yield better line breaking and thus improve
          %% overall spacing if you comment in the following command.
          %%\remove "Forbid_line_break_engraver"
        }
        indent = 6\cm
        incipit-width = 4\cm
      }
    }

## Mensurstriche layout (bar lines between the staves)

Mensurstriche, bar lines between but not through staves, can be printed by setting `measureBarType` to `"-span|"` and using a grouping context that allows span bars, such as `StaffGroup`.

    \layout {
      \context {
        \Staff
        measureBarType = "-span|"
      }
    }

    music = \fixed c'' {
      c1
      d2 \section e2
      f1 \fine
    }

    \new StaffGroup <<
      \new Staff \music
      \new Staff \music
    >>

## Rest styles

Rests may be used in various styles.

    \new Staff \relative c {
      \omit Score.TimeSignature
      \cadenzaOn

      \override Staff.Rest.style = #'mensural
      r\maxima^\markup \typewriter { mensural }
      r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
      \bar ""
      \break

      \override Staff.Rest.style = #'neomensural
      r\maxima^\markup \typewriter { neomensural }
      r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
      \bar ""
      \break

      \override Staff.Rest.style = #'classical
      r\maxima^\markup \typewriter { classical }
      r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
      \bar ""
      \break

      \override Staff.Rest.style = #'z
      r\maxima^\markup \typewriter { z-style }
      r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
      \bar ""
      \break

      \override Staff.Rest.style = #'default
      r\maxima^\markup \typewriter { default }
      r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
    }

## Using tags to produce mensural and modern music from the same source

Using tags, it is possible to produce both mensural and modern notation from the same music. In this snippet, a function `menrest` is introduced, allowing mensural rests to be pitched as in the original, but with modern rests in the standard staff position. Tags can also be used where other differences are needed: for example using “whole measure rests” (`R1`, `R\breve`, etc.) in modern music, but normal rests (`r1`, `r\breve`, etc.) in the mensural version. Converting mensural music to its modern equivalent is usually referred to as “transcription”.

    menrest = #(define-music-function (note)
      (ly:music?)
    #{
        \tag #'mens $(make-music 'RestEvent note)
        \tag #'mod $(make-music 'RestEvent note 'pitch '())
    #})

    MenStyle = {
      \autoBeamOff
      \override NoteHead.style = #'petrucci
      \override Score.BarNumber.transparent = ##t
      \override Stem.neutral-direction = #up
    }

    finalis = \section

    Music = \relative c'' {
      \set Score.tempoHideNote = ##t
      \key f \major
      \time 4/4
      g1 d'2 \menrest bes4 bes2 a2 r4 g4 fis2.
      \finalis
    }

    MenLyr = \lyricmode { So farre, deere life, deare life }
    ModLyr = \lyricmode { So far, dear life, dear life }

    \score {
      \keepWithTag #'mens {
        <<
          \new MensuralStaff
          {
            \new MensuralVoice = Cantus
              \clef "mensural-c1" \MenStyle \Music
          }
          \new Lyrics \lyricsto Cantus \MenLyr
        >>
      }
    }

    \score {
      \keepWithTag #'mod {
        \new ChoirStaff <<
          \new Staff
          {
            \new Voice = Sop \with {
              \remove "Note_heads_engraver"
              \consists "Completion_heads_engraver"
              \remove "Rest_engraver"
              \consists "Completion_rest_engraver" }
            {
              \shiftDurations #1 #0 { \autoBeamOff \Music }
            }
          }
          \new Lyrics \lyricsto Sop \ModLyr
        >>
      }
    }

## Vertical line as a baroque articulation mark

This short vertical line placed above the note is commonly used in baroque music. Its meaning can vary, but generally indicates notes that should be played with more “weight”. The following example demonstrates how to achieve such a notation.

    upline =
    \tweak stencil
      #(lambda (grob)
        (grob-interpret-markup grob #{ \markup \draw-line #'(0 . 1) #}))
      \stopped

    \relative c' {
      a'4^\upline a( c d')_\upline
    }

#### LilyPond — Snippets v2.24.4 (stable-branch).