$Id$
%}
-\version "2.10.0"
+\version "2.19.22"
%
% Declare memorable shortcuts for special unicode characters
% that are used in chant notation.
-%
+%
% unicode 0132 (latin capital ligature IJ)
IJ = \lyricmode { IJ }
% Given some music that represents lyrics, add a prefix to the first
% lyric event.
%
-% TODO: Robustify this function. For example, this function works
-% correctly for "\versus { some lyrics }", but it barfs with a wrong type
-% argument error for e.g. "\versus some lyrics".
-%
#(define (add-prefix-to-lyrics prefix music)
- (make-music
- 'SequentialMusic
- 'elements (append
- (cons
- (let* ((elems (car (ly:music-property music 'elements)))
- (props (ly:music-mutable-properties elems))
- (events (filter (lambda (x)
- (equal? (car x) 'elements))
- props))
- (first-evt (cadar events))
- (first-syllable (ly:prob-property first-evt 'text))
- (first-duration (ly:prob-property first-evt 'duration)))
- (make-music
- 'LyricEvent
- 'duration first-duration
- 'text (string-append prefix first-syllable)))
- (cdr (ly:music-property music 'elements))))))
+ (let ((found? #f))
+ (map-some-music
+ (lambda (m)
+ (if found? m
+ (and (music-is-of-type? m 'lyric-event)
+ (begin
+ (set! (ly:music-property m 'text)
+ (string-append prefix (ly:music-property m 'text)))
+ (set! found? #t)
+ m))))
+ music)))
% Add unicode 2123 (versicle) as prefix to lyrics.
versus =
-#(define-music-function (parser location music) (ly:music?)
+#(define-music-function (music) (ly:music?)
(add-prefix-to-lyrics "℣" music))
% Add unicode 211F (response) as prefix to lyrics.
responsum =
-#(define-music-function (parser location music) (ly:music?)
+#(define-music-function (music) (ly:music?)
(add-prefix-to-lyrics "℟" music))
%
% Declare head prefix shortcuts.
%
virga =
- \once \override NoteHead #'virga = ##t
+ \once \override NoteHead.virga = ##t
stropha =
- \once \override NoteHead #'stropha = ##t
+ \once \override NoteHead.stropha = ##t
inclinatum =
- \once \override NoteHead #'inclinatum = ##t
+ \once \override NoteHead.inclinatum = ##t
auctum =
- \once \override NoteHead #'auctum = ##t
+ \once \override NoteHead.auctum = ##t
descendens =
- \once \override NoteHead #'descendens = ##t
+ \once \override NoteHead.descendens = ##t
ascendens =
- \once \override NoteHead #'ascendens = ##t
+ \once \override NoteHead.ascendens = ##t
pes =
- \once \override NoteHead #'pes-or-flexa = ##t
+ \once \override NoteHead.pes-or-flexa = ##t
flexa =
- \once \override NoteHead #'pes-or-flexa = ##t
+ \once \override NoteHead.pes-or-flexa = ##t
oriscus =
- \once \override NoteHead #'oriscus = ##t
+ \once \override NoteHead.oriscus = ##t
quilisma =
- \once \override NoteHead #'quilisma = ##t
+ \once \override NoteHead.quilisma = ##t
deminutum =
- \once \override NoteHead #'deminutum = ##t
+ \once \override NoteHead.deminutum = ##t
linea =
- \once \override NoteHead #'linea = ##t
+ \once \override NoteHead.linea = ##t
cavum =
- \once \override NoteHead #'cavum = ##t
+ \once \override NoteHead.cavum = ##t
%
% Declare divisiones shortcuts.
%
virgula = {
- \once \override BreathingSign #'text = #(make-musicglyph-markup "scripts.rcomma")
- \once \override BreathingSign #'font-size = #-2
+ \once \override BreathingSign.text = #(make-musicglyph-markup "scripts.rcomma")
+ \once \override BreathingSign.font-size = #-2
% Workaround: add padding. Correct fix would be spacing engine handle this.
- \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
+ \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+ \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
caesura = {
- \once \override BreathingSign #'text = #(make-musicglyph-markup "scripts.rvarcomma")
- \once \override BreathingSign #'font-size = #-2
+ \once \override BreathingSign.text = #(make-musicglyph-markup "scripts.rvarcomma")
+ \once \override BreathingSign.font-size = #-2
% Workaround: add padding. Correct fix would be spacing engine handle this.
- \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
+ \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+ \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
divisioMinima = {
- \once \override BreathingSign #'stencil = #ly:breathing-sign::divisio-minima
+ \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
% Workaround: add padding. Correct fix would be spacing engine handle this.
- \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
+ \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+ \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
divisioMaior = {
- \once \override BreathingSign #'stencil = #ly:breathing-sign::divisio-maior
- \once \override BreathingSign #'Y-offset = #0
+ \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
+ \once \override BreathingSign.Y-offset = #0
% Workaround: add padding. Correct fix would be spacing engine handle this.
- \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
+ \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+ \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
divisioMaxima = {
- \once \override BreathingSign #'stencil = #ly:breathing-sign::divisio-maxima
- \once \override BreathingSign #'Y-offset = #0
+ \once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
+ \once \override BreathingSign.Y-offset = #0
% Workaround: add padding. Correct fix would be spacing engine handle this.
- \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
+ \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+ \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
finalis = {
- \once \override BreathingSign #'stencil = #ly:breathing-sign::finalis
- \once \override BreathingSign #'Y-offset = #0
+ \once \override BreathingSign.stencil = #ly:breathing-sign::finalis
+ \once \override BreathingSign.Y-offset = #0
% Workaround: add padding. Correct fix would be spacing engine handle this.
- \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
+ \once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
+ \once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
ictus = #(make-articulation "ictus")
semicirculus = #(make-articulation "semicirculus")
circulus = #(make-articulation "circulus")
-episemInitium = \startTextSpan
-episemFinis = \stopTextSpan
%
% \augmentum increases the dot-count value of all note heads to which
% it is applied by one.
%
augmentum =
-#(define-music-function (parser location expr) (ly:music?)
+#(define-music-function (expr) (ly:music?)
(shift-duration-log expr 0 1))
%
#(define (make-ligature music)
(make-music 'SequentialMusic
- 'elements (append
- (cons
- (make-music 'EventChord
- 'elements (list
- (make-span-event 'LigatureEvent START)))
- (ly:music-property music 'elements))
- (list
- (make-music 'EventChord
- 'elements (list
- (make-span-event 'LigatureEvent STOP)))))))
+ 'elements (append
+ (cons
+ (make-music 'EventChord
+ 'elements (list
+ (make-span-event 'LigatureEvent START)))
+ (ly:music-property music 'elements))
+ (list
+ (make-music 'EventChord
+ 'elements (list
+ (make-span-event 'LigatureEvent STOP)))))))
ligature = #(define-music-function
- (location music) (ly:music?)
- (make-ligature music))
+ (location music) (ly:music?)
+ (make-ligature music))
%#(define (make-script x)
% (make-music 'ArticulationEvent
% 'articulation-type x))
-%
+%
%#(define (add-script m x)
% (if
% (equal? (ly:music-property m 'name) 'EventChord)
% `(define-music-function (location music) (ly:music?)
% (make-music 'SequentialMusic
% 'elements (list 'LigatureStartEvent
-% (ly:music-deep-copy ,start)
+% (ly:music-deep-copy ,start)
% music
% (ly:music-deep-copy ,stop)
-% 'LigatureStopEvent))))
+% 'LigatureStopEvent))))
%climacus = #(def-climacus-function startSequentialMusic stopSequentialMusic)
%
\layout {
indent = 0.0
- %%% TODO: should raggedright be the default?
+ %%% TODO: should ragged-right be the default?
%ragged-right = ##t
ragged-last = ##t
- %%% FIXME: line-thickness should be set here to a slightly
- %%% thicker value as the default; but we can not set it here,
- %%% since neither \staff-space nor #staff-space is yet defined
- %%% when lily comes across the following line.
- %line-thickness = \staff-space / 7.0
+ line-thickness = #(/ (ly:output-def-lookup $defaultpaper 'staff-space) 7.0)
\context {
- \VaticanaStaff
- \override StaffSymbol #'color = #red
- \override LedgerLineSpanner #'color = #red
+ \VaticanaStaff
+ \override StaffSymbol.color = #red
+ \override LedgerLineSpanner.color = #red
}
\context {
- \Score
- \remove "Bar_number_engraver"
-
- %%%
- %%% FIXME: Musicologically seen, timing should be set to #f.
- %%% Unfortunately, setting it to #f will result in no
- %%% line-breakable items being created, such that the whole
- %%% music will end up in a single line. Therefore, we
- %%% currently set it to #t, until the ligature code is fixed
- %%% to automatically insert breakable items.
- %%%
- timing = ##t
-
- %%%
- %%% FIXME: Setting barAlways to #t would fix the above
- %%% "timing = ##t" problem, but, surprisingly, it increases
- %%% the space between ligatures. Hence, we set it to #f.
- %%%
- barAlways = ##f
-
- \override SpacingSpanner #'packed-spacing = ##t
-
- %%%
- %%% TODO: Play around with the following SpacingSpanner
- %%% settings to yield better spacing between ligatures.
- %%%
- %%% FIXME: setting #'spacing-increment to a small value
- %%% causes tons of "programming error: adding reverse spring,
- %%% setting to unit" messages.
- %%%
- %\override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 4)
- %\override SpacingSpanner #'shortest-duration-space = #0
- %\override SpacingSpanner #'average-spacing-wishes = ##f
- %\override SpacingSpanner #'spacing-increment = #0.0
- %\override SpacingSpanner #'uniform-stretching = ##t
+ \Score
+ \remove "Bar_number_engraver"
+
+ %%%
+ %%% FIXME: Musicologically seen, timing should be set to #f.
+ %%% Unfortunately, setting it to #f will result in no
+ %%% line-breakable items being created, such that the whole
+ %%% music will end up in a single line. Therefore, we
+ %%% currently set it to #t, until the ligature code is fixed
+ %%% to automatically insert breakable items.
+ %%%
+ timing = ##t
+
+ %%%
+ %%% FIXME: Setting barAlways to #t would fix the above
+ %%% "timing = ##t" problem, but, surprisingly, it increases
+ %%% the space between ligatures. Hence, we set it to #f.
+ %%%
+ barAlways = ##f
+
+ \override SpacingSpanner.packed-spacing = ##t
+
+ %%%
+ %%% TODO: Play around with the following SpacingSpanner
+ %%% settings to yield better spacing between ligatures.
+ %%%
+ %%% FIXME: setting #'spacing-increment to a small value
+ %%% causes tons of "programming error: adding reverse spring,
+ %%% setting to unit" messages.
+ %%%
+ %\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/4)
+ %\override SpacingSpanner.shortest-duration-space = #0
+ %\override SpacingSpanner.average-spacing-wishes = ##f
+ %\override SpacingSpanner.spacing-increment = #0.0
+ %\override SpacingSpanner.uniform-stretching = ##t
}
}
neumeDemoLayout = \layout {
interscoreline = 1
\context {
- \Score
- \remove "Bar_number_engraver"
+ \Score
+ \remove "Bar_number_engraver"
}
\context {
- \Staff
- \remove "Clef_engraver"
- \remove "Key_engraver"
- \override StaffSymbol #'transparent = ##t
- \remove "Time_signature_engraver"
- \remove "Bar_engraver"
- \override VerticalAxisGroup #'minimum-Y-extent = ##f
+ \Staff
+ \remove "Clef_engraver"
+ \remove "Key_engraver"
+ \hide StaffSymbol
+ \remove "Time_signature_engraver"
+ \remove "Bar_engraver"
+ \override VerticalAxisGroup.staff-staff-spacing = #'()
}
\context {
- \Voice
- \remove Ligature_bracket_engraver
- \consists Vaticana_ligature_engraver
- \override NoteHead #'style = #'vaticana.punctum
- \override Stem #'transparent = ##t
+ \Voice
+ \remove "Ligature_bracket_engraver"
+ \consists "Vaticana_ligature_engraver"
+ \override NoteHead.style = #'vaticana.punctum
+ \hide Stem
}
}