[ << Ancient notation ] | [Top][Contents][Index] | [ World music >> ] |
[ < Kievan melismata ] | [ Up: Ancient notation ] | [ Incipits > ] |
17.6 Working with ancient music – scenarios and solutions
Working with ancient music frequently involves particular tasks which differ considerably from the modern notation for which LilyPond is designed. In the rest of this section, a number of typical scenarios are outlined, with suggestions of solutions. These involve:
- how to make incipits (i.e., prefatory material to indicate what the original has looked like) to modern transcriptions of mensural music;
- how to achieve the Mensurstriche layout frequently used for modern transcriptions of polyphonic music;
- how to transcribe Gregorian chant in modern notation;
- how to generate both ancient and modern notation from the same source.
17.6.1 Incipits | ||
17.6.2 Mensurstriche layout | ||
17.6.3 Transcribing Gregorian chant | ||
17.6.4 Ancient and modern from one source |
17.6.1 Incipits
It is customary when transcribing mensural music into modern notation to place
an indication of how the initial rests and note or notes of the original version
appeared – including the original clefs. This is called an incipit. The
\incipit
command uses the indent
of the main staff to set the
width occupied by the incipit, and incipit-width
to set the width of the
incipit staff.
\score { \new Staff << \new Voice = Tenor { \set Staff.instrumentName = "Tenor" \override Staff.InstrumentName.self-alignment-X = #RIGHT \incipit { \clef "mensural-c4" \key f \major r\breve r1 c'1 } \clef "treble_8" \key f \major R1 r2 c'2 | a4. c'8 } \new Lyrics \lyricsto Tenor { Cyn -- thia your } >> \layout { indent = 5\cm incipit-width = 3\cm } }![]()
By default, LilyPond uses a ‘MensuralStaff’ context for
typesetting an incipit. Other contexts can be used by directly
writing \incipit \new contexttype …
; in this
case a ‘MensuralStaff’ wrapper is only used when it can
contain the specified context.
Known issues and warnings
Note that instrumentName must be set in the music for the incipit to be
produced. If no instrument name is required then use
\set Staff.instrumentName = ""
.
[ << Ancient notation ] | [Top][Contents][Index] | [ World music >> ] |
[ < Incipits ] | [ Up: Working with ancient music – scenarios and solutions ] | [ Transcribing Gregorian chant > ] |
17.6.2 Mensurstriche layout
Mensurstriche (‘mensuration lines’) is the accepted term for bar lines that are drawn between the staves of a system but not through the staves themselves. It is a common way to preserve the rhythmic appearance of the original, i.e., not having to break syncopated notes at bar lines, while still providing the orientation aids that bar lines give.
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 >>![]()
[ << Ancient notation ] | [Top][Contents][Index] | [ World music >> ] |
[ < Mensurstriche layout ] | [ Up: Working with ancient music – scenarios and solutions ] | [ Ancient and modern from one source > ] |
17.6.3 Transcribing Gregorian chant
Gregorian chant can be transcribed into modern notation with a number of simple tweaks.
Stems. The GregorianTranscriptionVoice
context does
not create stems. You can extend this behavior to other contexts
by removing Stem_engraver
:
\layout { … \context { \Voice \remove Stem_engraver } }
Timing. For unmetered chant, there are several alternatives.
The Time_signature_engraver can be removed from the Staff context without any negative side effects. The alternative, to make it transparent, will leave an empty space in the score, since the invisible signature will still take up space.
In many cases, \set Score.timing = ##f
will give good
results. An alternative is to use \cadenzaOn
and
\cadenzaOff
.
The predefined staff contexts for ancient music do not create
measure bar lines. You can extend this behavior to all other
contexts with \set Score.measureBarType = #'()
or to
particular staves with \set Staff.measureBarType = #'()
.
The predefined staff contexts for ancient music allow line breaks
without bar lines. You can extend this behavior to all other
contexts with \set Score.forbidBreakBetweenBarLines = ##f
or to particular staves with \set
Staff.forbidBreakBetweenBarLines = ##f
.
A common type of transcription is recitativic chant where the repeated notes are indicated with a single breve. The text to the recitation tone can be dealt with in two different ways: either set as a single, left-aligned syllable:
chant = \relative { \clef "G_8" c'\breve c4 b4 a c2 c4 \divisioMaior c\breve c4 c f, f \finalis } words = \lyricmode { \tweak self-alignment-X #LEFT "Noctem quietam et" fi -- nem per -- fec -- tum \tweak self-alignment-X #LEFT "concedat nobis Dominus" om -- ni -- po -- tens. } \score { \new GregorianTranscriptionStaff << \new GregorianTranscriptionVoice = "melody" { \chant } \new GregorianTranscriptionLyrics = "one" { \lyricsto "melody" \words } >> }![]()
This works fine, as long as the text doesn’t span a line break. If that is the case, an alternative is to add hidden notes to the score, as below.
In some transcription styles, stems are used occasionally, for
example to indicate the transition from a single-tone recitative
to a fixed melodic gesture. In these cases, one can use the
Stem_engraver
and manually \omit Stem
and
\undo \omit Stem
.
chant = \relative { \clef "G_8" \omit Stem \omit Flag c'\breve*1/16 \hide NoteHead c8 c c c c \undo \hide NoteHead \undo \omit Stem \stemUp c4 b4 a \omit Stem c2 c4 \divisioMaior c\breve*1/16 \hide NoteHead c8 c c c c c c \undo \hide NoteHead c4 c f, f \finalis } verba = \lyricmode { No -- ctem qui -- e -- tam et fi -- nem per -- fec -- tum con -- ce -- dat no -- bis Do -- mi -- nus om -- ni -- po -- tens. } \score { \new GregorianTranscriptionStaff << \new GregorianTranscriptionVoice = "melody" { \chant } \new GregorianTranscriptionLyrics = "one" { \lyricsto "melody" \verba } >> \layout { \context { \GregorianTranscriptionVoice \consists Stem_engraver } } }![]()
Another common situation is transcription of neumatic or
melismatic chants, i.e., chants with a varying number of notes
to each syllable. In this case, one would want to set the
syllable groups clearly apart, usually also the subdivisions of a
longer melisma. One way to achieve this is to use a fixed
\time
, e.g., 1/4, and let each syllable or note group fill
one of these measures, with the help of tuplets or shorter
durations. If the bar lines and all other rhythmical indications
are made transparent, and the space around the bar lines is
increased, this will give a fairly good representation in modern
notation of the original.
To avoid that syllables of different width (such as “-ri” and
“-rum”) spread the syllable note groups unevenly apart, the
X-extent
property of the LyricText
object may be
set to a fixed value. Another, more cumbersome way would be to
add the syllables as \markup
elements. If further
adjustments are necessary, this can be easily done with
s
‘notes’.
spiritus = \relative { \time 1/4 d'4 \tuplet 3/2 { f8 a g } g a a4 g f8 e d4 f8 g g8 d f g a g f4 g8 a a4 s \tuplet 3/2 { g8 f d } e f g a g4 } spirLyr = \lyricmode { \override Lyrics.LyricText.X-extent = #'(0 . 3) Spi -- ri -- _ _ tus _ Do -- mi -- ni _ re -- ple -- _ vit _ or -- _ bem _ ter -- ra -- _ rum, al -- _ _ le -- _ lu -- _ ia. } \score { \new GregorianTranscriptionStaff << \new GregorianTranscriptionVoice = "chant" { \spiritus } \new GregorianTranscriptionLyrics = "one" { \lyricsto "chant" \spirLyr } >> \layout { \context { \GregorianTranscriptionStaff measureBarType = "" \override BarLine.X-extent = #'(-1 . 1) \hide TupletNumber \hide TupletBracket } } }![]()
[ << Ancient notation ] | [Top][Contents][Index] | [ World music >> ] |
[ < Transcribing Gregorian chant ] | [ Up: Working with ancient music – scenarios and solutions ] | [ World music > ] |
17.6.4 Ancient and modern from one source
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.
The call c4.\Be c8 c\Am
is the same as c4.[ c8 c]
.
However, it suppresses warnings if it starts on a note that can’t hold
a beam but needs it anyway due to the use of
Completion_heads_engraver
.
[The slightly shortened line length of the mensural staff avoids cropping of the custos glyph while LilyPond generates clipped images.]
menrest = #(define-music-function (note) (ly:music?) #{ \tag #'mens $(make-music 'RestEvent note) \tag #'mod $(make-music 'RestEvent note 'pitch '()) #}) Be = \tag #'mod #(begin (ly:expect-warning (G_ "stem does not fit in beam")) (ly:expect-warning (G_ "beam was started here")) (make-span-event 'BeamEvent START)) Am = \tag #'mod ] MenStyle = { \override Score.BarNumber.transparent = ##t \override Stem.neutral-direction = #up \omit Slur \omit Beam } finalis = \section Music = \relative c'' { \key f \major g1 d'2 \menrest bes4 bes a2 \menrest r4 g4 fis4. fis8 fis4 fis g e f4.([ g8] a4[ g8 f] g2.\Be fis8 e\Am fis2) g\breve \finalis } MenLyr = \lyricmode { So farre, deere life, deare life, from thy bright beames ab- ſen- ted, } ModLyr = \lyricmode { So far, dear life, dear life, from your bright beams ab -- sen -- ted, __ } \score { \keepWithTag #'mens { << \new PetrucciStaff { \new PetrucciVoice = "Cantus" { \clef "petrucci-c1" \time 4/4 \MenStyle \Music } } \new Lyrics \lyricsto "Cantus" \MenLyr >> } \layout { line-width = 155\mm \context { \PetrucciVoice % No longer necessary starting with version 2.25.23. \override Flag.style = #'mensural } } } \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 { \time 2/4 \autoBeamOff \Music } } \new Lyrics \lyricsto "Sop" \ModLyr >> } \layout { line-width = 157\mm } } \paper { ragged-last = ##t } \header { tagline = ##f }![]()
[Top][Contents][Index] |