lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: \include "" incompatible avec \variable ?


From: Nicolas Sceaux
Subject: Re: \include "" incompatible avec \variable ?
Date: Sat, 4 Jun 2011 11:18:31 +0200

> Nicolas Sceaux wrote:
>> 
>> On ne peut pas avoir d'affectation de variable dans un block \book
>> ou \bookpart.
>> 
> Si la réponse n'est pas trop technique et/ou ésotérique, quelqu'un peut-il
> m'expliquer pourquoi ? 

Le parser est ainsi fait, il ne prévoit pas le cas :

   \bookpart {
      var = value
   }

Je ne sais pas si à l'origine c'est une limitation voulue, ou subie
(écrire une grammaire est compliqué, on ne fait pas exactement ce
que l'on veut).

Dans les faits, ça impose une contrainte sur la façon d'organiser les
fichiers, rien de plus.  Il suffit de s'organiser ainsi :
  - des fichiers qui contiennent les notes (éventuellement affectées à
  des variables), qu'on inclut au toplevel, avant les bookparts ;
  - des fichiers qui définissent les blocks scores, qu'on inclut dans
  les books ou bookparts.

Dans les faits, cela est agaçant la première fois où on rencontre ce
problème.  Ensuite, dès lors qu'on s'organise comme il faut, on n'y
pense plus.  Et quand on y réfléchit, cette pratique imposée (séparation
notes et structure) se trouvent être par ailleurs excellente.

> Ça serait d'autant plus pratique et bienvenu que j'ai quelques dizaines de
> fichiers *.ly dans lesquels je 
> dois virer des dizaines de variables, pour intégrer leur code ailleurs...

Quelques dizaines... ça va encore, c'est surmontable.  On se casse un peu
les dents sur le premier projet et après c'est parti.

Je n'arrive plus à mettre la main sur les conseils que j'avais formulés
sur l'organisation des fichiers pour réduire au maximum l'effort de
maintenabilité sur de gros projets.  De mon expérience, il faut séparer
complètement (au niveau fichiers), les notes, et la structure des partitions.
Ca devient une évidence dès lors qu'on réalise des parties séparées, sur des
ouvrages importants (en taille).  Devoir charger intégralement les notes de
toutes les parties de l'œuvre complète alors qu'on veut réaliser seulement
la partie de troisième triangle, hm.  Intuitivement, ne charger que les notes
du 3e triangle dans ce cas semble largement suffisant.  Quand on en est à
tuner l'apparence d'une partie séparée complète (sauts de pages et compagnie,
le temps de compilation est un facteur à prendre en compte.

Pour ma part, j'utilise un fichier par partie, quand il y a des recouvrements
entre deux parties (par exemple violon1 et violon2 unis), alors je mets les
deux dans le même fichier (avec des tags pour distinguer 1re partie, 2e partie
et éventuellement les deux assemblées).
  Exemple :
<https://github.com/nsceaux/nenuvar/blob/master/Rameau/Opera/HippolyteEtAricie/AAAouverture/dessus.ily>
Dans l'absolu, il n'est même pas besoin d'affecter les notes à des variables
dans ces fichiers.  Il n'est même pas besoin d'accolade autour.  À ce niveau
c'est comme on veut.  On peut directement, au niveau block \score, inclure
le fichier au bon endroit, et ainsi on s'économise le choix d'un nom de
variable.

   \keepWitgTag #'violon1 \include "dessus.ily"

(avec l'astuce sur les includes relatifs donnée par JC c'est très pratique.)

Nicolas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]