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={ \clefbass g4b,cd ed8cd2 } continuo=\figuremode{ <_>4<6>4<5/>4 \overrideStaff.BassFigureAlignmentPositioning.direction=#UP %\bassFigureStaffAlignmentUp <_+>4<6> \setStaff.useBassFigureExtenders=##t \overrideStaff.BassFigureAlignmentPositioning.direction=#DOWN %\bassFigureStaffAlignmentDown <4>4.<4>8<_+>4 } \score{ << \newStaff=bassStaff\bass \contextStaff=bassStaff\continuo >> }
Ancient fonts
Shown here are many of the symbols that are included in LilyPond’s ancient notation.
upperStaff=\newVaticanaStaff="upperStaff"<< \contextVaticanaVoice<< \transposecc{ \overrideNoteHead.style=#'vaticana.punctum \keyes\major \clef"vaticana-fa2" c1desefges \overrideNoteHead.style=#'vaticana.inclinatum a!bces' \bar"|" \overrideNoteHead.style=#'vaticana.quilisma b!des'!ges!fes! \breathe \clef"vaticana-fa1" \overrideNoteHead.style=#'vaticana.plica esd \overrideNoteHead.style=#'vaticana.reverse.plica cd \bar"|" \overrideNoteHead.style=#'vaticana.punctum.cavum esf \overrideNoteHead.style=#'vaticana.lpes gas \overrideNoteHead.style=#'vaticana.upes besas \overrideNoteHead.style=#'vaticana.vupes gf \overrideNoteHead.style=#'vaticana.linea.punctum \once\overrideStaff.BarLine.bar-extent=#'(-1.1)\bar"|" esd \overrideNoteHead.style=#'vaticana.epiphonus cd \overrideNoteHead.style=#'vaticana.cephalicus esf \setStaff.alterationGlyphs= #alteration-medicaea-glyph-name-alist \overrideStaff.Custos.style=#'medicaea \overrideNoteHead.style=#'medicaea.punctum \clef"medicaea-fa2" cesdes \bar"|" e!f!ges \clef"medicaea-do2" \overrideNoteHead.style=#'medicaea.inclinatum a!b!ces' \overrideNoteHead.style=#'medicaea.virga b!a! \bar"|" gesfes \clef"medicaea-fa1" \overrideNoteHead.style=#'medicaea.rvirga edesces \setStaff.alterationGlyphs= #alteration-hufnagel-glyph-name-alist \overrideStaff.Custos.style=#'hufnagel \overrideNoteHead.style=#'hufnagel.punctum \clef"hufnagel-fa2" cesdeses \bar"|" fesges \clef"hufnagel-do2" \overrideNoteHead.style=#'hufnagel.lpes as!bes!ces' \overrideNoteHead.style=#'hufnagel.virga bes!as! \bar"|" ges!fes! \clef"hufnagel-do-fa" \overrideNoteHead.style=#'hufnagel.punctum es!descesdes!es!fes! \bar"||" s32*1 } >> >> lowerStaff=\newMensuralStaff="lowerStaff"<< \contextMensuralVoice<< \transposecc{ \keya\major cis'1d'\brevegis'\brevee'\breve\[e'\longafis'\longa\] \setStaff.forceClef=##t \clef"neomensural-c2" cis1 \bar"|" \[g\brevedis''\longa\] b\breve\[a\longad\longa\] \clef"petrucci-c2" fis1ces1 \clef"petrucci-c2" r\longa \setStaff.forceClef=##t \clef"mensural-c2" r\breve \bar"|" r2 \clef"mensural-g" r4r8r16r16 \overrideNoteHead.style=#'mensural \overrideRest.style=#'mensural \clef"petrucci-f" c8b,c16b,c32b,c64b,c64b, d8ed16ed32ed64ed64e r\longa \setStaff.forceClef=##t \clef"petrucci-f" r\breve \bar"|" r\breve \clef"mensural-f" r2r4r8r16r16 \setStaff.forceClef=##t \clef"mensural-f" e\brevefga1 \clef"mensural-g" \[bes'!\longaa'!\longac''!\longa\] e'1d'c'd'\bar"|" \bar"|" bes'!\longafis'!1as'!1ges'!\longa% lig \setStaff.forceClef=##t \clef"mensural-g" e'2d'c'\bar"|" \setStaff.forceClef=##t \clef"petrucci-g" c'2d'e'f' \clef"petrucci-g" g'as'!bes'!cis''! bes'!as'!gis'!fis'! \setStaff.forceClef=##t \clef"mensural-g" es'!des'!cis'!1\bar"||" } >> >> \paper{ line-thickness=#(/staff-space5.0) } \score{ << \upperStaff \lowerStaff >> \layout{ indent=0.0 \context{ \Score timing=##f } \context{ \MensuralVoice \overrideNoteHead.style=#'neomensural \overrideRest.style=#'neomensural \overrideFlag.style=#'mensural \overrideStem.thickness=#1.0 } \context{ \MensuralStaff \revertBarLine.transparent alterationGlyphs= #alteration-mensural-glyph-name-alist clefGlyph=#"clefs.petrucci.c2" } \context{ \VaticanaStaff \revertBarLine.transparent \overrideStaffSymbol.thickness=#2.0 alterationGlyphs= #alteration-vaticana-glyph-name-alist \overrideCustos.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=\relativec'{ \setScore.timing=##f f4a2\divisioMinima g4ba2f2\divisioMaior g4(f)f(g)a2\finalis } verba=\lyricmode{ Lo--remip--sumdo--lorsita--met } \score{ \newGregorianTranscriptionStaff<< \newGregorianTranscriptionVoice="melody"\chant \newGregorianTranscriptionLyrics="one"\lyricstomelody\verba >> }
Ancient time signatures
Time signatures may also be engraved in an old style.
{ \overrideStaff.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=\hideStaff.Stem stemOn=\undo\stemOff \score{ \newStaff\with{\remove"Time_signature_engraver"} { \keyg\minor \cadenzaOn \stemOffa'\brevebes'4g'4 \stemOna'2\section \stemOffa'\breveg'4a'4 \stemOnf'2\section \stemOffa'\breve^\markup{\italicflexe} \stemOng'2\fine } }
Custodes
Custodes may be engraved in various styles.
\layout{ragged-right=##t} \newStaff\with{\consists"Custos_engraver"}\relativec'{ \overrideStaff.Custos.neutral-position=#4 \overrideStaff.Custos.style=#'hufnagel c1^"hufnagel"\break <da'f'>1 \overrideStaff.Custos.style=#'medicaea c1^"medicaea"\break <da'f'>1 \overrideStaff.Custos.style=#'vaticana c1^"vaticana"\break <da'f'>1 \overrideStaff.Custos.style=#'mensural c1^"mensural"\break <da'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={ \setScore.skipBars=##t \keyg\major \time4/4 % the actual music \skip1*8 % let finis bar go through all staves \overrideStaff.BarLine.transparent=##f % finis bar \bar"|." } discantusIncipit={ \clef"neomensural-c1" \keyf\major \time2/2 c''1. } discantusNotes={ \transposec'c''{ \clef"treble" d'2.d'4| be'd'2| c'4e'4.(d'8c'b| a4)ba2| b4.(c'8d'4)c'4| \once\hideNoteHead c'1| b\breve| } } discantusLyrics=\lyricmode{ Ju--bi--la--teDe--o, om--nister--ra,__om- "..." -us. } altusIncipit={ \clef"neomensural-c3" \keyf\major \time2/2 r1f'1. } altusNotes={ \transposec'c''{ \clef"treble" r2g2.e4fisg| a2g4e| fisg4.(fis16efis4)| g1| \once\hideNoteHead g1| g\breve| } } altusLyrics=\lyricmode{ Ju--bi--la--te De--o,om--nister--ra, "..." -us. } tenorIncipit={ \clef"neomensural-c4" \keyf\major \time2/2 r\longa r\breve r1c'1. } tenorNotes={ \transposec'c'{ \clef"treble_8" R1| R1| R1| % two measures r2d'2.d'4be'| \once\hideNoteHead e'1| d'\breve| } } tenorLyrics=\lyricmode{ Ju--bi--la--te "..." -us. } bassusIncipit={ \clef"mensural-f" \keyf\major \time2/2 r\maxima f1. } bassusNotes={ \transposec'c'{ \clef"bass" R1| R1| R1| R1| g2.e4| \once\hideNoteHead e1| g\breve| } } bassusLyrics=\lyricmode{ Ju--bi- "..." -us. } \score{ << \newStaffGroup=choirStaff<< \newVoice="discantusNotes"<< \setStaff.instrumentName="Discantus" \incipit\discantusIncipit \global \discantusNotes >> \newLyrics\lyricstodiscantusNotes{\discantusLyrics} \newVoice="altusNotes"<< \setStaff.instrumentName="Altus" \global \incipit\altusIncipit \altusNotes >> \newLyrics\lyricstoaltusNotes{\altusLyrics} \newVoice="tenorNotes"<< \setStaff.instrumentName="Tenor" \global \incipit\tenorIncipit \tenorNotes >> \newLyrics\lyricstotenorNotes{\tenorLyrics} \newVoice="bassusNotes"<< \setStaff.instrumentName="Bassus" \global \incipit\bassusIncipit \bassusNotes >> \newLyrics\lyricstobassusNotes{\bassusLyrics} >> >> \layout{ \context{ \Score %% no bar lines in staves or lyrics \hideBarLine } %% 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 \hideSlur %% 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=\fixedc''{ c1 d2\sectione2 f1\fine } \newStaffGroup<< \newStaff\music \newStaff\music >>
Rest styles
Rests may be used in various styles.
\newStaff\relativec{ \omitScore.TimeSignature \cadenzaOn \overrideStaff.Rest.style=#'mensural r\maxima^\markup\typewriter{mensural} r\longar\brever1r2r4r8r16s32s64s128s128 \bar"" \break \overrideStaff.Rest.style=#'neomensural r\maxima^\markup\typewriter{neomensural} r\longar\brever1r2r4r8r16s32s64s128s128 \bar"" \break \overrideStaff.Rest.style=#'classical r\maxima^\markup\typewriter{classical} r\longar\brever1r2r4r8r16r32r64r128s128 \bar"" \break \overrideStaff.Rest.style=#'z r\maxima^\markup\typewriter{z-style} r\longar\brever1r2r4r8r16r32r64r128s128 \bar"" \break \overrideStaff.Rest.style=#'default r\maxima^\markup\typewriter{default} r\longar\brever1r2r4r8r16r32r64r128s128 }
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'RestEventnote) \tag#'mod$(make-music'RestEventnote'pitch'()) #}) MenStyle={ \autoBeamOff \overrideNoteHead.style=#'petrucci \overrideScore.BarNumber.transparent=##t \overrideStem.neutral-direction=#up } finalis=\section Music=\relativec''{ \setScore.tempoHideNote=##t \keyf\major \time4/4 g1d'2\menrestbes4bes2a2r4g4fis2. \finalis } MenLyr=\lyricmode{Sofarre,deerelife,dearelife} ModLyr=\lyricmode{Sofar,dearlife,dearlife} \score{ \keepWithTag#'mens{ << \newMensuralStaff { \newMensuralVoice=Cantus \clef"mensural-c1"\MenStyle\Music } \newLyrics\lyricstoCantus\MenLyr >> } } \score{ \keepWithTag#'mod{ \newChoirStaff<< \newStaff { \newVoice=Sop\with{ \remove"Note_heads_engraver" \consists"Completion_heads_engraver" \remove"Rest_engraver" \consists"Completion_rest_engraver"} { \shiftDurations#1#0{\autoBeamOff\Music} } } \newLyrics\lyricstoSop\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= \tweakstencil #(lambda(grob) (grob-interpret-markupgrob#{\markup\draw-line#'(0.1)#})) \stopped \relativec'{ a'4^\uplinea(cd')_\upline }