Black Mensural Notation in Lilypond 2.12
Total Page:16
File Type:pdf, Size:1020Kb
blackmensural.ly Black mensural notation in Lilypond 2.12 Lukas Pietsch, January 2011 The blackmensural.ly template is designed to support the display of historical polyphonic notation of the late medieval and early Renaissance periods, for purposes such as quoting music snippets in musicological texts and setting mensural incipits in editions of ancient music. While the focus is on getting the display right, it should generally also achieve a correct internal representation of the pitches and rhythms, such that MIDI output will come out correctly. The periods aimed at include 13th-century ars antiqua (Franconian, Petronian) notation, 14th-century ars nova and ars subtilior, and early 15th-century music written in black notation. It can also be used for later white notation; in that case it will produce a style that looks a bit more like 15th-century manuscripts than like 16th-century prints, as Lilypond's built-in mensural styles do. The template makes extensive use of embedded postscript for its customized note shapes. It is therefore currently compatible only with Lilypond’s Postscript backend, but not the SVG backend. If you need SVG output, you will need an external converter from PS or PDF to SVG. (On Linux, the Evince document viewer can “print to SVG”.) The blackmensural.ly software is released under the GNU General Public License. This documentation is released under the GNU Free Documentation License. 1. Basic usage \include "blackmensural.ly" \new BlackMensuralStaff { \mensuralTightSetting \new BlackMensuralVoice { \mensura #'((tempus . #t)(prolatio . #f)) { \clavis #'c #3 \relative c' { c\breve a1 c1 b2 c2 d\breve s\breve } \linea “|” } } } 1 The customized context types “BlackMensuralStaff” and “BlackMensuralVoice” switch off standard behaviour for beaming, accidentals and bar lines. The \mensuralTightSetting command contains settings for horizontal spacing. It should be called right after the \new BlackMensuralStaff command. The \linea command is just a wrapper around the built-in \bar command, used to make a visible bar line. 1.1. The \mensura command The \mensura command contains the core functionality for mensural notehead shapes and mensural note durations. It takes as its first parameter a Scheme “alist” containing various options, and as its second parameter the block of music to which it is to apply. The following options may be set in the first parameter: • prolatio, tempus, modus, maximodus: each of these can be set to #t (=perfect) or #f (=imperfect), defining the mensuration scheme. The default is imperfect for each. Unlike Lilypond’s built-in support for mensural time signatures, the \mensura command will actually create the appropriate time measurements and bar structures: provided that at least one of prolatio or tempus are explicitly set, it will construct bars of one breve containing the appropriate number of four, six or nine minims. If neither prolatio nor tempus are set, it will instead assume an ars antiqua mensuration with perfect modus, with a bar length of one maxima consisting of two longae of three breves each. The durations of note values from the semibreve upwards will be automatically adapted to the current mensuration (always assuming perfect durations where the mensuration allows it; context-induced imperfection and alteration must be specified manually.) • diminutio: a diminution factor expressed as an integer, e.g. 2 for diminutio duplex • sign: this option controls the display of a mensuration sign. If not set explicitly, a standard mensuration sign (circle or semicircle, with or without dot or vertical line) will be displayed provided that a tempus/prolatio bar system is being used; otherwise no sign will be displayed by default. These defaults can be overridden by specifying a sign in several different ways: • Boolean value #f: suppress display of a mensuration sign • a string containing the name of a musicglyph (e.g. “timesig.mensural32”) • an integer number, to be displayed as a proportion number • a pair of two numbers, e.g. ( 2 . 3 ), to be displayed as a proportion • an arbitrary scheme expression containing a stencil or a markup expression • color: can be set to either black or white, defining the basic color scheme. Default is black. (Divergent coloration of individual notes or note groups can be controlled with the \coloratio command; see below) 2 • unflagged_sm: controls the display of noteshapes of semiminims and below. If set to #f (the default), a semiminim (quarter note) will be displayed as a rhombic notehead in the same color as the larger notes (depending on the color setting), and with a flagged stem. If set to #t, it will be displayed in inverted color (hollow if the basic color scheme is black; black if the basic color scheme is white), but without a flag, i.e. as a quarter note in modern notation. The fusa and semifusa will be adapted accordingly. Note values below the semifusa (16th note) are not currently supported. \mensura #'((tempus . #f)(color . black)) { \clavis #'c #3 \relative c' { e\maxima d\longa c\breve b1 a2 a2 e'4 d c d8 e e1 } \linea "|" } \mensura #'((tempus . #f)(color . white )(unflagged_sm . #t)) { \clavis #'c #3 \relative c' { e\maxima d\longa c\breve b1 a2 a2 e'4 d c b8 a b1 } \linea "|" } • • foldpes: controls the display of final ascending longae in ligatures (cum perfectione). If set to #f (the default), the final longa will be displayed folded out to the right and with a right downward stem (as in classical white mensural notation). If set to #t, it will be displayed folded in to the left, above the preceding note, like a gregorian podatus neume (as used in older mensural notation). For more details, see the section on ligatures below. • parameters for assigning special note stencils to note durations: see final section, Special note shapes. 1.2. Perfection, Imperfection, Alteration, Coloration The \mensura command will always make each note fill its whole nominal duration in the given mensuration scheme: if prolatio is #t, every semibreve will have the duration of 3 minims; if tempus is #t, every breve will have the duration of three semibreves. No special commands exist to mark imperfection or alteration of individual notes. These effects can easily be specified by using Lilypond’s built-in compression factor notation, as in c\breve*2/3 (imperfected breve) or c1*2 (alterated semibreve). Dotted notes work in the same way as in modern notation (punctus additionis). I have not been able to find a good way of encoding division dots (punctus divisionis), which look just the same but do not necessarily alter the duration of the preceding note. The workaround is to use a normal dot and then cancel out its lengthening effect by means of a compression factor of 2/3, e.g.: c\breve.*2/3. \mensura #'((tempus . #t)) { \clavis #'c #3 3 \relative c' { c\breve %perfect breve b1 c1 d1.*2/3 %group of three semibreves with punct.div. e1 d c %another group of three semibreves e\breve } %perfect breve \linea "|" Coloration (as a rhythmic device) can be achieved through combining manual compression factor notation with the \coloratio command. Its syntax is: \coloratio #'red { d1*2/3 c b } Supported values for the color parameter are: 'black, 'white (or: 'hollow, 'blackhollow), 'red, 'gray, 'redhollow, 'halfblack, 'halfwhite, 'halfred, 'halfgray. The 'gray option is meant as a convenient replacement for 'red to be used in monochrome print display. The “half-” versions are rare variants needed for some rather esoteric cases (notes reduced to 5/6 of their nominal value). The \coloratio command itself changes only the display but will not affect the note durations, since the required changes are not always strictly predictable. They have to be specified manually in the same way as imperfections and alterations, by using a compression factor such as *2/3. 1.3. Clefs Lilypond’s clef glyphs in the built-in mensural styles (“mensural”, “neomensural” or “petrucci”) don’t fit in well with black mensural notation. The \clavis command offers a set of alternative clef glyphs: \clavis #'c #2 The first parameter must be #'c, #'f or #'g. The second parameter controls on which line (counted from the bottom) the clef will appear. 4 BUG: for some reason I don’t understand, the new clef glyph sometimes fails to be displayed. The built-in “Vaticana” style c and f clef glyphs are also suitable for black mensural notation. They can be used with the normal syntax: \clef “vaticana-do2” 1.4. Rests Small rests will be displayed in the built-in “mensural” style by default. For large rests (longa and maxima) it was necessary to fix Lilypond’s buggy treatment of durations: Lilypond thinks that a longa rest is always a vertical line two staff spaces long, and a maxima rest is either a vertical line of three spaces (in “mensural” style), or alternatively a set of two vertical lines of two spaces each (in “neomensural” style). This is wrong: A maxima rest is never a single line, but can consist of either two or (rarely) three parallel lines, each of which can be two or three spaces long, depending on the prevailing modus and maximodus. A single three-space line is a perfect longa rest (= 2 breves), while a two-space line is an imperfect longa rest (= 2 breves). The \mensura command will take care of most of these distinctions automatically. If an imperfect longa or maxima rest is required in a context where it would normally be perfect, this can be specified by \imperfect r\longa, or \imperfect r\maxima, respectively. It is often desirable to control for the vertical positioning of rests, for instance in a sequence of several large rests, which are typically set at alternating y-heights.