LilyPond snippets: Ancient notation

# Ancient notation

Ancient notation

## Ajout d’une basse chiffrée au-dessus ou au-dessous des notes

Une ligne de basse chiffrée peut se positionner au-dessus ou en dessous d’une partie de basse, grâce à la propriété `BassFigureAlignmentPositioning.direction` attachée à un contexte `Staff`. Les possibilités sont `#UP` (ou `#1`) pour au-dessus, `#CENTER` (ou `#0`) pour centrée, et `#DOWN` (ou `#-1`) pour en dessous.

Cette propriété peut être sujette à modification au cours de la partition. Il vous faudra insérer un `\once \override` si ce changement devait être temporaire.

    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
      >>
    }

## Gravure de musique ancienne

Voici comment graver la plupart sinon tous les symboles que LilyPond prend en charge en matière de musique ancienne.

    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
        }
      }
    }

## Exemples de notation ancienne – transcription moderne de musique grégorienne

Voici comment vous pourriez transcrire du grégorien. Pour mémoire, il n’y a en grégorien ni découpage en mesure, ni hampe ; seules sont utilisées des têtes de note blanches ou noires, ainsi que des signes spécifiques permettant d’indiquer des silences de différentes durées.

    \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
      >>
    }

## Métrique ancienne

La métrique peut s’imprimer dans un style ancien.

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

## Notation pour psalmodie

Ce style de notation permet d’indiquer la mélodie d’une psalmodie lorsque les strophes sont de longueur inégale.

    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
      }
    }

## Guidons

Les guidons peuvent adopter différents 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

Dans le cadre de la transcription de musique mensurale, un « incipit » en début de pièce permet d’indiquer tonalité et tempo originaux. Si les musiciens sont aujourd’hui habitués aux barres de mesure qui mettent en évidence la structure rythmique, elles n’étaient pas courantes à l’époque – le mètre variait souvent après quelques notes. Dans une forme de compromis, les barres de mesures sont régulièrement imprimées entre les portées.

    %% 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
      }
    }

## Présentation à l’ancienne (barres de mesure entre les portées)

En musique mensurale, les barres de mesure ne traversent pas les portées. Pour obtenir ce résultat il faudra définir `measureBarType` à `"-span|"` et utiliser un regroupement de portées permettant l’extension des barres entre les portées, tel un `StaffGroup`.

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

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

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

## Styles de silences

Les silences peuvent être gravés selon différents 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
    }

## Recours aux balises pour produire une partition ancienne et moderne à partir de la même source

Grâce aux balises (tags), il est possible d’utiliser une même source pour produire une partition de musique mensurale et moderne. Dans cet exemple est créée la fonction `menrest` qui permettra de positionner les silence comme dans la version originale, tout en respectant leur position sur une portée standard. Les balises permettent aussi de gérer d’autres différenciations selon les besoins, comme des « mesures de silence » (R1, R\breve, etc.) en notation moderne mais des silences normaux (r1, r\breve, etc.) en notation ancienne. L’action de convertir de la musique mensurale en version moderne est communément appelée « 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
        >>
      }
    }

## Articulation baroque en forme de coche

On trouve régulièrement, en musique baroque, cette courte ligne verticale. Sa signification peut varier, mais elle indique le plus souvent une note plus « appuyée ». Voici comment générer ce signe particulier.

    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 — Morceaux choisis v2.24.4 (branche stable).