2.3.2 Utilisation de fonctions musicales
En ce qui concerne la gestion des listes d’argments, les fonctions musicales ne diffèrent en rien des fonction Scheme – voir Utilisation de fonctions Scheme.
Une « fonction musicale » doit impérativement renvoyer une expression
répondant au prédicat ly:music?
. Ceci a pour conséquence
d’autoriser l’appel à une fonction musicale en tant qu’argument de type
ly:music?
dans le cadre de l’appel à une autre fonction musicale.
Certaines restrictions s’appliqueront selon le contexte où une fonction musicale est utilisée, de telle sorte que l’analyse syntaxique soit sans ambiguïté.
- Dans une expression musicale de haut niveau, aucun postévénement n’est toléré.
-
Lorsqu’une fonction musicale – contrairement à une fonction
événementielle – renvoie une expression de type postévénement, LilyPond
requiert son introduction par un indicateur de positionnement – à
savoir
-
,^
ou_
– de telle sorte que le postévénement produit par l’appel à cette fonction s’intègre correctement dans l’expression environnante. -
En tant que partie d’un accord, l’expression musicale renvoyée doit
être du type
rhythmic-event
, et plus particulièrement unNoteEvent
.
Des fonctions « polymorphes » telles que \tweak
peuvent
s’appliquer aux postévénements, constituants d’accord et expressions de
haut niveau.