-#(ly:set-option 'old-relative)
-\version "1.9.1"
-\header {
+\version "2.16.0"
-texidoc = "The @code{\applyoutput} expression is the most flexible way to
+\header {
+ texidoc = "The @code{\\applyOutput} expression is the most flexible way to
tune properties for individual grobs.
Here, the layout of a note head is changed depending on its vertical
position.
"
-
}
-#(define (mc-squared gr org cur)
+#(define (mc-squared gr org cur)
(let*
- (
- (ifs (ly:get-grob-property gr 'interfaces))
- (sp (ly:get-grob-property gr 'staff-position))
- )
- (if (and (memq 'note-head-interface ifs)
- (memq sp '(-2 -3 -5)))
+ (
+ (ifs (ly:grob-interfaces gr))
+ (sp (ly:grob-property gr 'staff-position))
+ )
+ (if (memq 'note-head-interface ifs)
(begin
- (ly:set-grob-property! gr 'molecule-callback brew-new-markup-molecule)
- (ly:set-grob-property! gr 'font-family 'roman)
- (ly:set-grob-property!
- gr 'text
- (make-raise-markup -0.5
- (case sp
- ((-5) (make-simple-markup "m"))
- ((-3) (make-simple-markup "c "))
- ((-2) (make-smaller-markup (make-bold-markup "2")))
- (else (make-simple-markup "bla"))
- ))))
- )))
+ (ly:grob-set-property! gr 'stencil
+ (grob-interpret-markup gr
+ (make-raise-markup -0.5
+ (case sp
+ ((-5) (make-simple-markup "m"))
+ ((-3) (make-simple-markup "c "))
+ ((-2) (make-smaller-markup (make-bold-markup "2")))
+ (else (make-simple-markup "bla"))
+ ))))
+ ))))
-\score {
+\new Voice \relative c' {
+ \set autoBeaming = ##f
-\notes \context Voice \relative c' {
- \stemUp
- \property Voice.autoBeaming = ##f
- { <<d f g b>>8
- \context Voice \applyoutput #mc-squared
+ <d f g b>8
- <<d f g b>>
- }
-
- }
-\paper { raggedright = ##t
-% outputscale = 5
- }
+ \applyOutput #'Voice #mc-squared
+ <d f g b>8
}