4 %%%%%%%% shortcuts common for all styles of gregorian chant notation
8 % declare head prefix shortcuts
11 \once \override NoteHead #'virga = ##t
13 \once \override NoteHead #'stropha = ##t
15 \once \override NoteHead #'inclinatum = ##t
17 \once \override NoteHead #'auctum = ##t
19 \once \override NoteHead #'descendens = ##t
21 \once \override NoteHead #'ascendens = ##t
23 \once \override NoteHead #'pes-or-flexa = ##t
25 \once \override NoteHead #'pes-or-flexa = ##t
27 \once \override NoteHead #'oriscus = ##t
29 \once \override NoteHead #'quilisma = ##t
31 \once \override NoteHead #'deminutum = ##t
33 \once \override NoteHead #'linea = ##t
35 \once \override NoteHead #'cavum = ##t
38 % declare divisiones shortcuts
41 \once \override BreathingSign #'text = #(make-musicglyph-markup "scripts.rcomma")
42 \once \override BreathingSign #'font-size = #-2
44 % Workaround: add padding. Correct fix would be spacing engine handle this.
45 \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
50 \once \override BreathingSign #'text = #(make-musicglyph-markup "scripts.rvarcomma")
51 \once \override BreathingSign #'font-size = #-2
53 % Workaround: add padding. Correct fix would be spacing engine handle this.
54 \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
59 \once \override BreathingSign #'stencil = #Breathing_sign::divisio_minima
61 % Workaround: add padding. Correct fix would be spacing engine handle this.
62 \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
67 \once \override BreathingSign #'stencil = #Breathing_sign::divisio_maior
68 \once \override BreathingSign #'Y-offset = #0
70 % Workaround: add padding. Correct fix would be spacing engine handle this.
71 \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
76 \once \override BreathingSign #'stencil = #Breathing_sign::divisio_maxima
77 \once \override BreathingSign #'Y-offset = #0
79 % Workaround: add padding. Correct fix would be spacing engine handle this.
80 \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
85 \once \override BreathingSign #'stencil = #Breathing_sign::finalis
86 \once \override BreathingSign #'Y-offset = #0
88 % Workaround: add padding. Correct fix would be spacing engine handle this.
89 \once \override BreathingSign #'extra-X-extent = #'(-1.0 . 0)
95 % declare articulation shortcuts
97 accentus = #(make-articulation "accentus")
98 ictus = #(make-articulation "ictus")
99 semicirculus = #(make-articulation "semicirculus")
100 circulus = #(make-articulation "circulus")
101 episemInitium = #(make-span-event 'TextSpanEvent START)
102 episemFinis = #(make-span-event 'TextSpanEvent STOP)
105 % shortcut music functions for Liber Hymnarius neumes table
109 #(define (make-ligature music)
110 (make-music 'SequentialMusic
113 (make-music 'EventChord
115 (make-span-event 'LigatureEvent START)))
116 (ly:music-property music 'elements))
118 (make-music 'EventChord
120 (make-span-event 'LigatureEvent STOP)))))))
122 ligature = #(def-music-function
123 (location music) (ly:music?)
124 (make-ligature music))
126 %#(define (make-script x)
127 % (make-music 'ArticulationEvent
128 % 'articulation-type x))
130 %#(define (add-script m x)
132 % (equal? (ly:music-property m 'name) 'EventChord)
133 % (set! (ly:music-property m 'elements)
134 % (cons (make-script x)
135 % (ly:music-property m 'elements))))
138 %#(define (add-staccato m)
139 % (add-script m "staccato"))
141 % % \applyMusic #(lambda (x) (music-map add-staccato x)) { c c }
143 % % \climacus { x y z ... }:
144 % % \[ \virga x \inclinatum y \inclinatum z ... \]
146 %#(defmacro def-climacus-function (start stop)
147 % `(def-music-function (location music) (ly:music?)
148 % (make-music 'SequentialMusic
149 % 'elements (list 'LigatureStartEvent
150 % (ly:music-deep-copy ,start)
152 % (ly:music-deep-copy ,stop)
153 % 'LigatureStopEvent))))
154 %climacus = #(def-climacus-function startSequentialMusic stopSequentialMusic)
157 % example layout block for gregorian chant notation
160 neumeDemoLayout = \layout {
164 \remove "Bar_number_engraver"
168 \remove "Clef_engraver"
169 \remove "Key_engraver"
170 \override StaffSymbol #'transparent = ##t
171 \remove "Time_signature_engraver"
172 \remove "Bar_engraver"
173 minimumVerticalExtent = ##f
177 \remove Ligature_bracket_engraver
178 \consists Vaticana_ligature_engraver
179 \override NoteHead #'style = #'vaticana.punctum
180 \override Stem #'transparent = ##t