1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
3 Translation of GIT committish: 3f4496001441e0b1b27d7bc5395c4520f4f2088c
5 When revising a translation, copy the HEAD committish of the
6 version that you are working on. For details, see the Contributors'
7 Guide, node Updating translation committishes..
12 @c Translators: Ludovic Sardain, Jean-Charles Malahieude
13 @c Translation checkers: Jean-Yves Baudais, Valentin Villenave, John Mandereau, Jean-Charles Malahieude
15 @node Suggestions pour la saisie de fichiers LilyPond
16 @chapter Suggestions pour la saisie de fichiers
17 @translationof Suggestions for writing files
19 Maintenant vous êtes prêt à travailler sur de plus gros fichiers
20 LilyPond -- des pièces entières, et plus seulement les petits
21 exemples du tutoriel. Mais comment devriez-vous vous y prendre ?
23 Tant que LilyPond parvient à comprendre vos fichiers et produit le
24 résultat que vous souhaitez, peu importe la manière dont le code est
25 organisé. Néanmoins, quelques critères doivent être pris en compte
26 lorsque l'on écrit un fichier LilyPond.
29 @item Si vous faites une erreur, la structure même du fichier LilyPond
30 peut permettre de la localiser plus ou moins facilement.
32 @item Et si vous souhaitez partager vos fichiers avec quelqu'un
33 d'autre, ou si vous souhaitez modifier vos propres fichiers dans
34 quelques années ? Si certains fichiers LilyPond sont compréhensibles
35 au premier coup d'oeil, d'autres vous feront vous arracher les cheveux
38 @item Et si vous souhaitez mettre à jour votre fichier pour
39 l'utiliser avec une version plus récente de LilyPond ? La syntaxe du
40 langage d'entrée change parfois lorsque LilyPond s'améliore. La
41 plupart des changements peuvent être appliqués automatiquement avec
42 @code{convert-ly}, mais quelques-uns peuvent requérir une intervention
43 manuelle. Vos fichiers LilyPond peuvent être structurés de manière à
44 faciliter leur mise à jour.
48 * Suggestions générales::
49 * Gravure de musique existante::
50 * Projets d'envergure::
51 * Résolution de problèmes::
52 * De la commande make et des fichiers Makefile::
55 @node Suggestions générales
56 @section Suggestions générales
57 @translationof General suggestions
59 Voici quelques conseils qui peuvent vous éviter certains problèmes ou
63 @item @strong{Ajoutez le numéro de version dans chaque fichier}.
64 Notez que chaque fichier modèle contient une ligne @w{@code{\version
65 "@version{}"}}. Nous vous conseillons fortement d'inclure cette ligne,
66 même pour de petits fichiers. Par expérience, il est très difficile
67 de se rappeler quelle version de LilyPond on utilisait quelques
68 années auparavant. L'utilitaire @command{convert-ly} demande que vous
69 spécifiiez la version de LilyPond vous utilisiez alors.
71 @item @strong{Ajoutez des contrôles}@tie{}: @ruser{Vérifications d'octave}
72 et @ruser{Vérification des limites et numéros de mesure}. Si vous avez
73 ajouté des contrôles de loin en loin, et que vous faites une erreur,
74 vous pourrez la retrouver plus rapidement. @qq{De loin en loin},
75 qu'est-ce à dire ? Cela dépend de la complexité de la musique. Pour de
76 la musique très simple, peut-être une ou deux fois. Pour de la musique
77 très complexe, peut-être à chaque mesure.
79 @item @strong{Une mesure par ligne de texte}. Si la musique en
80 elle-même ou le résultat que vous désirez contient quelque chose de
81 compliqué, il est souvent bon de n'écrire qu'une seule mesure par ligne.
82 Économiser de la place en tassant huit mesures par ligne, ça ne vaut pas
83 vraiment le coup si l'on doît corriger vos fichiers.
85 @item @strong{Ajoutez des commentaires}. Utilisez soit des
86 numéros de mesure (assez souvent), soit des références au contenu
87 musical -- @qq{second thème des violons}, @qq{quatrième variation}, etc.
88 Vous pouvez ne pas avoir besoin des commentaires lorsque vous écrivez
89 une pièce pour la première fois, mais si vous souhaitez y revenir deux
90 ou trois ans plus tard pour changer quelque chose, ou si vous donnez
91 le fichier source à un ami, ce sera beaucoup plus difficile de
92 déterminer vos intentions ou la manière dont votre fichier est
93 structuré si vous n'y avez pas adjoint de commentaires.
95 @item @strong{Indentez les accolades}. Beaucoup de problèmes
96 viennent d'un défaut de parité entre @code{@{} et @code{@}}.
98 @item @strong{Mentionnez les durées} au début de chaque section ou
99 variable. Si vous saisissez @code{c4 d e} au début d'une phrase, vous
100 vous épargnerez des problèmes si, plus tard, vous modifiez votre musique.
102 @item @strong{Séparez les affinages de mise en forme} de la musique
104 @rlearning{Économie de saisie grâce aux identificateurs et fonctions} et
105 @rlearning{Feuilles de style}.
110 @node Gravure de musique existante
111 @section Gravure de musique existante
112 @translationof Typesetting existing music
114 Si vous saisissez de la musique à partir d'une partition existante,
115 c'est-à-dire de la musique déjà écrite,
119 @item n'entrez qu'un seul système de la partition originale
120 à la fois -- mais toujours une seule mesure par ligne de texte --,
121 et vérifiez chaque système lorsqu'il est terminé. Vous pouvez
122 utiliser les commandes @code{showLastLength} et @code{showFirstLength}
123 pour accélérer la compilation -- voir
124 @ruser{Ignorer des passages de la partition}@tie{};
126 @item définissez @code{mBreak = @{\break @}} et insérez
127 @code{\mBreak} dans le fichier d'entrée pour obtenir des sauts de
128 ligne identiques à la partition originale. Cela facilite la
129 comparaison entre la partition originale et la partition de
130 LilyPond. Lorsque vous avez fini de relire votre musique, vous pouvez
131 définir @code{mBreak = @{ @}} pour enlever tous ces sauts de ligne, et
132 laisser LilyPond placer les sauts de ligne selon son propre algorithme.
134 @item encadrez les notes d'une partie pour instrument transpositeur
138 \transpose c @var{tonalité-naturelle} @{...@}
140 (où @var{tonalité-naturelle} correspond à celle de l'instrument en
141 question) de telle sorte que la musique comprise dans cette variable se
142 retrouve en ut. Vous pourrez toujours transposer à l'inverse si besoin
143 lorsque vous ferez appel à cette variable. Des erreurs de transposition
144 seront moins susceptibles de se produire si la musique de toutes les
145 variables est dans la même et unique tonalité.
147 De la même manière, prenez toujours le do comme note de départ ou
148 d'arrivée. Ceci aura pour simple conséquence que les autres tonalités
149 que vous utiliserez seront celles propres à chacun des instruments --
150 sib pour une trompette en si bémol, ou lab pour une clarinette en la bémol.
155 @node Projets d'envergure
156 @section Projets d'envergure
157 @translationof Large projects
159 Lorsque l'on travaille sur un gros projet, il devient vital
160 de structurer clairement ses fichiers LilyPond.
164 @item @strong{Utilisez un identificateur pour chaque voix},
165 avec un minimum de structure dans la définition. La structure de la
166 section @code{\score} est la plus susceptible de changer, notamment
167 dans une nouvelle version de LilyPond, alors que la définition du
168 @code{violon} l'est beaucoup moins.
171 violin = \relative c'' @{
184 @item @strong{Séparez les retouches} des définitions de
185 musique. Nous vous avons déjà invité à adopter une telle pratique, qui
186 par ailleurs devient vitale pour des projets d'importance. Nous
187 pouvons avoir besoin de changer la définition de
188 @code{fpuisp}, mais dans ce cas nous n'aurons besoin de le faire
189 qu'une seule fois, et nous pourrons encore éviter de
190 modifier quoi que ce soit à l'intérieur de la définition
195 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
196 violin = \relative c'' @{
204 @node Résolution de problèmes
205 @section Résolution de problèmes
206 @translationof Troubleshooting
208 Tôt ou tard, vous écrirez un fichier que LilyPond ne peut pas
209 compiler. Les messages que LilyPond affiche peuvent vous aider à
210 trouver l'erreur, mais dans beaucoup de cas vous aurez besoin de faire
211 quelques recherches pour déterminer la source du problème.
213 Pour ce faire, les outils les plus puissants sont le commentaire de
214 fin de ligne, indiqué par @code{%}, et le commentaire multilignes (ou
215 bloc de commentaire), indiqué par @code{%@{ ... %@}}. Si vous ne
216 pouvez localiser le problème, commencez par mettre en commentaire de
217 grandes parties de votre fichier source. Après avoir mis en
218 commentaire une section, essayez de compiler à nouveau. Si cela
219 fonctionne, c'est que le problème se situe dans cette partie du
220 fichier. Si cela ne fonctionne pas, continuez à mettre en commentaire
221 d'autres sections, jusqu'à ce que vous ayez quelque chose qui compile.
223 Dans un cas extrême, vous pourriez en arriver à
237 c'est-à-dire un fichier sans aucune musique.
239 Si cela se produit, ne vous découragez pas. Décommentez un peu, la
240 partie de basse par exemple, et voyez si ça fonctionne. Si ce n'est pas
241 le cas, placez en commentaire toute la partie de basse, mais laissez
242 @code{\basse} décommenté dans le bloc @code{\score}.
245 basse = \relative c' @{
253 Maintenant commencez à décommenter petit à petit le partie de
254 @code{basse} jusqu'à ce que vous localisiez la ligne qui pose
257 Une autre technique de déboguage très utile est la construction
258 d'@rweb{Exemples minimaux}.
263 @node De la commande make et des fichiers Makefile
264 @section De la commande @command{make} et des fichiers @code{Makefile}
265 @translationof Make and Makefiles
270 La plupart des plates-formes sur lesquelles tourne LilyPond disposent
271 d'un logiciel appelé @code{make}. Ce logiciel va lire un fichier
272 spécial, nommé de @code{Makefile}, qui contient tout ce qu'il
273 faut -- les dépendances entre certains fichiers, les instructions
274 successives à traiter par le système -- pour aboutir au fichier que
275 vous désirez obtenir. Il pourrait par exemple contenir tout ce qu'il
276 faut pour produire @code{ballade.pdf} et @code{ballade.midi} à partir de
277 @code{ballade.ly} en lançant LilyPond.
279 La création d'un @code{Makefile} peut se révéler pertinente pour
280 certains projets, que ce soit par simple goût personnel ou bien par
281 respect de ceux qui pourront accéder à vos sources. Cette manière de
282 procéder est particulièrement indiquée lorsque vous travaillez sur un
283 projet de grande envergure impliquant de nombreuses inclusions de
284 fichiers et différentes éditions -- par exemple un conducteur et un
285 matériel d'orchestre complet avec la partition pour le chef et une
286 partition séparée pour chacun des pupitres -- ou bien si votre projet
287 requiert certaines commandes particulières comme @code{lilypond-book}.
288 Les @emph{Makefiles} varient tant en complexité qu'en flexibilité selon
289 les besoin et les aptitudes de celui qui les crée. Le programme GNU Make
290 est installé par défaut sur les distributions Linux et sur MacOS@tie{}X,
291 et il en existe une version pour les environnements Windows.
293 Consultez le @strong{GNU Make Manual} pour plus de détails sur ce dont
294 @code{make} est capable -- vous pourrez même en trouver des versions
295 françaises à l'aide des moteurs de recherche --, dans la mesure où ce
296 qui suit ne donne qu'un bref apperçu de ses possibilités.
298 Les commandes permettant de définir les règles diffèrent selon la
299 plate-forme@tie{}: si les différents Linux et MacOS@tie{}X utilisent
300 @code{bash}, Windows utilise @code{cmd}. Dans le cas de MacOS@tie{}X,
301 vous devrez toutefois configurer votre système de telle sorte qu'il
302 utilise l'interpréteur en ligne de commande. Voici quelques exemples de
303 fichier @emph{Makefile}, avec une version pour Linux ou MacOS et une
306 Pour commencer, une pièce à quatre mouvements pour orchestre et dont les
307 fichiers sont répartis selon l'arborescence suivante@tie{}:
326 | |-- symphonieIII.ly
330 | |-- symphon-alto.ly
331 | |-- symphonie-cello.ly
332 | |-- symphonie-cor.ly
333 | |-- symphonie-hautbois.ly
334 | |-- symphonie-violonUn.ly
335 | `-- symphonie-violonDeux.ly
336 `-- symphonieDefs.ily
339 Les fichiers @code{.ly} des répertoires @code{Partitions} et
340 @code{Pupitres} récupèreront la notation des fichiers @code{.ily}
341 contenus dans le répertoire @code{Notes}@tie{}:
344 %%% début du fichier "symphone-cello.ly"
345 \include ../symphonieDefs.ily
346 \include ../Notes/cello.ily
349 Le @emph{Makefile} répertorie des cibles correspondant à @code{score}
350 (l'intégrale au format conducteur), @code{mouvements} (chacun des
351 mouvements au format conducteur) et @code{pupitres} (une partition par
352 pupitre). Il contient aussi une cible @code{archive} chargée de générer
353 une archive des fichiers source qui pourra être diffusée sur la toile ou
354 transmise par courriel. Voici ce que contiendrait ce @emph{Makefile}
355 pour Linux ou MacOS@tie{}X. Ce fichier doit être enregistré sous le nom
356 de @code{Makefile} à la racine du projet -- ici @code{Symphonie}.
358 @warning{Lorsque vous définissez une cible ou une règle sur plusieurs
359 lignes, les lignes à partir de la deuxième @strong{doivent} débuter par
360 une tabulation, non pas par des espaces.}
363 # Le préfixe au nom des fichiers résultants
365 # Détermination du nombre de processeurs
366 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
367 # La commande d'appel à lilypond
368 LILY_CMD = lilypond -ddelete-intermediate-files \
369 -dno-point-and-click -djob-count=$(CPU_CORES)
371 # Les suffixes utilisés dans ce Makefile
372 .SUFFIXES: .ly .ily .pdf .midi
374 # Les fichiers sources et résultants sont recherchés dans les répertoires
375 # listés dans la variable VPATH. Ceux-ci sont tous des sous-répertoires
376 # du répertoire courant (fourni par la variable de GNU make `CURDIR').
378 $(CURDIR)/Partitions \
383 # La règle type pour créer un PDF et un MIDI à partir d'un fichier
385 # Les .pdf résultants iront dans le sous-répertoire "PDF" et les fichiers
386 # .midi dans le sous-répertoire "MIDI".
388 $(LILY_CMD) $<; \ # cette ligne commence par une tabulation
389 if test -f "$*.pdf"; then \
392 if test -f "$*.midi"; then \
393 mv "$*.midi" MIDI/; \
404 # Les dépendances selon le mouvement.
405 $(piece)I.pdf: $(piece)I.ly $(notes)
406 $(piece)II.pdf: $(piece)II.ly $(notes)
407 $(piece)III.pdf: $(piece)III.ly $(notes)
408 $(piece)IV.pdf: $(piece)IV.ly $(notes)
410 # Les dépendances pour la partition intégrale.
411 $(piece).pdf: $(piece).ly $(notes)
413 # Les dépendances pour les pupitres.
414 $(piece)-alto.pdf: $(piece)-alto.ly alto.ily
415 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
416 $(piece)-cor.pdf: $(piece)-cor.ly cor.ily
417 $(piece)-hautbois.pdf: $(piece)-hautbois.ly hautbois.ily
418 $(piece)-violonUn.pdf: $(piece)-violonUn.ly violonUn.ily
419 $(piece)-violonDeux.pdf: $(piece)-violonDeux.ly violonDeux.ily
421 # Lancer `make score' pour générer l'intégrale des quatre mouvements en
426 # Lancer `make parties' pour obtenir tous les pupitres.
427 # Lancer `make toto.pdf' pour obtenir la partie instrumentale de toto.
428 # Par exemple : `make symphonie-cello.pdf'.
430 parties: $(piece)-cello.pdf \
431 $(piece)-violonUn.pdf \
432 $(piece)-violonDeux.pdf \
434 $(piece)-hautbois.pdf \
437 # Lancer `make mouvements' pour générer un fichier séparé pour chacun
440 mouvements: $(piece)I.pdf \
445 all: score parties mouvements
448 tar -cvvf symphonie.tar \ # cette ligne commence par une tabulation
449 --exclude=*pdf --exclude=*~ \
450 --exclude=*midi --exclude=*.tar \
455 Les choses se compliquent sous Windows. Une fois GNU Make pour Windows
456 téléchargé et installé, il vous faudra correctement définir le chemin
457 d'accès au programme @emph{Make} -- dans les variables d'environnement
458 du système -- afin que l'interpréteur de commandes DOS puisse le
459 localiser. Pour cela, faites un clic droite sur @qq{Poste de travail},
460 choisissez @code{Propriétés} puis @code{Avancées}. Cliquez sur
461 @code{Variables d'environnement} puis, dans l'onglet @w{@code{Variables
462 système}}, mettez @code{path} en surbrillance et cliquez sur
463 @code{Modifier}. Ajoutez alors le chemin d'accès complet à l'exécutable
464 de GNU Make, qui devrait ressembler à@tie{}:
467 C:\Program Files\GnuWin32\bin
470 Il va également falloir adapter le @emph{makefile} aux particularités de
471 l'interpréteur de commandes et à la présence d'espaces dans le nom de
472 certains répertoire de ce système.
473 La cible @code{archive} est tout bonnement supprimée, puisque Windows ne
474 dispose pas de la commande @code{tar}. Enfin, les fichiers MIDI ont une
475 extension par défaut propre à Windows.
479 ## VERSION POUR WINDOWS
482 LILY_CMD = lilypond -ddelete-intermediate-files \
483 -dno-point-and-click \
484 -djob-count=$(NUMBER_OF_PROCESSORS)
486 #get the 8.3 name of CURDIR (workaround for spaces in PATH)
487 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
490 .SUFFIXES: .ly .ily .pdf .mid
493 $(workdir)/Partitions \
495 $(workdir)/Pupitress \
499 $(LILY_CMD) $< # cette ligne commence par une tabulation
500 if exist "$*.pdf" move /Y "$*.pdf" PDF/ # tabulation au début
501 if exist "$*.mid" move /Y "$*.mid" MIDI/ # tabulation au début
513 $(piece)I.pdf: $(piece)I.ly $(notes)
514 $(piece)II.pdf: $(piece)II.ly $(notes)
515 $(piece)III.pdf: $(piece)III.ly $(notes)
516 $(piece)IV.pdf: $(piece)IV.ly $(notes)
518 $(piece).pdf: $(piece).ly $(notes)
520 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
521 $(piece)-cor.pdf: $(piece)-cor.ly cor.ily
522 $(piece)-hautbois.pdf: $(piece)-hautbois.ly hautbois.ily
523 $(piece)-alto.pdf: $(piece)-alto.ly alto.ily
524 $(piece)-violonUn.pdf: $(piece)-violonUn.ly violonUn.ily
525 $(piece)-violonDeux.pdf: $(piece)-violonDeux.ly violonDeux.ily
531 parties: $(piece)-cello.pdf \
532 $(piece)-violonUn.pdf \
533 $(piece)-violonDeux.pdf \
535 $(piece)-hautbois.pdf \
539 mouvements: $(piece)I.pdf \
544 all: score parties mouvements
548 Le @emph{Makefile} suivant convient pour un document
549 @command{lilypond-book} réalisé avec @LaTeX{}. Ce projet contiendra un
550 index, ce qui nécessitera de lancer une deuxième fois @command{latex}
551 pour mettre à jour les liens. Les fichiers résultants iront dans le
552 répertoire @code{out} pour ce qui est des .pdf et dans le répertoire
553 @code{htmlout} pour ce qui est du html.
562 LILYBOOK_PDF=lilypond-book --output=$(OUTDIR) --pdf $(FILE).lytex
563 LILYBOOK_HTML=lilypond-book --output=$(WEBDIR) $(FILE).lytex
564 PDF=cd $(OUTDIR) && pdflatex $(FILE)
565 HTML=cd $(WEBDIR) && latex2html $(FILE)
566 INDEX=cd $(OUTDIR) && makeindex $(FILE)
567 PREVIEW=$(VIEWER) $(OUTDIR)/$(FILE).pdf &
572 $(LILYBOOK_PDF) # tabulation en début de ligne
573 $(PDF) # tabulation en début de ligne
574 $(INDEX) # tabulation en début de ligne
575 $(PDF) # tabulation en début de ligne
576 $(PREVIEW) # tabulation en début de ligne
579 $(LILYBOOK_HTML) # tabulation en début de ligne
580 $(HTML) # tabulation en début de ligne
581 cp -R $(WEBDIR)/$(FILE)/ ./ # tabulation en début de ligne
582 $(BROWSER) $(FILE)/$(FILE).html & # tabulation en début de ligne
585 cp $(OUTDIR)/$(FILE).pdf $(FILE).pdf # tabulation en début de ligne
588 rm -rf $(OUTDIR) # tabulation en début de ligne
591 rm -rf $(WEBDIR) # tabulation en début de ligne
594 tar -cvvf monprojet.tar \ # tabulation en début de ligne
596 --exclude=htmlout/* \
597 --exclude=monprojet/* \
604 AVENIR: faire que ça marche sous Windows
606 Ce @emph{makefile} n'est malheureusement pas opérationnel sous Windows.
607 La seule alternative qui s'offre aux utilisateurs de Windows consiste à
608 créer un fichier de traitement par lot (@code{.bat}) qui contienne les
609 différentes commandes successives. Bien que cette manière de procéder
610 ne tienne aucun compte des dépendances entre fichiers, elle permet de
611 réduire le nombre de processus à lancer dans une seule commande. Vous
612 devrez enregistrer les lignes suivantes dans un fichier
613 @code{construire.bat} ou @code{construire.cmd}. Ce fichier pourra être
614 exécuté soit en ligne de commande, soit par un double clic sur son
618 lilypond-book --output=out --pdf monprojet.lytex
624 copy out\monprojet.pdf MonProjet.pdf
629 Manuel d'utilisation :
630 @ref{Utilisation en ligne de commande},