3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8 #(use-modules (srfi srfi-1))
9 #(define* (has-some-member? list1 list2 #:key (test eqv?))
10 "Return a true value iif there exists an element of list1 that also
11 belongs to list2 under test."
14 (or (member (car list1) list2 test)
15 (has-some-member? (cdr list1) list2 #:test test))))
17 #(define (symbol-or-symbols? x)
21 (and (list? x) (every symbol? x))))
24 #(define-music-function (parser location tags music)
25 (symbol-or-symbols? ly:music?)
29 (let ((m.tags (ly:music-property m 'tags)))
31 (or (null? m.tags) (memq tags m.tags)))
35 (or (null? m.tags) (has-some-member? tags m.tags)))
41 #(define-music-function (parser location tags arg)
42 (symbol-or-symbols? ly:music?)
43 "Add @var{tags} (a single tag or a list of tags) to the @code{tags}
44 property of @var{arg}."
45 (set! (ly:music-property arg 'tags)
47 (cons tags (ly:music-property arg 'tags))
48 (append tags (ly:music-property arg 'tags))))
51 %%% Music binding construct
54 #(define-music-function (parser location sym music) (symbol? ly:music?)
55 (ly:parser-define! parser sym music)
56 (make-music 'Music 'void #t))
58 %%% Two voices construct
60 #(define-music-function (parser location tags music)
63 \\twoVoices #'(flauto1 flauto2 flauti) <<
66 { optional-common-music }
70 \\tag #'(flauto1 flauti) \\new Voice {
71 \\tag #'flauti \\voiceOne
74 \\tag #'(flauto2 flauti) \\new Voice {
75 \\tag #'flauti \\voiceTwo
78 { optional-common-music }
82 \\keepWithTag #'flauto1 <this-music> for flauto1 alone
83 \\keepWithTag #'flauto2 <this-music> for flauto2 alone
84 \\keepWithTag #'flauti <this-music> for flauto1 & flauto2
86 (let ((tag1 (car tags))
88 (tag-all (caddr tags))
89 (music1 (car (ly:music-property music 'elements)))
90 (music2 (cadr (ly:music-property music 'elements)))
91 (rest-music (make-music
93 'elements (cddr (ly:music-property music 'elements)))))
95 \tag #(list tag1 tag-all) \new Voice {
96 \tag #tag-all \voiceOne $music1
98 \tag #(list tag2 tag-all) \new Voice {
99 \tag #tag-all \voiceTwo $music2
101 \tag #(list tag1 tag2 tag-all) $rest-music
104 %% Force clef printing, with full size
106 \set Staff.forceClef = ##t
107 \override Staff.Clef #'full-size-change = ##t
110 %% Print clef in full size
111 fullClef = \override Staff.Clef #'full-size-change = ##t
113 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115 %%% Repeat with alternatives
118 forceCloseVoltaBracket = {
119 \once \override Score.VoltaBracket #'stencil =
121 (let* ((volta (ly:volta-bracket-interface::print grob))
122 (edge-heights (ly:grob-property grob 'edge-height))
123 (height (if (pair? edge-heights)
126 (thickness (* (ly:grob-property grob 'thickness 1.6)
127 (ly:staff-symbol-line-thickness grob))))
128 (ly:stencil-combine-at-edge
130 (make-line-stencil thickness 0 0 0 (- height))
132 \once \override Score.VoltaBracket #'edge-height = #'(1.5 . 1.5)
136 #(define-music-function (parser location first second) (ly:music? ly:music?)
137 (if (eqv? #t (ly:get-option 'baroque-repeats))
138 (let ((repeat-bar (if (string? (ly:get-option 'baroque-repeat-bar))
139 (ly:get-option 'baroque-repeat-bar)
141 #{ \forceCloseVoltaBracket
142 \set Score.repeatCommands = #'((volta " "))
143 $first \bar $repeat-bar \noBreak
144 << $second >> <<{ s4*0 \set Score.repeatCommands = #'((volta #f)) } >> #})
145 #{ \set Score.repeatCommands = #'((volta "1."))
147 \set Score.repeatCommands = #'((volta #f) (volta "2.") end-repeat)
149 \set Score.repeatCommands = #'((volta #f)) #}))
152 #(define-music-function (parser location first second) (ly:music? ly:music?)
153 (let ((repeat-bar (if (string? (ly:get-option 'baroque-repeat-bar))
154 (ly:get-option 'baroque-repeat-bar)
156 #{ \forceCloseVoltaBracket
157 \set Score.repeatCommands = #'((volta " "))
158 $first \bar $repeat-bar \noBreak
159 << $second >> <<{ s4*0 \set Score.repeatCommands = #'((volta #f)) } >> #}))
162 #(define-music-function (parser location first second) (ly:music? ly:music?)
163 #{ \set Score.repeatCommands = #'((volta "1."))
166 \set Score.repeatCommands = #'((volta #f) (volta "2."))
168 \set Score.repeatCommands = #'((volta #f)) #})
170 %% Alternatives only on one staff
173 \new Voice \with { \alternativeLayout } {
174 re'2.*1/2\startGroup fad'4*1/2 \fakeBar
178 alternativeLayout = \with {
179 \consists "Horizontal_bracket_engraver"
180 \override HorizontalBracket #'bracket-flare = #'(0 . 0)
181 \override HorizontalBracket #'direction = #UP
184 \once\override BreathingSign #'text = \markup \draw-line #'(0 . 4)
185 \once\override BreathingSign #'Y-offset = #-2
189 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
192 \override Script #'transparent = ##t
193 \override TextScript #'transparent = ##t
194 \override Tie #'transparent = ##t
195 \override Slur #'transparent = ##t
196 \override MultiMeasureRest #'transparent = ##t
197 \override AccidentalCautionary #'transparent = ##t
198 \override AccidentalSuggestion #'transparent = ##t
203 \revert Script #'transparent
204 \revert TextScript #'transparent
205 \revert Tie #'transparent
206 \revert Slur #'transparent
207 \revert MultiMeasureRest #'transparent
208 \revert AccidentalCautionary #'transparent
209 \revert AccidentalSuggestion #'transparent
217 #(define-music-function (parser location music) (ly:music?)
218 (let ((first-note #f)
221 ;; count the notes, and get first and last ones.
224 (if (eqv? (ly:music-property event 'name) 'NoteEvent)
227 (set! last-note event)
228 (set! first-note event))
229 (set! note-count (1+ note-count))))
232 ;; Add [ and ] beaming directive to the first and last note
235 (set! (ly:music-property first-note 'articulations)
236 (cons (make-music 'BeamEvent 'span-direction -1)
237 (ly:music-property first-note 'articulations)))
238 (set! (ly:music-property last-note 'articulations)
239 (cons (make-music 'BeamEvent 'span-direction 1)
240 (ly:music-property last-note 'articulations)))))
241 ;; If there are 3 notes, add a *2/3 duration factor
245 (if (eqv? (ly:music-property event 'name) 'NoteEvent)
246 (let* ((duration (ly:music-property event 'duration))
247 (dot-count (ly:duration-dot-count duration))
248 (log (ly:duration-log duration)))
249 (set! (ly:music-property event 'duration)
250 (ly:make-duration log dot-count 2 3))))
254 \override Voice.NoteHead.font-size = #-3
255 \override Voice.Flag.font-size = #-3
256 \override Voice.Dots.font-size = #-3
257 \override Voice.Stem.font-size = #-3
258 \override Voice.Stem.length-fraction = #0.8
259 \override Voice.Beam.beam-thickness = #0.384
260 \override Voice.Beam.length-fraction = #0.8
261 \override Voice.Accidental.font-size = #-4
262 \override Voice.AccidentalCautionary.font-size = #-4
264 \revert Voice.NoteHead.font-size
265 \revert Voice.Flag.font-size
266 \revert Voice.Dots.font-size
267 \revert Voice.Stem.font-size
268 \revert Voice.Stem.length-fraction
269 \revert Voice.Beam.beam-thickness
270 \revert Voice.Beam.length-fraction
271 \revert Voice.Accidental.font-size
272 \revert Voice.AccidentalCautionary.font-size
276 #(define-music-function (parser location music) (ly:music?)
278 \override Rest.font-size = #-3
279 \override NoteHead.font-size = #-3
280 \override Flag.font-size = #-3
281 \override Dots.font-size = #-3
282 \override Stem.font-size = #-3
283 \override Stem.length-fraction = #0.8
284 \override Beam.beam-thickness = #0.384
285 \override Beam.length-fraction = #0.8
286 \override Accidental.font-size = #-4
287 \override AccidentalCautionary.font-size = #-4
289 \revert Rest.font-size
290 \revert NoteHead.font-size
291 \revert Flag.font-size
292 \revert Dots.font-size
293 \revert Stem.font-size
294 \revert Stem.length-fraction
295 \revert Beam.beam-thickness
296 \revert Beam.length-fraction
297 \revert Accidental.font-size
298 \revert AccidentalCautionary.font-size
301 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
303 %%% Custos note heads
307 #(define-music-function (parser location note) (ly:music?)
308 (make-music 'SequentialMusic
310 \once \override Voice.NoteHead #'stencil = #ly:text-interface::print
311 \once \override Voice.NoteHead #'text =
312 #(markup #:null #:raise 0.0 #:musicglyph "custodes.mensural.u0")
313 \once \override Voice.Flag #'stencil = ##f
314 \once \override Voice.Stem #'stencil = ##f #}
318 %%% Note formatting tweaks
322 #(define-music-function (parser location length music) (number? ly:music?)
324 \override Voice.Stem #'details = #`((lengths . (,length))
325 (beamed-lengths . (,(- length 1.0)))
326 (beamed-minimum-free-lengths . (,(- length 1.0)))
327 (beamed-extreme-minimum-free-lengths . (,(- length 1.0)))
328 (stem-shorten . (1.0 0.5)))
330 \revert Voice.Stem #'details
333 shiftOnce = { \once \override NoteColumn #'horizontal-shift = #1 }
336 #(define-music-function (parser location amount) (number?)
337 #{ \once \override NoteHead #'X-offset = #amount
338 \once \override Stem #'X-offset = #amount
339 \once \override Beam #'X-offset = #amount #})
342 #(define-music-function (parser location amount) (number?)
343 #{ \once \override Rest #'X-offset = #amount #})
350 #(define-music-function (parser location fractions) (list?)
351 (define (make-time-sig-markup num den . rest)
353 (make-center-column-markup
354 (list (number->string num)
355 (number->string den)))
356 (make-raise-markup -1 (number->string num))))
358 (let ((time1 (apply make-time-sig-markup fractions))
359 (time2 (apply make-time-sig-markup (cddr fractions))))
361 \once \override Staff.TimeSignature #'stencil = #ly:text-interface::print
362 \once \override Staff.TimeSignature #'text =
363 \markup \override #'(baseline-skip . 0)
364 \number \line { $time1 $time2 }
367 fractionTime = \once \override Staff.TimeSignature #'style = #'numbered
368 cTime = \once \override Staff.TimeSignature #'style = #'C
369 digitTime = \once \override Staff.TimeSignature #'style = #'single-digit
372 #(define-music-function (parser location name) (markup?)
373 #{ \set Staff.instrumentName = \markup \large $name #})
376 #(define-music-function (parser location name) (markup?)
377 #{ \set Staff . instrumentName = \markup \large \smallCaps $name #})
380 #(define-music-function (parser location quater-nb-par-min) (number?)
381 #{ \set Score . tempoWholesPerMinute =
382 #(ly:make-moment (/ quater-nb-par-min 4) 1 0 1) #})
385 figExtOn = \bassFigureExtendersOn
386 figExtOff = \bassFigureExtendersOff
389 \bassFigureExtendersOn
390 \override BassFigureContinuation #'stencil = ##f
391 \override Staff.BassFigureContinuation #'stencil = ##f
394 \bassFigureExtendersOff
395 \revert BassFigureContinuation #'stencil
396 \revert Staff.BassFigureContinuation #'stencil
401 #(define-markup-command (triangle-up layout props a b c) (markup? markup? markup?)
402 (let ((base (interpret-markup layout props (markup #:tiny #:line (#:number b #:number c))))
403 (top (interpret-markup layout props (markup #:tiny #:number a))))
404 (let* ((base-width (interval-length (ly:stencil-extent base X)))
405 (top-width (interval-length (ly:stencil-extent top X)))
406 (top-left-padding (/ (- base-width top-width) 2.0)))
407 (stack-lines DOWN 0.0 2
409 (stack-stencil-line 0 (list (ly:make-stencil "" `(0 . ,top-left-padding) '(0 . 0))
413 #(define-markup-command (triangle-down layout props a b c) (markup? markup? markup?)
414 (let ((base (interpret-markup layout props (markup #:tiny #:line (#:number a #:number b))))
415 (bottom (interpret-markup layout props (markup #:tiny #:number c))))
416 (let* ((base-width (interval-length (ly:stencil-extent base X)))
417 (bottom-width (interval-length (ly:stencil-extent bottom X)))
418 (bottom-left-padding (/ (- base-width bottom-width) 2.0)))
419 (stack-lines DOWN 0.0 2
423 0 (list (ly:make-stencil ""
424 `(0 . ,bottom-left-padding)
428 #(define-markup-command (triangle-down-down layout props a b c d) (markup? markup? markup? markup?)
429 (let ((base (interpret-markup layout props (markup #:tiny #:line (#:number a #:number b))))
430 (bottom (interpret-markup layout props (markup #:tiny #:number c)))
431 (bottom2 (interpret-markup layout props (markup #:tiny #:number d))))
432 (let* ((base-width (interval-length (ly:stencil-extent base X)))
433 (bottom-width (interval-length (ly:stencil-extent bottom X)))
434 (bottom-left-padding (/ (- base-width bottom-width) 2.0))
435 (bottom2-width (interval-length (ly:stencil-extent bottom2 X)))
436 (bottom2-left-padding (/ (- base-width bottom2-width) 2.0)))
437 (stack-lines DOWN 0.0 2
441 0 (list (ly:make-stencil ""
442 `(0 . ,bottom-left-padding)
446 0 (list (ly:make-stencil ""
447 `(0 . ,bottom2-left-padding)
451 #(define-markup-command (parallelogram-up-left layout props a b c d) (markup? markup? markup? markup?)
455 (let ((top (interpret-markup layout props (markup #:tiny #:line (#:number a #:number b))))
456 (bottom (interpret-markup layout props (markup #:tiny #:line (#:number c #:number d)))))
457 (let* ((top-width (interval-length (ly:stencil-extent top X)))
458 (bottom-left-padding (/ (- top-width
461 (interpret-markup layout props (markup #:tiny #:number c)) X)))
463 (stack-lines DOWN 0.0 2
468 (list (ly:make-stencil ""
469 `(0 . ,bottom-left-padding)
473 #(define-markup-command (square layout props a b c d) (markup? markup? markup? markup?)
477 (let ((top (interpret-markup layout props (markup #:tiny #:line (#:number a #:number b))))
478 (bottom (interpret-markup layout props (markup #:tiny #:line (#:number c #:number d)))))
479 (stack-lines DOWN 0.0 2 (list top bottom))))
481 #(define-markup-command (fig-five layout props a b c d e)
482 (markup? markup? markup? markup? markup?)
487 (let ((top (interpret-markup layout props
488 (markup #:tiny #:line (#:number a #:number b))))
489 (center (interpret-markup layout props
490 (markup #:tiny #:number c)))
491 (bottom (interpret-markup layout props
492 (markup #:tiny #:line (#:number d #:number e)))))
493 (let* ((top-width (interval-length (ly:stencil-extent top X)))
494 (center-width (interval-length (ly:stencil-extent center X)))
495 (center-left-padding (/ (- top-width center-width) 2.0)))
496 (stack-lines DOWN 0.0 2
500 0 (list (ly:make-stencil ""
501 `(0 . ,center-left-padding)
506 #(define-markup-command (figure-sharp layout props) ()
509 (markup #:tiny #:concat (#:null #:raise 0.7 #:fontsize -2 #:sharp))))
511 #(define-markup-command (figure-flat layout props) ()
514 (markup #:tiny #:concat (#:null #:raise 0.7 #:fontsize -2 #:flat))))
516 #(define-markup-command (figure-natural layout props) ()
519 (markup #:tiny #:concat (#:null #:raise 0.7 #:fontsize -2 #:natural))))
521 #(define-markup-command (paren-sharp layout props num) (markup?)
524 (markup #:tiny #:concat (#:null #:raise 0.2 #:line ("(" #:figure-sharp ")")
527 #(define-markup-command (paren-flat layout props num) (markup?)
530 (markup #:tiny #:concat (#:null #:raise 0.2 #:line ("(" #:figure-flat ")")
534 %%% On-demand hara-kiri
536 startHaraKiri = \set Staff.keepAliveInterfaces = #'()
537 stopHaraKiri = \unset Staff.keepAliveInterfaces
539 noHaraKiri = \set Staff.keepAliveInterfaces =
540 #'(multi-measure-interface
541 rhythmic-grob-interface
543 percent-repeat-item-interface
544 percent-repeat-interface
545 stanza-number-interface)
546 revertNoHaraKiri = \unset Staff.keepAliveInterfaces
550 #(define-music-function (parser location music) (ly:music?)
551 (if (eqv? #t (ly:get-option 'letter))
553 (make-music 'Music 'void #t)))
555 #(define-music-function (parser location music) (ly:music?)
556 (if (not (eqv? #t (ly:get-option 'letter)))
558 (make-music 'Music 'void #t)))
562 #(define-music-function (parser location pattern music) (ly:music? ly:music?)
563 "\\applyDurations { c'16. c32 } { c d e f }
565 { c16. d32 e16. f32 }"
566 (let ((durations (apply circular-list
567 (let ((result (list)))
568 (music-map (lambda (event)
569 (if (eqv? (ly:music-property event 'name) 'NoteEvent)
570 (set! result (cons (ly:music-property event 'duration) result)))
573 (reverse! result)))))
574 (music-map (lambda (event)
575 (cond ((eqv? (ly:music-property event 'name) 'NoteEvent)
576 (set! (ly:music-property event 'duration) (car durations))
577 (set! durations (cdr durations))))
582 %% double pointée triple x2
584 #(define-music-function (parser location chords) (ly:music?)
585 (define (make-16.-32-16.-32 chord)
587 (music-map (lambda (m)
588 (if (eqv? (ly:music-property m 'name) 'NoteEvent)
589 (set! pitches (cons (ly:music-property m 'pitch) pitches))))
591 (let ((chord16. (make-music 'EventChord
592 'elements (map (lambda (pitch)
593 (make-music 'NoteEvent
594 'duration (ly:make-duration 4 1 1 1)
597 (chord32 (make-music 'EventChord
598 'elements (map (lambda (pitch)
599 (make-music 'NoteEvent
600 'duration (ly:make-duration 5 0 1 1)
603 (make-music 'SequentialMusic 'elements (list chord16. chord32 chord16. chord32)))))
604 (make-music 'SequentialMusic 'elements (map make-16.-32-16.-32 (ly:music-property chords 'elements))))
608 updown = { \change Staff = "down" \voiceOne }
609 upup = { \change Staff = "up" \oneVoice }
610 downup = { \change Staff = "up" \voiceTwo }
611 downdown = { \change Staff = "down" \oneVoice }
616 #(define-music-function (parser location times music) (number? ly:music?)
617 (if (eqv? #t (ly:get-option 'use-tremolo-repeat))
618 (make-repeat "tremolo" times music '())
619 (make-repeat "unfold" times music '())))
621 #(define-music-function (parser location times music) (number? ly:music?)
622 (make-repeat "tremolo" times music '()))
625 #(define-music-function (parser location times music) (number? ly:music?)
626 (make-repeat "percent" times music '()))
628 %% Tweak on articulations
631 #(define-music-function (parser location property value music)
632 (symbol? scheme? ly:music?)
633 "Like \\tweak, but apply the tweak to articulation event found
634 found inside @var{music}."
635 (if (equal? (object-property property 'backend-type?) #f)
637 (ly:warning (_ "cannot find property type-check for ~a") property)
638 (ly:warning (_ "doing assignment anyway"))))
639 (for-each (lambda (event)
640 (set! (ly:music-property event 'tweaks)
641 (acons property value (ly:music-property event 'tweaks))))
642 (ly:music-property music 'articulations))
645 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
646 %%% Selection of version: urtext or modified
648 #(define-music-function (parser location music) (ly:music?)
649 (if (eqv? #t (ly:get-option 'ancient-style))
651 (let ((type (ly:music-property music 'name)))
652 (if (memq type '(TextScriptEvent ArticulationEvent TieEvent SlurEvent))
653 (make-music 'TextScriptEvent 'text "")
654 (make-music 'Music 'void #t)))))
657 #(define-music-function (parser location music) (ly:music?)
658 (if (not (eqv? #t (ly:get-option 'ancient-style)))
660 (let ((type (ly:music-property music 'name)))
661 (if (memq type '(TextScriptEvent ArticulationEvent TieEvent SlurEvent))
662 (make-music 'TextScriptEvent 'text "")
663 (make-music 'Music 'void #t)))))
665 #(define-markup-command (orig-version layout props markp) (markup?)
666 (if (eqv? #t (ly:get-option 'ancient-style))
667 (interpret-markup layout props markp)
670 #(define-markup-command (mod-version layout props markp) (markup?)
671 (if (not (eqv? #t (ly:get-option 'ancient-style)))
672 (interpret-markup layout props markp)
676 #(define-music-function (parser location music) (ly:music?)
677 (if (eqv? #t (ly:get-option 'original-layout))
679 (make-music 'Music)))
684 \override NonMusicalPaperColumn #'line-break-permission =
685 #(if (eqv? #t (ly:get-option 'original-layout))
688 \override NonMusicalPaperColumn #'page-break-permission =
689 #(if (eqv? #t (ly:get-option 'original-layout))
695 #(define-markup-command (annotation layout props markp) (markup?)
696 (if (eqv? #t (ly:get-option 'ancient-style))
697 (interpret-markup layout props (markup #:with-color red markp))
701 #(define-music-function (parser location tweak) (list?)
702 "Specify hard coded vertical spacing. setting lilypond option
703 `apply-vertical-tweaks' to #f get rid off these tweaks."
704 (if (eqv? #t (ly:get-option 'apply-vertical-tweaks))
706 Score.NonMusicalPaperColumn.line-break-system-details #tweak #}
707 (make-music 'Music 'void #t)))
711 %%% conditional music
713 #(define-music-function (parser location condition music) (boolean? ly:music?)
716 (make-music 'Music 'void #t)))
719 #(define-music-function (parser location condition music) (boolean? ly:music?)
721 (make-music 'Music 'void #t)
724 %%% dessine une croix à l'emplacement de la note
725 #(define (make-erased-note-print print-procedure)
727 (let ((note-head (print-procedure grob))
729 (y-offset (if (number? (ly:grob-property grob 'staff-position))
730 (/ (ly:grob-property grob
740 `(draw-line ,thickness
742 ,(- 0 radius y-offset)
744 ,(- radius y-offset))
748 `(draw-line ,thickness
752 ,(- 0 radius y-offset))
757 \once\override NoteHead #'stencil =
758 #(make-erased-note-print ly:note-head::print)
759 \once\override Rest #'stencil =
760 #(make-erased-note-print ly:rest::print)
763 #(define (make-erased-mmrest-print print-procedure)
765 (let ((note-head (print-procedure grob))
767 (y-offset (if (number? (ly:grob-property grob 'staff-position))
768 (/ (ly:grob-property grob
776 (ly:stencil-translate
779 `(draw-line ,thickness
781 ,(- 0 radius y-offset)
783 ,(- radius y-offset))
787 `(draw-line ,thickness
791 ,(- 0 radius y-offset))
794 ;; translate the X so that it is on the bar center,
796 (cons (car (ly:stencil-extent note-head X)) 0)
800 \once\override MultiMeasureRest #'stencil =
801 #(make-erased-mmrest-print ly:multi-measure-rest::print)
804 %%% Suggested dynamics
807 #(define-music-function (parser loc arg) (ly:music?)
808 (cond ((eqv? (ly:music-property arg 'name) 'AbsoluteDynamicEvent)
809 (set! (ly:music-property arg 'text)
810 #{ \markup\smaller\smaller
811 #(ly:music-property arg 'text) #}))
812 ((eqv? (ly:music-property arg 'name) 'CrescendoEvent)
813 (set! (ly:music-property arg 'span-text)
814 #{ \markup\smaller\smaller
815 #(ly:music-property arg 'span-text) #})))
818 rinf = #(make-dynamic-script #{\markup\normal-text\italic rinf #})
820 \defineBarLine "|.|:" #'("|." ".|:" "|.| ")