[ << Standardeinstellungen verändern ] | [Top][Contents][Index] | [ Notationsübersicht >> ] |
[ < Musikfunktionen benutzen ] | [ Up : Musikfunktionen benutzen ] | [ Beispiele der Ersetzungsfunktionen > ] |
5.6.1 Syntax der Ersetzungsfunktion
Es ist einfach eine Funktion zu erstellen, die eine Variable in LilyPond-Code umwandelt. Die generelle Form dieser Funktionen ist:
Funktion = #(define-music-function (Arg1 Arg2 …) (Typ1? Typ2? …) #{ …Noten… #})
wobei
ArgN | ntes Argument |
TypN? | ein Scheme Typenprädikat, für das ArgN
den Wert #t ausgibt. |
…Noten… | normale LilyPond-Eingabe, wobei $ (wenn nur LilyPond-Konstruktionen
erlaubt sind) oder # (um es als Scheme-Wert oder Argument einer
musikalischen Funktionen oder als Noten innerhalb von Notenlisten einzusetzen) benutzt wird, um
Argumente zu referenzieren (etwa ‘$Arg1’). |
Die parser
und location
-Argumente sind zwingend und
werden in einigen fortgeschrittenen Situationen benutzt, wie sie
im „Erweitern“-Handbuch beschrieben werden (siehe
Musikalische Funktionen). In Ersetzungsfunktionen
gehen Sie einfach sicher, dass sie die beiden Wörter auch mit
aufnehmen.
Die Liste der Typenprädikate ist auch notwendig. Einige der häufigsten Typenprädikate, die in musikalischen Funktionen benutzt werden, sind:
boolean? cheap-list? (benutze anstelle von ‚list?‘ für schnelleres Kompilieren) ly:duration? ly:music? ly:pitch? markup? number? pair? string? symbol?
Eine Liste aller Typprädikate findet sich unter Vordefinierte Typprädikate. Eigene Typprädikate sind auch erlaubt.
Siehe auch
Notationsreferenz: Vordefinierte Typprädikate.
Erweitern: Musikalische Funktionen.
Installierte Dateien: lily/music-scheme.cc, scm/c++.scm, scm/lily.scm.