[ << Schnittstellen für Programmierer ] | [Top][Contents][Index] | [ LilyPond Scheme-Schnittstellen >> ] |
[ < Mittlere Ersetzungsfunktionen ] | [ Up : Musikalische Funktionen ] | [ Funktionen ohne Argumente > ] |
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 }
[ << Schnittstellen für Programmierer ] | [Top][Contents][Index] | [ LilyPond Scheme-Schnittstellen >> ] |
[ < Mittlere Ersetzungsfunktionen ] | [ Up : Musikalische Funktionen ] | [ Funktionen ohne Argumente > ] |