1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 964d024dd4f022ba7cd66adc13c0169035d4c4e5
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
10 @c Translators: Valentin Villenave, Nicolas Klutchnikoff
11 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
14 @chapter Tweaking output
16 Ce chapitre indique comment modifier le résultat que vous obtiendrez.
17 LilyPond offre de nombreuses possibilités de réglages, permettant de modifier
18 quasiment chaque élément de votre partition.
22 * Fixing overlapping notation::
25 * Fitting music onto fewer pages::
26 * Advanced tweaks with Scheme::
27 * Avoiding tweaks with slower processing::
32 @section Moving objects
34 Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
35 Certains éléments sur la partition peuvent se chevaucher, ce qui est
36 regrettable mais, le plus souvent, facile à corriger.
38 @c FIXME: find a better example for 5.1 Moving Objects. -gp
39 @c yes, I want this TODO to be visible to end-users. It's better
40 @c than having nothing at all.
41 À FAIRE : les modifications de la gestion des espacements de la version 2.12
42 feront perdre leur pertinence aux exemples suivants. Ils démontrent cependant
43 la puissance de LilyPond, et justifient à ce titre leur présence dans
44 ces lignes, tant que d'autres exemples n'auront pas été proposés.
46 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
47 % temporary code to break this example:
48 \override TextScript #'outside-staff-priority = ##f
49 e4^\markup{ \italic ritenuto } g b e
54 Le plus simple est ici d'augmenter la distance entre l'objet (du
55 texte comme ici, ou bien des nuances ou des doigtés) et la note.
56 Dans LilyPond, il s'agit de la propriété @code{padding}, qui
57 se mesure en espaces relatifs à la taille de la portée. Pour la plupart
58 des objets (chacun ayant sa propre valeur), elle est définie à 1.0, ou
59 un peu moins. Nous voulons ici l'augmenter : essayons 1.5.
61 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
62 % temporary code to break this example:
63 \override TextScript #'outside-staff-priority = ##f
64 \once \override TextScript #'padding = #1.5
65 e4^\markup{ \italic ritenuto } g b e
69 C'est déjà mieux ! Mais on peut certainement encore améliorer le résultat.
70 Il nous semble, après plusieurs essais, que la meilleure valeur
71 dans ce cas soit 2.3. Toutefois, ce constat est le fruit
72 d'expérimentations et de goût personnel en matière de notation.
73 Essayez le même exemple avec 2.3... mais également avec
74 des valeurs plus grandes (ou plus petites).
75 À votre avis, quelle est la meilleure version ?
78 La propriété @code{staff-padding} est de nature similaire.
79 @code{padding} détermine l'espace minimum entre un objet et l'objet
80 le plus proche (le plus souvent une note ou les lignes de la portée) ;
81 @code{staff-padding} détermine pour sa part l'espace minimum entre
82 un objet et la portée. La différence est subtile, mais vous apparaîtra
85 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
86 % temporary code to break this example:
87 \override TextScript #'outside-staff-priority = ##f
89 \once \override TextScript #'padding = #4.6
91 \once \override TextScript #'staff-padding = #4.6
92 c4^"piu mosso" fis a g
95 \once \override TextScript #'padding = #4.6
97 \once \override TextScript #'staff-padding = #4.6
98 c4^"piu mosso" fis a g
103 Une autre démarche permet de contrôler totalement la position d'un
104 objet --- on peut le déplacer horizontalement ou verticalement. Il
105 suffit d'avoir recours à la propriété @code{extra-offset}. En fait
106 c'est une méthode plus complexe, qui peut en outre poser des
107 problèmes. Quand on déplace un objet à l'aide de @code{extra-offset},
108 le déplacement est effectué après que LilyPond a placé tous les autres
109 objets. Par conséquent, l'objet ainsi déplacé peut venir
110 recouvrir d'autres objets déjà placés.
113 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
114 % temporary code to break this example:
115 \override TextScript #'outside-staff-priority = ##f
116 \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
117 e4^\markup{ \italic ritenuto } g b e
120 Lorsqu'on utilise @code{extra-offset}, le premier nombre décrit le
121 déplacement horizontal (négatif pour un déplacement vers la gauche)
122 tandis que le deuxième décrit un déplacement vertical (positif
123 pour le haut). Après quelques essais, on peut choisir les valeurs suivantes
124 qui semblent donner un résultat satisfaisant.
126 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
127 % temporary code to break this example:
128 \override TextScript #'outside-staff-priority = ##f
129 \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
130 e4^\markup{ \italic ritenuto } g b e
135 Une fois encore, c'est après quelques tâtonnements que l'on a abouti à
136 ces nombres, au regard du résultat final. Si vous souhaitez que
137 le texte soit plus haut, plus à gauche, etc. essayez vous-même et choisissez
138 aprés avoir regardé le résultat.
140 Une dernière mise en garde : dans cette section, nous avons eu recours à
143 \once \override TextScript @dots{}
146 ce qui permet de régler le placement du texte pour la note suivante.
147 Mais si cette note n'a pas de texte, le réglage ne s'appliquera pas
148 et n'attendra @strong{pas} le prochain texte. Pour que ce comportement
149 persiste après la commande, ne mettez pas @code{\once}. Votre réglage
150 s'appliquera alors partout, jusqu'à ce que vous l'annuliez au moyen de
151 la commande @code{\revert}. Ceci est expliqué en détail dans
152 @ruser{The \override command}.
154 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
155 % temporary code to break this example:
156 \override TextScript #'outside-staff-priority = ##f
158 \once \override TextScript #'padding = #4.6
161 \once \override TextScript #'padding = #4.6
165 \override TextScript #'padding = #4.6
168 \revert TextScript #'padding
174 Dans ce même manuel : @ruser{The \override command}, @ruser{Common tweaks}.
177 @node Fixing overlapping notation
178 @section Fixing overlapping notation
180 Dans la section @ruser{Moving objects}, nous avons vu comment
181 déplacer un objet @code{TextScript}. Ce même procédé peut être
182 appliqué à d'autres types d'objet : il vous suffira de remplacer
183 @code{TextScript} par le nom de l'objet en question.
185 Pour trouver cette dénomination, regardez les liens @q{@strong{Voir aussi}}
186 en bas des pages de la documentation. Par exemple, en bas de la page
187 @ruser{Dynamics}, nous trouvons
192 Référence du programme : @internalsref{DynamicText}, @internalsref{Hairpin}.
193 Le placement vertical de ces symboles est contrôlé par
194 @internalsref{DynamicLineSpanner}.
199 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
202 \override DynamicLineSpanner #'padding = #2.0
205 Nous ne listerons pas ici tous les types d'objets, mais seulement
208 @multitable @columnfractions .33 .66
209 @headitem Type d'objet @tab Nom de l'objet
210 @item Nuances (verticalement) @tab @code{DynamicLineSpanner}
211 @item Nuances (horizontalement) @tab @code{DynamicText}
212 @item Laisons de tenue @tab @code{Tie}
213 @item Liaisons @tab @code{Slur}
214 @item Indications d'articulation @tab @code{Script}
215 @item Doigtés @tab @code{Fingering}
216 @item Textes (@code{^"texte"}) @tab @code{TextScript}
217 @item Repères @tab @code{RehearsalMark}
222 @section Common tweaks
224 Certains réglages sont si courants que des raccourcis sont fournis
225 sous forme de commandes telles que @code{\slurUp} ou @code{\stemDown}.
226 Toutes ces commandes sont décrites dans les différentes sections
227 de la Référence de notation.
229 La liste complète des modifications possibles pour chaque type d'objet
230 (tel que liaison ou ligature) se trouve dans la Référence du
231 programme. Cependant, certaines propriétés sont communes à de nombreux
232 objets, et on peut de ce fait définir quelques réglages génériques.
240 La propriété @code{padding} peut être définie de manière à
241 accroître (ou décroître) la distance entre les symboles qui se
242 placent au-dessus ou au-dessous des notes. Ce qui s'applique à
243 tous les objets régis par @code{side-position-interface}.
245 @lilypond[quote,fragment,relative=1,verbatim]
247 \override Script #'padding = #3
251 @lilypond[quote,fragment,relative=1,verbatim]
252 % This will not work, see below:
253 \override MetronomeMark #'padding = #3
257 \override Score.MetronomeMark #'padding = #3
262 Notez, dans le second exemple, l'importance de savoir à quel contexte
263 correspond l'objet. Dans la mesure où l'objet @code{MetronomeMark}
264 appartient au contexte @code{Score}, ses modifications affectées au
265 contexte @code{Voice} ne l'affecteront pas. Pour plus de détails, voir
266 @ruser{Constructing a tweak}.
271 La propriété @code{extra-offset} permet de déplacer latéralement et
272 verticalement ; c'est pourquoi elle requiert deux nombres. Le premier
273 affecte le placement horizontal (un nombre positif déplace l'objet
274 vers la droite) ; le second le placement vertical (un nombre positif
275 déplace l'objet vers le haut). Cette propriété est de bas niveau : le
276 moteur de formatage ne tient aucun compte des placements qu'elle induit.
278 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
279 plus bas de 1.8 espaces :
281 @lilypond[quote,fragment,relative=1,verbatim]
284 \once \override Fingering
285 #'extra-offset = #'(-0.3 . -1.8)
290 La propriété @code{transparent} imprime les objets avec de
291 l'@q{encre invisible} : l'objet n'est pas visible, mais tous
292 les comportement le concernant s'appliquent quand même. Il occupe
293 une certaine place, intervient dans la gestion des collisions, et on
294 peut lui attacher des liaisons ou des ligatures.
296 @cindex transparents, objets
297 @cindex suppression d'objets
298 @cindex masquage d'objets
299 @cindex invisibles, objets
301 L'exemple suivant montre comment tenir des notes entre différentes voix,
302 au moyen de liaisons. Ces liaisons de tenue, en principe, ne peuvent relier
303 que deux notes d'une même voix. On introduit donc la liaison dans une
306 @lilypond[quote,fragment,relative=2]
315 et on efface la première croche (hampe vers le haut) de ladite voix ;
316 maintenant la liaison semble passer d'une voix à l'autre :
319 @lilypond[quote,fragment,relative=2,verbatim]
321 \once \override Stem #'transparent = ##t
328 Pour s'assurer que le crochet de la hampe que nous avons effacée ne
329 raccourcira pas la liaison, nous allons également rallonger cette hampe,
330 en attribuant à la propriété @code{length} la valeur @code{8} :
332 @lilypond[quote,fragment,relative=2,verbatim]
334 \once \override Stem #'transparent = ##t
335 \once \override Stem #'length = #8
344 @cindex retouches, distances
347 Les distances dans LilyPond sont mesurées dans l'unité staff-space
348 (espace de portée) tandis que la plupart des propriétés relatives aux
349 épaisseurs sont mesurées à l'aide de l'unité line-thickness (épaiseur
350 de ligne). Toutefois, certaines d'entre-elles échappent à cette règle
351 : par exemple l'épaisseur des liens de croches est mesurée à l'aide de
352 l'unité staff-space. Pour de plus amples informations,
353 consultez les sections correspondantes de la Référence du programme.
357 @section Default files
359 La Référence du programme contient
360 beaucoup d'informations sur LilyPond. Cependant vous pouvez en découvrir
361 encore plus en consultant les fichiers internes de LilyPond.
363 Des réglages par défaut (tels que les définitions des blocs
364 @code{\header@{@}}) sont contenus dans des fichiers @code{.ly}. D'autres
365 (comme les définitions des commandes @qq{markup} ) sont contenus dans
366 des fichiers @code{.scm} (Scheme). Malheureusement, des explications
367 plus complètes dépassent le cadre de ce manuel.
368 Les utilisateurs qui souhaiteraient comprendre le fonctionnement de
369 ces fichiers de configuration doivent être avertis que des
370 connaissances techniques substantielles et beaucoup de temps sont nécessaires.
374 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
377 @file{@var{dossierduprogramme}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
378 Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
379 taper @code{cd} suivi du chemin complet ci-dessus ; soit
380 Control-cliquer (ou clic droit) sur l'application LilyPond
381 et sélectionner @q{Afficher le contenu du paquet}.
384 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
388 Les répertoires @file{ly/} et @file{scm/} sont tout particulièrement
389 intéressants. En effet les fichiers du type
390 @file{ly/property-init.ly} ou encore @file{ly/declarations-init.ly}
391 déterminent toutes les définitions avancées communes.
393 @node Fitting music onto fewer pages
394 @section Fitting music onto fewer pages
396 Parfois, une partition peut se terminer avec seulement
397 un ou deux systèmes sur la dernière page. Ceci peut être ennuyeux
398 surtout si vous constatez, en regardant les pages précédentes, qu'il
399 reste encore beaucoup de place sur celles-ci.
401 Si vous vous intéressez aux problèmes de mise en page,
402 @code{annotate-spacing} peut alors être un outil d'une valeur
403 inestimable. Cette commande imprime les valeurs
404 de nombreuses commandes d'espacement concernant la mise en page.
405 Consultez @ruser{Displaying spacing} pour de plus amples informations. À l'aide
406 des informations données par @code{annotate-spacing}, on peut
407 voir quelles marges il est souhaitable de modifier afin de résoudre le
411 En plus d'agir sur les marges, il existe d'autres possibilités
412 qui permettent de gagner de la place.
416 Demander à LilyPond de placer les systèmes aussi
417 près que possible les uns des autres (pour en disposer autant
418 que possible sur une page), tout en répartissant les systèmes afin
419 de ne pas laisser de blanc en bas de la dernière page.
423 between-system-padding = #0.1
424 between-system-space = #0.1
425 ragged-last-bottom = ##f
431 Obliger LilyPond à mettre un certain nombre de systèmes
432 par page. Par exemple, si LilyPond veut placer onze systèmes dans une page,
433 vous pouvez l'obliger à n'en mettre que dix.
442 Supprimer (ou réduire) les objets qui augmentent la hauteur du
443 système. C'est le cas en particulier de certaines reprises (avec des
444 alternatives) qui placent des crochets au dessus des portées. Si ces crochets
445 de reprise se poursuivent sur deux systèmes, ils prendront plus de
446 place que s'ils sont regroupés sur un même système.
448 Un autre exemple : déplacer les nuances qui @qq{débordent} d'un système.
450 @lilypond[verbatim,quote,fragment]
453 \override DynamicLineSpanner #'padding = #-1.8
454 \override DynamicText #'extra-offset = #'( -2.1 . 0)
460 Modifier l'espacement vertical avec @code{SpacingSpanner}. Reportez-vous à
461 @ruser{Changing horizontal spacing} pour plus de détails.
463 @lilypond[verbatim,quote]
466 g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
467 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
468 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
469 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
474 \override SpacingSpanner
475 #'base-shortest-duration = #(ly:make-moment 1 4)
484 @node Advanced tweaks with Scheme
485 @section Advanced tweaks with Scheme
487 Nous avons déjà vu comment le résultat obtenu avec LilyPond peut être
488 largement personnalisé à l'aide de commandes comme
489 @code{\override TextScript #'extra-offset = ( 1 . -1)}. Cependant,
490 l'utilisation de Scheme ouvre des possibilités encore plus grandes.
491 Pour des explications complètes là-dessus, consultez le
492 @ruser{Scheme tutorial} et les @ruser{Interfaces for programmers}.
494 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
496 @lilypond[quote,verbatim,ragged-right]
497 padText = #(define-music-function (parser location padding) (number?)
499 \once \override TextScript #'padding = #$padding
507 c4^"piu mosso" fis a g
510 On peut s'en servir pour créer de nouvelles commandes :
512 @lilypond[quote,verbatim,ragged-right]
513 tempoMark = #(define-music-function (parser location padding marktext)
516 \once \override Score . RehearsalMark #'padding = $padding
517 \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
518 \mark \markup { \bold $marktext }
523 \tempoMark #3.0 #"Allegro"
528 On peut même y inclure des expressions musicales :
530 @lilypond[quote,verbatim,ragged-right]
531 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
538 \pattern {d16 dis} { ais16-> b\p }
543 @node Avoiding tweaks with slower processing
544 @section Avoiding tweaks with slower processing
546 LilyPond peut effectuer des vérifications supplémentaires lors du
547 traitement des fichiers, cependant le rendu nécessitera alors plus de
548 temps. En contrepartie, il y aura moins d'ajustements manuels à réaliser.
552 %% Ceci sert à s'assurer que les indications textuelles resteront à l'intérieur des marges de la page.
553 \override Score.PaperColumn #'keep-inside-line = ##t