Syntaxe d’une fonction de substitution

La rédaction d’une fonction chargée de substituer du code LilyPond à une variable est chose relativement aisée. Une telle fonction est de la forme

fonction =
#(define-music-function
     (arg1 arg2…)
     (type1? type2?…)
   #{
     …musique…
   #})

argNLe nième argument.
typeN?Un type de prédicat Scheme pour lequel argN doit renvoyer #t.
…musique…Du code LilyPond tout ce qu’il y a de plus ordinaire, avec des ‘$’ (là où seule une construction LilyPond est autorisée) et des ‘#’ (lorsqu’il s’agit d’une valeur en Scheme, d’un argument de fonction musicale ou de musique faisant partie d’une liste) pour référencer les arguments (par ex. ‘#arg1’).

La liste des types de prédicat est aussi obligatoire. Voici quelques uns des types de prédicat les plus utilisés dans les fonctions musicales :

Une liste plus fournie est disponible à l’annexe Types de prédicats prédéfinis. Vous pouvez par ailleurs définir vos propres types de prédicat.

Voir aussi

Manuel de notation : Types de prédicats prédéfinis.

Manuel d’extension : Fonctions musicales.

Fichiers d’initialisation : lily/music-scheme.cc, scm/c++.scm, scm/lily.scm.


GNU LilyPond – Manuel de notation v2.25.22 (development-branch).