2.3.5 Mathematik in Funktionen
Musikalische Funktionen können neben einfachen Ersetzungen auch Scheme-Programmcode enthalten:
AltOn =
#(define-music-function
(mag)
(number?)
#{
\override Stem.length = #(* 7.0 mag)
\override NoteHead.font-size =
#(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
#})
AltOff = {
\revert Stem.length
\revert NoteHead.font-size
}
\relative {
c'2 \AltOn #0.5 c4 c
\AltOn #1.5 c c \AltOff c2
}
Dieses Beispiel kann auch umformuliert werden, um musikalische Ausdrücke zu integrieren:
withAlt =
#(define-music-function
(mag music)
(number? ly:music?)
#{
\override Stem.length = #(* 7.0 mag)
\override NoteHead.font-size =
#(inexact->exact (* (/ 6.0 (log 2.0)) (log mag)))
#music
\revert Stem.length
\revert NoteHead.font-size
#})
\relative {
c'2 \withAlt #0.5 { c4 c }
\withAlt #1.5 { c c } c2
}