'HarmonicEvent
'BeamForbidEvent
'AbsoluteDynamicEvent
+ 'TupletSpanEvent
'TrillSpanEvent
'GlissandoEvent
'ArpeggioEvent
(fig (ly:music-property figure 'figure))
(bracket-start (ly:music-property figure 'bracket-start))
(bracket-stop (ly:music-property figure 'bracket-stop)))
+
(format #f "~a~a~a~a"
(if (null? bracket-start) "" "[")
(cond ((null? fig) "_")
(else fig))
(if (null? alteration)
""
- (case alteration
- ((-4) "--")
- ((-2) "-")
- ((0) "!")
- ((2) "+")
- ((4) "++")
+ (cond
+ ((= alteration DOUBLE-FLAT) "--")
+ ((= alteration FLAT) "-")
+ ((= alteration NATURAL) "!")
+ ((= alteration SHARP) "+")
+ ((= alteration DOUBLE-SHARP) "++")
(else "")))
(if (null? bracket-stop) "" "]"))))
;;; Layout properties
(define-display-method OverrideProperty (expr parser)
- (let ((symbol (ly:music-property expr 'symbol))
- (properties (ly:music-property expr 'grob-property-path))
- (value (ly:music-property expr 'grob-value))
- (once (ly:music-property expr 'once)))
+ (let* ((symbol (ly:music-property expr 'symbol))
+ (property-path (ly:music-property expr 'grob-property-path))
+ (properties (if (pair? property-path)
+ property-path
+ (list (ly:music-property expr 'grob-property))))
+ (value (ly:music-property expr 'grob-value))
+ (once (ly:music-property expr 'once)))
+
(format #f "~a\\override ~a~a #'~a = ~a~a"
(if (or (null? once)
(not once))
?unit-count)))
;;; \clef
-(define clef-name-alist (map (lambda (name+vals)
- (cons (cdr name+vals)
- (car name+vals)))
- supported-clefs))
+(define clef-name-alist #f)
+(define-public (memoize-clef-names clefs)
+ "Initialize `clef-name-alist', if not already set."
+ (if (not clef-name-alist)
+ (set! clef-name-alist
+ (map (lambda (name+vals)
+ (cons (cdr name+vals)
+ (car name+vals)))
+ clefs))))
(define-extra-display-method ContextSpeccedMusic (expr parser)
"If `expr' is a clef change, return \"\\clef ...\"