LilyPond erweitern: 2.8 Scheme-Code innerhalb LilyPonds

## 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`.

#### LilyPond – Extending v2.24.4 (stabiler Zweig).