Next: , Previous: Paired substitution functions, Up: Music functions


12.1.4 Mathematics in functions

Music functions can involve Scheme programming in addition to simple substitution,

     
     AltOn = #(define-music-function (parser location 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
     }
     
     { c'2 \AltOn #0.5 c'4 c'
       \AltOn #1.5 c' c' \AltOff c'2 }

[image of music]

This example may be rewritten to pass in music expressions,

     
     withAlt = #(define-music-function (parser location 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 #})
     
     { c'2 \withAlt #0.5 {c'4 c'}
       \withAlt #1.5 {c' c'} c'2 }

[image of music]



Next: , Previous: Paired substitution functions, Up: Music functions

This page is for LilyPond-2.10.33 (stable-branch).

Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.