[ << Schnittstellen für Programmierer ] | [Top][Contents][Index] | [ LilyPond Scheme-Schnittstellen >> ] |
[ < Callback-Funktionen ] | [ Up : Schnittstellen für Programmierer ] | [ Schwierige Korrekturen > ] |
2.8 Scheme-Code innerhalb LilyPonds
TODO: das Beispiel für diesen Abschnitt ist nicht gut gewähtl:
F = -\tweak font-size #-3 -\flageolet
(beachte ‘-’, was ein Nachereignis anzeigt) funktioniert für den geschilderten Zweck sehr gut. Aber bis der Abschnitt neu geschrieben wird, nehmen wir einfach an, dass wir das nicht wissen.
Der hauptsächliche Nachteil von \tweak
ist seine
syntaktische Inflexibilität. Folgender Code beispielsweise
ergibt einen Syntaxfehler:
F = \tweak font-size #-3 -\flageolet \relative { c''4^\F c4_\F }
Durch die Verwendung von Scheme kann dieses Problem umgangen werden.
Der Weg zum Resultat wird gezeigt in
Artikulationszeichen zu Noten hinzufügen (Beispiel), insbesondere
wie \displayMusic
benutzt wird, hilft hier weiter.
F = #(let ((m (make-music 'ArticulationEvent 'articulation-type 'flageolet))) (set! (ly:music-property m 'tweaks) (acons 'font-size -3 (ly:music-property m 'tweaks))) m) \relative { c''4^\F c4_\F }
In diesem Beispiel werden die tweaks
-Eigenschaften
des Flageolet-Objekts m
(mit make-music
erstellt)
werden mit ly:music-property
ausgelesen, ein neues
Schlüssel-Wert-Paar, um die Schriftgröße zu ändern, wird
der Eigenschaftenliste mithilfe der acons
-Schemefunktion
vorangestellt, und das Resultat wird schließlich mit
set!
zurückgeschrieben. Das letzte Element des
let
-Blocks ist der Wiedergabewert, m
.