]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/user/tweaks.itely
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
[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 @c Translators: Valentin Villenave, Nicolas Klutchnikoff
11 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
12
13 @node Tweaking output
14 @chapter Tweaking output
15
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.
19
20 @menu
21 * Moving objects::              
22 * Fixing overlapping notation::  
23 * Common tweaks::               
24 * Default files::               
25 * Fitting music onto fewer pages::  
26 * Advanced tweaks with Scheme::  
27 * Avoiding tweaks with slower processing::  
28 @end menu
29
30
31 @node Moving objects
32 @section Moving objects
33
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.
37
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.
45
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
50 @end lilypond
51
52 @cindex padding
53
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.
60
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
66 @end lilypond
67
68
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 ?
76
77
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 
83 clairement ici :
84
85 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
86   % temporary code to break this example:
87   \override TextScript #'outside-staff-priority = ##f
88 c4^"piu mosso" b a b
89 \once \override TextScript #'padding = #4.6
90 c4^"piu mosso" d e f
91 \once \override TextScript #'staff-padding = #4.6
92 c4^"piu mosso" fis a g
93 \break
94 c'4^"piu mosso" b a b
95 \once \override TextScript #'padding = #4.6
96 c4^"piu mosso" d e f
97 \once \override TextScript #'staff-padding = #4.6
98 c4^"piu mosso" fis a g
99 @end lilypond
100
101 @cindex extra-offset
102
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.
111
112
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
118 @end lilypond
119
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.
125
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
131 @end lilypond
132
133 @noindent
134
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.
139
140 Une dernière mise en garde : dans cette section, nous avons eu recours à
141
142 @example
143 \once \override TextScript @dots{}
144 @end example
145
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}.
153
154 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
155   % temporary code to break this example:
156   \override TextScript #'outside-staff-priority = ##f
157 c4^"piu mosso" b
158 \once \override TextScript #'padding = #4.6
159   a4 b
160 c4^"piu mosso" d e f
161 \once \override TextScript #'padding = #4.6
162 c4^"piu mosso" d e f
163 c4^"piu mosso" d e f
164 \break
165 \override TextScript #'padding = #4.6
166 c4^"piu mosso" d e f
167 c4^"piu mosso" d e f
168 \revert TextScript #'padding
169 c4^"piu mosso" d e f
170 @end lilypond
171
172 @seealso
173
174 Dans ce même manuel : @ruser{The \override command}, @ruser{Common tweaks}.
175
176
177 @node Fixing overlapping notation
178 @section Fixing overlapping notation
179
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.
184
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 
188
189 @quotation
190 @seealso
191
192 Référence du programme : @internalsref{DynamicText}, @internalsref{Hairpin}.
193 Le placement vertical de ces symboles est contrôlé par
194 @internalsref{DynamicLineSpanner}.
195 @end quotation
196
197 @noindent
198
199 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
200
201 @example
202 \override DynamicLineSpanner #'padding = #2.0
203 @end example
204
205 Nous ne listerons pas ici tous les types d'objets, mais seulement
206 les plus communs :
207
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}
218 @end multitable
219
220
221 @node Common tweaks
222 @section Common tweaks
223
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.
228
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.
233
234
235 @itemize @bullet
236
237 @cindex padding
238
239 @item
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}.
244
245 @lilypond[quote,fragment,relative=1,verbatim]
246 c2\fermata
247 \override Script #'padding = #3
248 b2\fermata
249 @end lilypond
250
251 @lilypond[quote,fragment,relative=1,verbatim]
252 % This will not work, see below:
253 \override MetronomeMark #'padding = #3
254 \tempo 4=120
255 c1
256 % This works:
257 \override Score.MetronomeMark #'padding = #3
258 \tempo 4=80
259 d1
260 @end lilypond
261
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}.
267
268 @cindex extra-offset
269
270 @item
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.
277
278 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
279 plus bas de 1.8 espaces :
280
281 @lilypond[quote,fragment,relative=1,verbatim]
282 \stemUp
283 f-5
284 \once \override Fingering
285     #'extra-offset = #'(-0.3 . -1.8)
286 f-5
287 @end lilypond
288
289 @item
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.
295
296 @cindex transparents, objets
297 @cindex suppression d'objets
298 @cindex masquage d'objets
299 @cindex invisibles, objets
300
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
304 autre voix :
305
306 @lilypond[quote,fragment,relative=2]
307 << {
308   b8~ b8\noBeam
309 } \\ {
310   b[ g8]
311 } >>
312 @end lilypond
313
314 @noindent
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 :
317
318
319 @lilypond[quote,fragment,relative=2,verbatim]
320 << {
321   \once \override Stem #'transparent = ##t
322   b8~ b8\noBeam
323 } \\ {
324   b[ g8]
325 } >>
326 @end lilypond
327
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} :
331
332 @lilypond[quote,fragment,relative=2,verbatim]
333 << {
334   \once \override Stem #'transparent = ##t
335   \once \override Stem #'length = #8
336   b8~ b8\noBeam
337 } \\ {
338   b[ g8]
339 } >>
340 @end lilypond
341
342 @end itemize
343
344 @cindex retouches, distances
345 @cindex distances
346
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.
354
355
356 @node Default files
357 @section Default files
358
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.
362
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.
371
372 @itemize @bullet
373
374 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
375
376 @item Mac OS X :
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}.
382
383
384 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
385
386 @end itemize
387
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.
392
393 @node Fitting music onto fewer pages
394 @section Fitting music onto fewer pages
395
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.
400
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
408 problème.
409
410
411 En plus d'agir sur les marges, il existe d'autres possibilités
412 qui permettent de gagner de la place.
413
414 @itemize
415 @item
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.
420
421 @example
422 \paper @{
423   between-system-padding = #0.1
424   between-system-space = #0.1
425   ragged-last-bottom = ##f
426   ragged-bottom = ##f
427 @}
428 @end example
429
430 @item
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.
434
435 @example
436 \paper @{
437   system-count = #10
438 @}
439 @end example
440
441 @item
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.
447
448 Un autre exemple : déplacer les nuances qui @qq{débordent} d'un système.
449
450 @lilypond[verbatim,quote,fragment]
451 \relative c' {
452   e4 c g\f c
453   \override DynamicLineSpanner #'padding = #-1.8
454   \override DynamicText #'extra-offset = #'( -2.1 . 0)
455   e4 c g\f c
456 }
457 @end lilypond
458
459 @item
460 Modifier l'espacement vertical avec @code{SpacingSpanner}.  Reportez-vous à
461 @ruser{Changing horizontal spacing} pour plus de détails.
462
463 @lilypond[verbatim,quote]
464 \score {
465   \relative c'' {
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 |
470   }
471   \layout {
472     \context {
473       \Score
474       \override SpacingSpanner
475                 #'base-shortest-duration = #(ly:make-moment 1 4)
476     }
477   }
478 }
479 @end lilypond
480
481 @end itemize
482
483
484 @node Advanced tweaks with Scheme
485 @section Advanced tweaks with Scheme
486
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}.
493
494 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
495
496 @lilypond[quote,verbatim,ragged-right]
497 padText = #(define-music-function (parser location padding) (number?)
498 #{
499   \once \override TextScript #'padding = #$padding
500 #})
501
502 \relative c''' {
503   c4^"piu mosso" b a b
504   \padText #1.8
505   c4^"piu mosso" d e f
506   \padText #2.6
507   c4^"piu mosso" fis a g
508 }
509 @end lilypond
510 On peut s'en servir pour créer de nouvelles commandes :
511
512 @lilypond[quote,verbatim,ragged-right]
513 tempoMark = #(define-music-function (parser location padding marktext)
514                                     (number? string?)
515 #{
516   \once \override Score . RehearsalMark #'padding = $padding
517   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
518   \mark \markup { \bold $marktext }
519 #})
520
521 \relative c'' {
522   c2 e
523   \tempoMark #3.0 #"Allegro"
524   g c
525 }
526 @end lilypond
527
528 On peut même y inclure des expressions musicales :
529
530 @lilypond[quote,verbatim,ragged-right]
531 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
532 #{
533   $x e8 a b $y b a e
534 #})
535
536 \relative c''{
537   \pattern c8 c8\f
538   \pattern {d16 dis} { ais16-> b\p }
539 }
540 @end lilypond
541
542
543 @node Avoiding tweaks with slower processing
544 @section Avoiding tweaks with slower processing
545
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.
549
550   
551 @example
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 
554 @end example