Le mardi 27 mai 2008 à 00:12 +0200, Germain G. Ivanoff-Trinadtzaty a
écrit :
Merci ; c'est bien l'emploi des << >> qui me manquait.
Je note aussi qu'on peut factoriser les \transpose, et surtout : VoixA
!!!
Contient la déclaration de contexte, plus les données ! VoixA semble donc
être une "macro symbolique", comme le "#define" du langage C. Je pensais
que la syntaxe : id = { ... } se référait à une variable, et ne pouvait
contenir que des données. (le cas de : id = \lyricmode {...} n'était pas
pour moi un contre exemple ; j'y voyais seulement une déclaration de
type).
Pour info, \lyricmode n'est pas une déclaration de type, pas plus que
VoixA est une macro symbolique ; les variables nommées id et VoixA dont
tu parles ont toutes les deux le même type Music (peut-être avec une
minuscule), qui est dans LilyPond un type Scheme tout comme string,
number, int... Pour t'en convaincre, tu peux tester si une variable
définie au préalable (attention à la lecture anticipée de l'analyseur
syntaxique) est du type Music avec la fonction Scheme ly:music?
et tu peux aussi voir comment peut-être construite cette musique en
Scheme. Voici un exemple qui rassemble tout (lorsque tu le compileras
avec LilyPond, tu n'auras pas de PDF, juste une sortie à l'écran ou dans
le fichier .log).