Subject: Re: \partcombine ou \voiceThree

From: "Germain G. Ivanoff-Trinadtzaty" <[email-masked]>
Date: Thu, 5 Jun 2008 19:25:53 +0200

----- Original Message ----- 
From: "John Mandereau" <[email-masked]>
> 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).

Merci pour cette explication.

> VoixA = \displayMusic \new Voice = "one" \relative c'{ \stemUp g'4 a g f e 
> d c b c1 }
> #0 %% idiotie permettant d'éviter un problème avec la lecture anticipée de 
> l'analyseur
> #(display (ly:music? VoixA))

Ooouiii... Je ne sais pas encore débrouiller tout le code que cela produit, 
mais j'entrevois que \displayMusic est un formidable outil pour apprivoiser 
scheme. La doc est succinte à ce sujet.

Merci,
Germain