]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/user/tweaks.itely
Dist documentation text file too.
[lilypond.git] / Documentation / fr / user / tweaks.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2 @c This file is part of lilypond.tely
3 @ignore
4     Translation of GIT committish: 964d024dd4f022ba7cd66adc13c0169035d4c4e5
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @node Tweaking output
11 @chapter Tweaking output
12
13 Ce chapitre indique comment modifier le résultat que vous obtiendrez.
14 LilyPond offre de nombreuses possibilités de réglages, permettant de modifier
15 quasiment chaque élément de votre partition.
16
17 @menu
18 * Moving objects::              
19 * Fixing overlapping notation::  
20 * Common tweaks::               
21 * Default files::               
22 * Fitting music onto fewer pages::  
23 * Advanced tweaks with Scheme::  
24 * Avoiding tweaks with slower processing::  
25 @end menu
26
27
28 @node Moving objects
29 @section Moving objects
30
31 Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
32 Certains éléments sur la partition peuvent se chevaucher, ce qui est 
33 regrettable mais, le plus souvent, facile à corriger.
34
35 @c  FIXME: find a better example for 5.1 Moving Objects.  -gp
36 @c  yes, I want this TODO to be visible to end-users.  It's better
37 @c  than having nothing at all.
38 À FAIRE : les modifications de la gestion des espacements de la version 2.12
39 feront perdre leur pertinence aux exemples suivants.  Ils démontrent cependant 
40 la puissance de LilyPond, et justifient à ce titre leur présence dans
41 ces lignes, tant que d'autres exemples n'auront pas été proposés.
42
43 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
44   % temporary code to break this example:
45   \override TextScript #'outside-staff-priority = ##f
46 e4^\markup{ \italic ritenuto } g b e
47 @end lilypond
48
49 @cindex padding
50
51 Le plus simple est ici d'augmenter la distance entre l'objet (du
52 texte comme ici, ou bien des nuances ou des doigtés) et la note.
53 Dans LilyPond, il s'agit de la propriété @code{padding}, qui
54 se mesure en espaces relatifs à la taille de la portée. Pour la plupart
55 des objets (chacun ayant sa propre valeur), elle est définie à 1.0, ou
56 un peu moins.  Nous voulons ici l'augmenter : essayons 1.5.
57
58 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
59   % temporary code to break this example:
60   \override TextScript #'outside-staff-priority = ##f
61 \once \override TextScript #'padding = #1.5
62 e4^\markup{ \italic ritenuto } g b e
63 @end lilypond
64
65
66 C'est déjà mieux ! Mais on peut certainement encore améliorer le résultat. 
67 Il nous semble, après plusieurs essais, que la meilleure valeur
68 dans ce cas soit 2.3. Toutefois, ce constat est le fruit 
69 d'expérimentations et de goût personnel en matière de notation.
70 Essayez le même exemple avec 2.3... mais également avec 
71 des valeurs plus grandes (ou plus petites).
72 À votre avis, quelle est la meilleure version ?
73
74
75 La propriété @code{staff-padding} est de nature similaire.
76 @code{padding} détermine l'espace minimum entre un objet et l'objet
77 le plus proche (le plus souvent une note ou les lignes de la portée) ;
78 @code{staff-padding} détermine pour sa part l'espace minimum entre
79 un objet et la portée. La différence est subtile, mais vous apparaîtra 
80 clairement ici :
81
82 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
83   % temporary code to break this example:
84   \override TextScript #'outside-staff-priority = ##f
85 c4^"piu mosso" b a b
86 \once \override TextScript #'padding = #4.6
87 c4^"piu mosso" d e f
88 \once \override TextScript #'staff-padding = #4.6
89 c4^"piu mosso" fis a g
90 \break
91 c'4^"piu mosso" b a b
92 \once \override TextScript #'padding = #4.6
93 c4^"piu mosso" d e f
94 \once \override TextScript #'staff-padding = #4.6
95 c4^"piu mosso" fis a g
96 @end lilypond
97
98 @cindex extra-offset
99
100 Une autre démarche permet de contrôler totalement la position d'un
101 objet --- on peut le déplacer horizontalement ou verticalement.  Il
102 suffit d'avoir recours à la propriété @code{extra-offset}.  En fait
103 c'est une méthode plus complexe, qui peut en outre poser des
104 problèmes.  Quand on déplace un objet à l'aide de @code{extra-offset},
105 le déplacement est effectué après que LilyPond a placé tous les autres
106 objets.  Par conséquent, l'objet ainsi déplacé peut venir
107 recouvrir d'autres objets déjà placés.
108
109
110 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
111   % temporary code to break this example:
112   \override TextScript #'outside-staff-priority = ##f
113 \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
114 e4^\markup{ \italic ritenuto } g b e
115 @end lilypond
116
117 Lorsqu'on utilise @code{extra-offset}, le premier nombre décrit le
118 déplacement horizontal (négatif pour un déplacement vers la gauche) 
119 tandis que le deuxième décrit un déplacement vertical (positif 
120 pour le haut).  Après quelques essais, on peut choisir les valeurs suivantes
121 qui semblent donner un résultat satisfaisant.
122
123 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
124   % temporary code to break this example:
125   \override TextScript #'outside-staff-priority = ##f
126 \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
127 e4^\markup{ \italic ritenuto } g b e
128 @end lilypond
129
130 @noindent
131
132 Une fois encore, c'est après quelques tâtonnements que l'on a abouti à
133 ces nombres, au regard du résultat final.  Si vous souhaitez que 
134 le texte soit plus haut, plus à gauche, etc. essayez vous-même et choisissez
135 aprés avoir regardé le résultat.
136
137 Une dernière mise en garde : dans cette section, nous avons eu recours à
138
139 @example
140 \once \override TextScript @dots{}
141 @end example
142
143 ce qui permet de régler le placement du texte pour la note suivante. 
144 Mais si cette note n'a pas de texte, le réglage ne s'appliquera pas
145 et n'attendra @strong{pas} le prochain texte.  Pour que ce comportement 
146 persiste après la commande, ne mettez pas @code{\once}.  Votre réglage
147 s'appliquera alors partout, jusqu'à ce que vous l'annuliez au moyen de
148 la commande @code{\revert}.  Ceci est expliqué en détail dans 
149 @ruser{The \override command}.
150
151 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
152   % temporary code to break this example:
153   \override TextScript #'outside-staff-priority = ##f
154 c4^"piu mosso" b
155 \once \override TextScript #'padding = #4.6
156   a4 b
157 c4^"piu mosso" d e f
158 \once \override TextScript #'padding = #4.6
159 c4^"piu mosso" d e f
160 c4^"piu mosso" d e f
161 \break
162 \override TextScript #'padding = #4.6
163 c4^"piu mosso" d e f
164 c4^"piu mosso" d e f
165 \revert TextScript #'padding
166 c4^"piu mosso" d e f
167 @end lilypond
168
169 @seealso
170
171 Dans ce même manuel : @ruser{The \override command}, @ruser{Common tweaks}.
172
173
174 @node Fixing overlapping notation
175 @section Fixing overlapping notation
176
177 Dans la section @ruser{Moving objects}, nous avons vu comment
178 déplacer un objet @code{TextScript}.  Ce même procédé peut être
179 appliqué à d'autres types d'objet : il vous suffira de remplacer
180 @code{TextScript} par le nom de l'objet en question.
181
182 Pour trouver cette dénomination, regardez les liens @q{@strong{Voir aussi}}
183 en bas des pages de la documentation.  Par exemple, en bas de la page
184 @ruser{Dynamics}, nous trouvons 
185
186 @quotation
187 @seealso
188
189 Référence du programme : @internalsref{DynamicText}, @internalsref{Hairpin}.
190 Le placement vertical de ces symboles est contrôlé par
191 @internalsref{DynamicLineSpanner}.
192 @end quotation
193
194 @noindent
195
196 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
197
198 @example
199 \override DynamicLineSpanner #'padding = #2.0
200 @end example
201
202 Nous ne listerons pas ici tous les types d'objets, mais seulement
203 les plus communs :
204
205 @multitable @columnfractions .33 .66
206 @headitem Type d'objet            @tab Nom de l'objet
207 @item Nuances (verticalement)     @tab @code{DynamicLineSpanner}
208 @item Nuances (horizontalement)   @tab @code{DynamicText}
209 @item Laisons de tenue            @tab @code{Tie}
210 @item Liaisons                    @tab @code{Slur}
211 @item Indications d'articulation  @tab @code{Script}
212 @item Doigtés                     @tab @code{Fingering}
213 @item Textes (@code{^"texte"})    @tab @code{TextScript}
214 @item Repères                     @tab @code{RehearsalMark}
215 @end multitable
216
217
218 @node Common tweaks
219 @section Common tweaks
220
221 Certains réglages sont si courants que des raccourcis sont fournis
222 sous forme de commandes telles que @code{\slurUp} ou @code{\stemDown}.  
223 Toutes ces commandes sont décrites dans les différentes sections
224 de la Référence de notation.
225
226 La liste complète des modifications possibles pour chaque type d'objet
227 (tel que liaison ou ligature) se trouve dans la Référence du
228 programme.  Cependant, certaines propriétés sont communes à de nombreux
229 objets, et on peut de ce fait définir quelques réglages génériques.
230
231
232 @itemize @bullet
233
234 @cindex padding
235
236 @item
237 La propriété @code{padding} peut être définie de manière à
238 accroître (ou décroître) la distance entre les symboles qui se
239 placent au-dessus ou au-dessous des notes.  Ce qui s'applique à
240 tous les objets régis par @code{side-position-interface}.
241
242 @lilypond[quote,fragment,relative=1,verbatim]
243 c2\fermata
244 \override Script #'padding = #3
245 b2\fermata
246 @end lilypond
247
248 @lilypond[quote,fragment,relative=1,verbatim]
249 % This will not work, see below:
250 \override MetronomeMark #'padding = #3
251 \tempo 4=120
252 c1
253 % This works:
254 \override Score.MetronomeMark #'padding = #3
255 \tempo 4=80
256 d1
257 @end lilypond
258
259 Notez, dans le second exemple, l'importance de savoir à quel contexte
260 correspond l'objet.  Dans la mesure où l'objet @code{MetronomeMark}
261 appartient au contexte @code{Score}, ses modifications affectées au
262 contexte @code{Voice} ne l'affecteront pas.  Pour plus de détails, voir 
263 @ruser{Constructing a tweak}.
264
265 @cindex extra-offset
266
267 @item
268 La propriété @code{extra-offset} permet de déplacer latéralement et
269 verticalement ; c'est pourquoi elle requiert deux nombres.  Le premier
270 affecte le placement horizontal (un nombre positif déplace l'objet
271 vers la droite) ; le second le placement vertical (un nombre positif
272 déplace l'objet vers le haut).  Cette propriété est de bas niveau : le
273 moteur de formatage ne tient aucun compte des placements qu'elle induit.
274
275 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
276 plus bas de 1.8 espaces :
277
278 @lilypond[quote,fragment,relative=1,verbatim]
279 \stemUp
280 f-5
281 \once \override Fingering
282     #'extra-offset = #'(-0.3 . -1.8)
283 f-5
284 @end lilypond
285
286 @item
287 La propriété @code{transparent} imprime les objets avec de 
288 l'@q{encre invisible} : l'objet n'est pas visible, mais tous
289 les comportement le concernant s'appliquent quand même.  Il occupe
290 une certaine place, intervient dans la gestion des collisions, et on
291 peut lui attacher des liaisons ou des ligatures.
292
293 @cindex transparents, objets
294 @cindex suppression d'objets
295 @cindex masquage d'objets
296 @cindex invisibles, objets
297
298 L'exemple suivant montre comment tenir des notes entre différentes voix,
299 au moyen de liaisons.  Ces liaisons de tenue, en principe, ne peuvent relier
300 que deux notes d'une même voix.  On introduit donc la liaison dans une
301 autre voix :
302
303 @lilypond[quote,fragment,relative=2]
304 << {
305   b8~ b8\noBeam
306 } \\ {
307   b[ g8]
308 } >>
309 @end lilypond
310
311 @noindent
312 et on efface la première croche (hampe vers le haut) de ladite voix ; 
313 maintenant la liaison semble passer d'une voix à l'autre :
314
315
316 @lilypond[quote,fragment,relative=2,verbatim]
317 << {
318   \once \override Stem #'transparent = ##t
319   b8~ b8\noBeam
320 } \\ {
321   b[ g8]
322 } >>
323 @end lilypond
324
325 Pour s'assurer que le crochet de la hampe que nous avons effacée ne 
326 raccourcira pas la liaison, nous allons également rallonger cette hampe,
327 en attribuant à la propriété @code{length} la valeur @code{8} :
328
329 @lilypond[quote,fragment,relative=2,verbatim]
330 << {
331   \once \override Stem #'transparent = ##t
332   \once \override Stem #'length = #8
333   b8~ b8\noBeam
334 } \\ {
335   b[ g8]
336 } >>
337 @end lilypond
338
339 @end itemize
340
341 @cindex retouches, distances
342 @cindex distances
343
344 Les distances dans LilyPond sont mesurées dans l'unité staff-space
345 (espace de portée) tandis que la plupart des propriétés relatives aux
346 épaisseurs sont mesurées à l'aide de l'unité line-thickness (épaiseur
347 de ligne). Toutefois, certaines d'entre-elles échappent à cette règle
348 : par exemple l'épaisseur des liens de croches est mesurée à l'aide de
349 l'unité staff-space.  Pour de plus amples informations, 
350 consultez les sections correspondantes de la Référence du programme.
351
352
353 @node Default files
354 @section Default files
355
356 La Référence du programme contient
357 beaucoup d'informations sur LilyPond. Cependant vous pouvez en découvrir 
358 encore plus en consultant les fichiers internes de LilyPond.
359
360 Des réglages par défaut (tels que les définitions des blocs
361 @code{\header@{@}}) sont contenus dans des fichiers @code{.ly}. D'autres 
362 (comme les définitions des commandes @qq{markup} ) sont contenus dans
363 des fichiers @code{.scm} (Scheme).  Malheureusement, des explications
364 plus complètes dépassent le cadre de ce manuel.
365 Les utilisateurs qui souhaiteraient comprendre le fonctionnement de
366 ces fichiers de configuration doivent être avertis que des
367 connaissances techniques substantielles et beaucoup de temps sont nécessaires.
368
369 @itemize @bullet
370
371 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
372
373 @item Mac OS X :
374 @file{@var{dossierduprogramme}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
375 Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
376 taper @code{cd} suivi du chemin complet ci-dessus ; soit
377 Control-cliquer (ou clic droit) sur l'application LilyPond
378 et sélectionner @q{Afficher le contenu du paquet}.
379
380
381 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
382
383 @end itemize
384
385 Les répertoires @file{ly/} et @file{scm/} sont tout particulièrement
386 intéressants.  En effet les fichiers du type
387 @file{ly/property-init.ly} ou encore @file{ly/declarations-init.ly}
388 déterminent toutes les définitions avancées communes.
389
390 @node Fitting music onto fewer pages
391 @section Fitting music onto fewer pages
392
393 Parfois, une partition peut se terminer avec seulement 
394 un ou deux systèmes sur la dernière page. Ceci peut être ennuyeux
395 surtout si vous constatez, en regardant les pages précédentes, qu'il
396 reste encore beaucoup de place sur celles-ci.
397
398 Si vous vous intéressez aux problèmes de mise en page,
399 @code{annotate-spacing} peut alors être un outil d'une valeur
400 inestimable.  Cette commande imprime les valeurs 
401 de nombreuses commandes d'espacement concernant la mise en page.  
402 Consultez @ruser{Displaying spacing} pour de plus amples informations.  À l'aide 
403 des informations données par @code{annotate-spacing}, on peut 
404 voir quelles marges il est souhaitable de modifier afin de résoudre le
405 problème.
406
407
408 En plus d'agir sur les marges, il existe d'autres possibilités
409 qui permettent de gagner de la place.
410
411 @itemize
412 @item
413 Demander à LilyPond de placer les systèmes aussi 
414 près que possible les uns des autres (pour en disposer autant
415 que possible sur une page), tout en répartissant les systèmes afin
416 de ne pas laisser de blanc en bas de la dernière page.
417
418 @example
419 \paper @{
420   between-system-padding = #0.1
421   between-system-space = #0.1
422   ragged-last-bottom = ##f
423   ragged-bottom = ##f
424 @}
425 @end example
426
427 @item
428 Obliger LilyPond à mettre un certain nombre de systèmes
429 par page.  Par exemple, si LilyPond veut placer onze systèmes dans une page,
430 vous pouvez l'obliger à n'en mettre que dix.
431
432 @example
433 \paper @{
434   system-count = #10
435 @}
436 @end example
437
438 @item
439 Supprimer (ou réduire) les objets qui augmentent la hauteur du
440 système.  C'est le cas en particulier de certaines reprises (avec des 
441 alternatives) qui placent des crochets au dessus des portées. Si ces crochets 
442 de reprise se poursuivent sur deux systèmes, ils prendront plus de
443 place que s'ils sont regroupés sur un même système.
444
445 Un autre exemple : déplacer les nuances qui @qq{débordent} d'un système.
446
447 @lilypond[verbatim,quote,fragment]
448 \relative c' {
449   e4 c g\f c
450   \override DynamicLineSpanner #'padding = #-1.8
451   \override DynamicText #'extra-offset = #'( -2.1 . 0)
452   e4 c g\f c
453 }
454 @end lilypond
455
456 @item
457 Modifier l'espacement vertical avec @code{SpacingSpanner}.  Reportez-vous à
458 @ruser{Changing horizontal spacing} pour plus de détails.
459
460 @lilypond[verbatim,quote]
461 \score {
462   \relative c'' {
463     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
464     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
465     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
466     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
467   }
468   \layout {
469     \context {
470       \Score
471       \override SpacingSpanner
472                 #'base-shortest-duration = #(ly:make-moment 1 4)
473     }
474   }
475 }
476 @end lilypond
477
478 @end itemize
479
480
481 @node Advanced tweaks with Scheme
482 @section Advanced tweaks with Scheme
483
484 Nous avons déjà vu comment le résultat obtenu avec LilyPond peut être
485 largement personnalisé à l'aide de commandes comme 
486 @code{\override TextScript #'extra-offset = ( 1 . -1)}.  Cependant,
487 l'utilisation de Scheme ouvre des possibilités encore plus grandes.
488 Pour des explications complètes là-dessus, consultez le 
489 @ruser{Scheme tutorial}  et les @ruser{Interfaces for programmers}.
490
491 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
492
493 @lilypond[quote,verbatim,ragged-right]
494 padText = #(define-music-function (parser location padding) (number?)
495 #{
496   \once \override TextScript #'padding = #$padding
497 #})
498
499 \relative c''' {
500   c4^"piu mosso" b a b
501   \padText #1.8
502   c4^"piu mosso" d e f
503   \padText #2.6
504   c4^"piu mosso" fis a g
505 }
506 @end lilypond
507 On peut s'en servir pour créer de nouvelles commandes :
508
509 @lilypond[quote,verbatim,ragged-right]
510 tempoMark = #(define-music-function (parser location padding marktext)
511                                     (number? string?)
512 #{
513   \once \override Score . RehearsalMark #'padding = $padding
514   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
515   \mark \markup { \bold $marktext }
516 #})
517
518 \relative c'' {
519   c2 e
520   \tempoMark #3.0 #"Allegro"
521   g c
522 }
523 @end lilypond
524
525 On peut même y inclure des expressions musicales :
526
527 @lilypond[quote,verbatim,ragged-right]
528 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
529 #{
530   $x e8 a b $y b a e
531 #})
532
533 \relative c''{
534   \pattern c8 c8\f
535   \pattern {d16 dis} { ais16-> b\p }
536 }
537 @end lilypond
538
539
540 @node Avoiding tweaks with slower processing
541 @section Avoiding tweaks with slower processing
542
543 LilyPond peut effectuer des vérifications supplémentaires lors du 
544 traitement des fichiers, cependant le rendu nécessitera alors plus de
545 temps.  En contrepartie, il y aura moins d'ajustements manuels à réaliser.
546
547   
548 @example
549 %%  Ceci sert à s'assurer que les indications textuelles resteront à l'intérieur des marges de la page.
550 \override Score.PaperColumn #'keep-inside-line = ##t 
551 @end example