NachOben: Scheme-Übung


B.1 Optimierungen mit Scheme

Wir haben gesehen wie LilyPond-Eingabe massiv beeinflusst werden kann, indem Befehle wie etwa \override TextScript #'extra-offset = ( 1 . -1) benutzt werden. Aber es wurde gezeigt, dass Scheme noch mächtiger ist. Eine bessere Erklärung findet sich in derScheme-Übung und in Schnittstellen für Programmierer.

Scheme kann auch in einfachen \override-Befehlen benutzt werden:

TODO Find a simple example

Es kann auch benutzt werden, um Befehle zu erstellen:

     
     tempoZeichen = #(define-music-function (parser location padding marktext)
                                         (number? string?)
     #{
       \once \override Score . RehearsalMark #'padding = $padding
       \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
       \mark \markup { \bold $marktext }
     #})
     
     \relative c'' {
       c2 e
       \tempoZeichen #3.0 #"Allegro"
       g c
     }

[image of music]

Sogar ganze Musikausdrücke können eingefügt werden:

     
     Muster = #(define-music-function (parser location x y) (ly:music? ly:music?)
     #{
       $x e8 a b $y b a e
     #})
     
     \relative c''{
       \Muster c8 c8\f
       \Muster {d16 dis} { ais16-> b\p }
     }

[image of music]

Andere Sprachen: English, español.