]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/notation/input.itely
Run update-with-convert-ly
[lilypond.git] / Documentation / fr / notation / input.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2
3 @ignore
4     Translation of GIT committish: 3930746d3e6cab846a02332c39510c48027c6006
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.15.17"
12
13 @c Translators: Jean-Charles Malahieude, Valentin Villenave
14
15 @node Généralités en matière d'entrée et sortie
16 @chapter Généralités en matière d'entrée et sortie
17 @translationof General input and output
18
19 Nous n'allons pas, dans ce chapitre, parler directement de notation,
20 mais plutôt du contenu des fichiers source et du résultat produit par
21 LilyPond.
22
23
24 @menu
25 * Agencement du code::
26 * Titres et entêtes::
27 * Travail sur des fichiers texte::
28 * Contrôle des sorties::
29 * Sortie MIDI::
30 * Extraction d'information musicale::
31 @end menu
32
33 @node Agencement du code
34 @section Agencement du code
35 @translationof Input structure
36
37 LilyPond traite des fichiers textuels.  Ces fichiers portent par
38 convention une extension @code{.ly}.
39
40 @menu
41 * Structure d'une partition::
42 * Plusieurs partitions dans un même ouvrage::
43 * Plusieurs éditions pour une même source::
44 * Nom des fichiers de sortie::
45 * Structure de fichier::
46 @end menu
47
48
49 @node Structure d'une partition
50 @subsection Structure d'une partition
51 @translationof Structure of a score
52
53 @funindex \score
54
55 Un bloc @code{\score} contient obligatoirement une seule expression
56 musicale délimitée par des accolades@tie{}:
57
58 @example
59 \score @{
60 ...
61 @}
62 @end example
63
64 @warning{Il ne doit y avoir qu'@strong{une seule} expression musicale
65 globale dans un bloc @code{@bs{}score}, et elle @strong{doit} être
66 bornée par une paire d'accolades.}
67
68 Cette unique expression musicale peut être de n'importe quelle taille et
69 contenir d'autres expressions musicales aussi complexes soient elles.
70 Voici quelques exemples d'expression musicale@tie{}:
71
72 @example
73 @{ c'4 c' c' c' @}
74 @end example
75
76 @lilypond[verbatim,quote]
77 {
78   { c'4 c' c' c' }
79   { d'4 d' d' d' }
80 }
81 @end lilypond
82
83 @lilypond[verbatim,quote]
84 <<
85   \new Staff { c'4 c' c' c' }
86   \new Staff { d'4 d' d' d' }
87 >>
88 @end lilypond
89
90 @example
91 @{
92   \new GrandStaff <<
93     \new StaffGroup <<
94       \new Staff @{ \flute @}
95       \new Staff @{ \hautbois @}
96     >>
97     \new StaffGroup <<
98       \new Staff @{ \violonI @}
99       \new Staff @{ \violonII @}
100     >>
101   >>
102 @}
103 @end example
104
105 Les commentaires constituent l'une des rares exceptions à cette règle
106 immuable -- voir @ref{Structure de fichier} pour les autres.  Qu'il
107 s'agisse d'une seule ligne ou de tout un bloc -- délimité par @code{%@{
108 .. %@}} -- un commentaire peut se placer n'importe où dans le fichier
109 source, aussi bien à l'intérieur qu'à l'extérieur du bloc @code{\score},
110 ou encore à l'intérieur ou à l'extérieur de l'expression musicale
111 contenue dans un bloc @code{\score}.
112
113 Lorsqu'un fichier ne comprend qu'un bloc @code{\score}, celui-ci est
114 implicitement inclus dans un bloc @code{\book}.  Le bloc @code{\book}
115 d'un fichier source permet la production d'au moins un fichier dont le
116 nom sera, par défaut, déduit du fichier source@tie{}: le traitement de
117 @file{fandangopourelephants.ly} produira donc
118 @file{fandangopourelephants.pdf}.
119
120 Pour de plus amples informations à propos du bloc @code{\book}, lisez
121 @ref{Plusieurs partitions dans un même ouvrage},
122 @ref{Plusieurs éditions pour une même source} et
123 @ref{Structure de fichier}.
124
125 @seealso
126 Manuel d'initiation :
127 @rlearning{Travail sur les fichiers d'entrée},
128 @rlearning{Les expressions musicales en clair},
129 @rlearning{La partition est une (unique) expression musicale composée}.
130
131
132 @node Plusieurs partitions dans un même ouvrage
133 @subsection Plusieurs partitions dans un même ouvrage
134 @translationof Multiple scores in a book
135
136 @cindex mouvements, plusieurs
137 @cindex plusieurs mouvements
138
139 @funindex \book
140
141 Un ouvrage peut se composer de plusieurs morceaux et de texte.  C'est le
142 cas des cahiers d'exercices ou d'une partie d'orchestre avec ses
143 différents mouvements.  Chaque mouvement fait l'objet d'un bloc
144 @code{\score},
145
146 @example
147 \score @{
148   @var{..musique..}
149 @}
150 @end example
151
152 et le texte est contenu dans un bloc @code{\markup},
153
154 @example
155 \markup @{
156   @var{..texte..}
157 @}
158 @end example
159
160 @funindex \book
161
162 Les différents mouvements et textes qui apparaissent dans un même
163 fichier @file{.ly} ne composeront en principe qu'un seul fichier
164 résultant.
165
166 @example
167 \score @{
168   @var{..}
169 @}
170 \markup @{
171   @var{..}
172 @}
173 \score @{
174   @var{..}
175 @}
176 @end example
177
178 Attention cependant si vous travaillez avec lilypond-book@tie{}: il vous
179 faudra explicitement mentionner le bloc @code{\book}, en l'absence de
180 quoi seul le premier @code{\score} ou @code{\markup} apparaîtra après
181 traitement.
182
183 L'entête de chaque pièce peut se placer au sein du bloc
184 @code{\score}@tie{}; le contenu du champ @code{piece} viendra s'imprimer
185 avant chaque mouvement.  De même, le titre de l'ouvrage peut se placer
186 au sein du bloc @code{\book}.  Dans le cas contraire, le contenu du bloc
187 @code{\header} placé en début de fichier sera utilisé.
188
189 @example
190 \header @{
191   title = "Huit miniatures"
192   composer = "Igor Stravinsky"
193 @}
194 \score @{
195   @dots{}
196   \header @{ piece = "Romance" @}
197 @}
198 \markup @{
199    ..texte du second couplet..
200 @}
201 \markup @{
202    ..texte du troisième couplet..
203 @}
204 \score @{
205   @dots{}
206   \header @{ piece = "Menuet" @}
207 @}
208 @end example
209
210 @funindex \bookpart
211
212 Plusieurs pièces seront regroupées dans un même @qq{chapitre} à l'aide
213 d'un bloc @code{\bookpart}.  Ces différents @qq{chapitres} sont séparés
214 par un saut de page et peuvent comporter un titre à l'instar de
215 l'ouvrage dès lors que vous y insérez un bloc @code{\header}.
216
217 @example
218 \bookpart @{
219   \header @{
220     title = "Titre de l'ouvrage"
221     subtitle = "Première partie"
222   @}
223   \score @{ @dots{} @}
224   @dots{}
225 @}
226 \bookpart @{
227   \header @{
228     subtitle = "Deuxième partie"
229   @}
230   \score @{ @dots{} @}
231   @dots{}
232 @}
233 @end example
234
235
236 @node Plusieurs éditions pour une même source
237 @subsection Plusieurs éditions pour une même source
238 @translationof Multiple output files from one input file
239
240 Dès lors que vous inscrivez plusieurs blocs @code{\book} dans un même
241 fichier @file{.ly}, chacun d'eux donnera lieu à un résultat indépendant.
242 Lorsqu'aucun bloc @code{\book} n'est spécifié dans le fichier source,
243 LilyPond considère que l'intégralité du fichier constitue un bloc
244 @code{\book} unique, comme indiqué à la rubrique
245 @ref{Structure de fichier}.
246
247 LilyPond fait en sorte, lorsque plusieurs fichiers sont produits à
248 partir d'une même source, qu'aucun résultat d'un bloc @code{\book}
249 n'écrase celui qui a été généré pour un bloc @code{\book} précédent.
250
251 Dans les faits, et si le nom du fichier produit est repris de sa source
252 -- comportement par défaut --, un suffixe lui sera ajouté pour chaque
253 @code{\book}.  Il s'agit en principe d'un pseudo numéro de version.
254 Ainsi, le fichier @file{huitminiatures.ly} qui contiendrait
255
256 @example
257 \book @{
258   \score @{ @dots{} @}
259   \layout @{ @dots{} @}
260 @}
261 \book @{
262   \score @{ @dots{} @}
263   \layout @{ @dots{} @}
264 @}
265 \book @{
266   \score @{ @dots{} @}
267   \layout @{ @dots{} @}
268 @}
269 @end example
270
271 génèrera
272
273 @itemize
274 @item
275 @file{huitminiatures.pdf},
276 @item
277 @file{huitminiatures-1.pdf} et
278 @item
279 @file{huitminiatures-2.pdf}.
280 @end itemize
281
282
283 @node Nom des fichiers de sortie
284 @subsection Nom des fichiers de sortie
285 @translationof Output file names
286
287 LilyPond vous permet de prendre le contrôle dans la dénomination des
288 fichiers que vous voulez générer, quel que soit le moteur de rendu
289 utilisé.
290
291 Nous avons vu dans la rubrique précédente que LilyPond évite les
292 conflits de nom des fichiers qu'il génère à partir d'une même source.
293 Vous pouvez même définir vous-même le suffixe qui sera appliqué à chacun
294 des blocs @code{\book}.  Ainsi, en reprenant l'exemple ci-avant, vous
295 obtiendrez les fichiers @file{huitminiatures-Romance.pdf},
296 @file{huitminiatures-Menuet.pdf} et @file{huitminiatures-Nocturne.pdf}
297 en ajoutant simplement une déclaration @code{\bookOutputSuffix} au sein
298 de chaque bloc @code{\book}.
299
300 @example
301 \book @{
302   \bookOutputSuffix "Romance"
303   \score @{ @dots{} @}
304   \layout @{ @dots{} @}
305 @}
306 \book @{
307   \bookOutputSuffix "Menuet"
308   \score @{ @dots{} @}
309   \layout @{ @dots{} @}
310 @}
311 \book @{
312   \bookOutputSuffix "Nocturne"
313   \score @{ @dots{} @}
314   \layout @{ @dots{} @}
315 @}
316 @end example
317
318 La déclaration @code{\bookOutputName} vous permet de définir vous-même
319 le nom du fichier généré pour un bloc @code{\book}@tie{}:
320
321 @example
322 \book @{
323   \bookOutputName "Romance"
324   \score @{ @dots{} @}
325   \layout @{ @dots{} @}
326 @}
327 \book @{
328   \bookOutputName "Menuet"
329   \score @{ @dots{} @}
330   \layout @{ @dots{} @}
331 @}
332 \book @{
333   \bookOutputName "Nocturne"
334   \score @{ @dots{} @}
335   \layout @{ @dots{} @}
336 @}
337 @end example
338
339 Le traitement de ce fichier produira@tie{}:
340
341 @itemize
342 @item
343 @file{Romance.pdf},
344 @item
345 @file{Menuet.pdf} et
346 @item
347 @file{Nocturne.pdf}.
348 @end itemize
349
350
351 @node Structure de fichier
352 @subsection Structure de fichier
353 @translationof File structure
354
355 @funindex \paper
356 @funindex \midi
357 @funindex \layout
358 @funindex \header
359 @funindex \score
360 @funindex \book
361 @funindex \bookpart
362
363 Un fichier @code{.ly} peut contenir un certain nombre d'expression de
364 haut niveau.  Les expressions de haut niveau sont les suivantes@tie{}:
365
366 @itemize
367 @item
368 Une définition de sortie, comme @code{\paper}, @code{\midi} et
369 @code{\layout}.  Ces définitions, lorsqu'elles se trouvent à un niveau
370 supérieur, s'appliqueront à l'intégralité de l'ouvrage.  Si l'une de ces
371 expression apparaît à plusieurs reprises, la dernière aura préséance.
372
373 @item
374 Une expression scheme pure, telle que
375 @w{@code{#(set-default-paper-size@tie{}"a7"@tie{}'landscape)}} ou
376 @w{@code{#(ly:set-option@tie{}'point-and-click@tie{}#f)}}.
377
378 @item
379 Un bloc @code{\header}, dont le contenu sera de portée globale -- ce qui
380 est le cas en général pour le titre ou l'auteur entre autres.
381
382 @item
383 Un bloc @code{\score} pour la partition.  Cette partition sera assemblée
384 avec les autres partitions se trouvant au même niveau pour composer le
385 @code{\book}.  Vous pouvez modifier ce comportement à l'aide de la
386 variable @code{toplevel-score-handler} placée en tête.
387 @ignore
388 @c FIXME - I cannot read "toplevel-score-handler" in scm/lily.scm -jcm
389 The default handler is defined in the init file @file{../scm/lily.scm}.
390 @end ignore
391
392 @item
393 Un bloc @code{\book} permet de regrouper naturellement plusieurs
394 mouvements -- autrement dit plusieurs blocs @code{\score} -- dans un
395 même document.  Lorsqu'il y a plusieurs @code{\score}s, LilyPond génère
396 un seul fichier dans lequel les mouvements sont mis les uns à la suite
397 des autres, ce pour chacun des blocs @code{\book} rencontrés.  La seule
398 raison qui peut vous demander d'expliciter plusieurs blocs @code{\book}
399 dans un fichier @file{.ly} est lorsque vous avez besoin de générer
400 différents documents à partir d'une même source.  La présence explicite
401 d'un bloc @code{\book} est aussi nécessaire lorsque vous travaillez sur
402 un document lilypond-book qui reprendrait plusieurs @code{\score}s ou
403 @code{\markup}s dans un même extrait.  Vous pouvez modifier ce
404 comportement à l'aide de la variable @code{toplevel-book-handler}
405 placée en tête.
406 @ignore
407 @c FIXME - I cannot read "toplevel-book-handler" in scm/lily.scm -jcm
408 The default handler is defined in the init file @file{../scm/lily.scm}.
409 @end ignore
410
411 @item
412 Un bloc @code{\bookpart}.  Un ouvrage peut se découper en plusieurs
413 parties à l'aide de blocs @code{\bookpart}, aussi bien pour alléger le
414 travail de l'algorithme de calcul des sauts de page, que si les réglages
415 du bloc @code{\paper} diffèrent d'une partie à l'autre.
416
417 @item
418 Une expression musicale telle que
419 @example
420 @{ c'4 d' e'2 @}
421 @end example
422
423 Ce bout de code sera placé dans un @code{\score} et intégré à l'ouvrage
424 en même temps que tous les autres @code{\score}s ou expressions
425 musicales.  En d'autres termes, un fichier qui ne contiendrait que cette
426 simple expression musicale sera traduit en
427
428 @example
429 \book @{
430   \score @{
431     \new Staff @{
432       \new Voice @{
433         @{ c'4 d' e'2 @}
434       @}
435     @}
436   @}
437         \layout @{ @}
438         \header @{ @}
439 @}
440 @end example
441
442 Vous pouvez modifier ce comportement à l'aide de la variable
443 @code{toplevel-music-handler} placée en tête.
444 @ignore
445 @c FIXME - I cannot read "toplevel-music-handler" in scm/lily.scm -jcm
446 The default handler is defined in the init file @file{../scm/lily.scm}.
447 @end ignore
448
449 @item
450 Du texte sous forme de @emph{markup} comme les paroles d'un couplet
451 @example
452 \markup @{
453    2.  Le première ligne du deuxième couplet.
454 @}
455 @end example
456
457 De tels @emph{markups} seront imprimés là où ils apparaissent,
458 avant, après ou entre les expressions musicales.
459
460 @cindex variables
461 @cindex identificateurs
462
463 @item
464 Une variable, ou identificateur, telle que
465 @example
466 toto = @{ c4 d e d @}
467 @end example
468
469 Vous pourrez la réutiliser plus loin dans votre fichier en saisissant
470 simplement @code{\toto}.  Le nom des indentificateurs ne doit être
471 formés que de caractères alphabétiques -- sans chiffre ni caractère
472 souligné ou tiret.
473
474 @end itemize
475
476 Voici trois éléments que vous pouvez placer à un niveau supérieur@tie{}:
477
478 @example
479 \layout @{
480   % pas en pleine largeur
481   ragged-right = ##t
482 @}
483
484 \header @{
485    title = "Do-re-mi"
486 @}
487
488 @{ c'4 d' e2 @}
489 @end example
490
491 Vous pouvez placer, n'importe où dans votre fichier, les instruction
492 suivantes@tie{}:
493
494 @itemize
495 @item @code{\version}
496 @item @code{\include}
497 @item @code{\sourcefilename}
498 @item @code{\sourcefileline}
499 @item
500 Une ligne de commentaire, introduite par le signe @code{%}.
501
502 @item
503 Un bloc de commentaire, délimité par @code{%@{ .. %@}}.
504
505 @end itemize
506
507 @cindex espace
508 @cindex blanc
509
510 Vous pouvez insérer des espaces dans votre fichier source afin de lui
511 apporter une meilleure lisibilité.  Les espaces superflus sont
512 normalement ignorés.  Notez cependant qu'il est des cas où l'espace est
513 requis pour éviter tout risque d'erreur@tie{}:
514
515 @itemize
516 @item
517 Autour d'une accolade, qu'elle soit ouvrant ou fermante ;
518
519 @item
520 Après chaque commande ou variable, autrement dit tout élément qui
521 commence par un @code{\}@tie{};
522
523 @item
524 Après tout élément qui sera interprété comme une expression Scheme,
525 autrement dit tout élément qui commence par un @code{#}@tie{};
526
527 @item
528 Pour séparer les éléments d'une expression Scheme ;
529
530 @item
531 En mode parole -- @code{lyricmode} -- pour séparer les termes des
532 commandes @code{\override} et @code{\set}.  Précisons à ce sujet qu'en
533 plus d'ajouter une espace avant et après l'intégralité de la commande,
534 vous devrez encadrer d'espaces le point et le signe égal qu'elle peut
535 contenir, comme dans
536 @w{@code{\override Score . LyricText #'font-size = #5}}.
537
538 @end itemize
539
540
541 @seealso
542 Manuel d'initiation :
543 @rlearning{Organisation des fichiers LilyPond}.
544
545
546 @node Titres et entêtes
547 @section Titres et entêtes
548 @translationof Titles and headers
549
550 La plupart de la musique qui est éditée comporte un titre et le nom de
551 son compositeur@tie{}; certains ouvrages divulguent beaucoup plus
552 d'information.
553
554 @menu
555 * Création de titres et entête ou pied de page::
556 * Titrages personnalisés::
557 * Référencement des numéros de page::
558 * Table des matières::
559 @end menu
560
561
562 @node Création de titres et entête ou pied de page
563 @subsection Création de titres et entête ou pied de page
564 @translationof Creating titles headers and footers
565
566 @menu
567 * Contenu des blocs de titrage::
568 * Mise en forme par défaut des titrages::
569 * Mise en forme par défaut des entête et pied de page::
570 @end menu
571
572
573 @node Contenu des blocs de titrage
574 @unnumberedsubsubsec Contenu des blocs de titrage
575 @translationof Title blocks explained
576
577 @c TODO: figure out how \bookpart titles work
578
579 Il existe en fait deux types de blocs de titrage@tie{}: un bloc pour
580 contenir le titre principal qui doit apparaître avant le tout premier
581 @code{\score} d'un ouvrage, et un autre attaché à chacun des blocs
582 @code{\score} qui le composent.  Dans les deux cas, les champs qui
583 composent un bloc de titrage se saisissent dans un bloc @code{\header}.
584
585 Lorsque l'ouvrage ne comporte qu'un seul morceau, le bloc @code{\header}
586 peut se placer en dehors ou au sein même du bloc @code{\score}.
587
588 Dans le cas où le bloc @code{\header} est défini à l'intérieur du bloc
589 @code{\score}, seuls les champs @code{piece} et @code{opus} seront
590 imprimés.
591
592 @lilypond[papersize=a5,quote,verbatim,noragged-right]
593 \score {
594   { c'4 }
595   \header {
596     title = "title"  % not printed
597     piece = "piece"
598     opus = "opus"
599   }
600 }
601 @end lilypond
602
603 @funindex print-all-headers
604 @noindent
605 Vous pouvez modifer ce comportement et imprimer tous les champs d'un
606 bloc @code{\header} défini dans un bloc @code{\score} en ajoutant
607
608 @example
609 \paper@{
610   print-all-headers = ##t
611 @}
612 @end example
613
614 @warning{N'oubliez pas que lorsqu'il est placé à l'intérieur d'un bloc
615 @code{@bs{}score}, le bloc @code{@bs{}header} doit impérativement se
616 trouver @strong{à la suite} de l'expression musicale.}
617
618 @lilypond[papersize=a5,quote,verbatim,noragged-right]
619 \header {
620   title = "SUITE I."
621   composer = "J. S. Bach."
622 }
623
624 \score {
625   \new Staff \relative g, {
626     \clef bass
627     \key g \major
628     \repeat unfold 2 { g16( d' b') a b d, b' d, } |
629     \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
630   }
631   \header {
632     piece = "Prélude."
633   }
634 }
635
636 \score {
637   \new Staff \relative b {
638     \clef bass
639     \key g \major
640     \partial 16 b16 |
641     <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
642     d16( b g fis) g( e d c) b(c d e) fis( g a b) |
643   }
644   \header {
645     piece = "Allemande."
646   }
647 }
648 @end lilypond
649
650 Tous les champs appartenant au titrage principal d'un ouvrage peuvent se
651 reporter dans chaque bloc @code{\score} ou être supprimés
652 manuellement@tie{}:
653
654 @c KEEP LY
655 @lilypond[papersize=a5,quote,verbatim,noragged-right]
656 \book {
657   \paper {
658     print-all-headers = ##t
659   }
660   \header {
661     title = "DAS WOHLTEMPERIRTE CLAVIER"
662     subtitle = "TEIL I"
663     % Pas de pied en dernière page pour ce livret
664     tagline = ##f
665   }
666   \markup { \vspace #1 }
667   \score {
668     \new PianoStaff <<
669       \new Staff { s1 }
670       \new Staff { \clef "bass" s1 }
671     >>
672     \header {
673       title = "PRAELUDIUM I"
674       opus = "BWV 846"
675       % Pas de sous-titre pour ce morceau
676       subtitle = ##f
677     }
678   }
679   \score {
680     \new PianoStaff <<
681       \new Staff { s1 }
682       \new Staff { \clef "bass" s1 }
683     >>
684     \header {
685       title = "FUGA I"
686       subsubtitle = "A 4 VOCI"
687       opus = "BWV 846"
688       % Pas de sous-titre pour ce morceau
689       subtitle = ##f
690     }
691   }
692 }
693 @end lilypond
694
695 @seealso
696 Manuel de notation :
697 @ref{Structure de fichier},
698 @ref{Mise en forme personnalisée des blocs de titrage}.
699
700
701 @node Mise en forme par défaut des titrages
702 @unnumberedsubsubsec Mise en forme par défaut des titrages
703 @translationof Default layout of book and score title blocks
704
705 La mise en forme des blocs de titrage est contrôlée par deux variables
706 attachées au bloc @code{\paper}@tie{}: @code{bookTitleMarkup} pour le
707 bloc @code{\header} principal, et @code{scoreTitleMarkup} pour les blocs
708 @code{\header} relevant des blocs @code{\score}.
709
710 @c KEEP LY
711 @lilypond[papersize=a6,quote,verbatim,noragged-right]
712 \header {
713   % Les champs suivants sont centrés
714   dedication = "Dédice"
715   title = "Titre"
716   subtitle = "Sous-titre"
717   subsubtitle = "Sous-sous-titre"
718   instrument = "Instrument"
719
720   % Les champs suivants sont alignés sur le bord gauche
721   poet = "Librettiste"
722   meter = "Tempo"
723
724   % Les champs suivants sont alignés sur le bord droit
725   composer = "Compositeur"
726   arranger = "Arrangeur"
727 }
728
729 \score {
730   { s1 }
731   \header {
732     % Les champs suivants sont en opposition sur la même ligne
733     piece = "Pièce"
734     opus = "Opus"
735   }
736 }
737 @end lilypond
738
739 @c Is the bit about \null markups true? -mp
740
741 Les champs d'un bloc @code{\header} qui n'auront pas été alimentés
742 seront remplacés par un @emph{markup} @code{\null} de façon à ne pas
743 gaspiller d'espace.
744
745 Par défaut, @code{scoreTitleMarkup} place les champs @code{piece} et
746 @code{opus} de part et d'autre sur une même ligne.
747
748 @cindex breakbefore
749
750 La variable @code{breakbefore} activée dans un bloc @code{\header} situé
751 dans un bloc @code{\score} force le saut de page avant le morceau
752 contenu dans ce @code{\score}.  Vous pourrez ainsi séparer le titre
753 principal de la musique.
754
755 @lilypond[papersize=a8landscape,verbatim,noragged-right]
756 \book {
757   \header {
758     title = "This is my Title"
759     subtitle = "This is my Subtitle"
760     copyright = "This is the bottom of the first page"
761   }
762   \score {
763     \repeat unfold 4 { e'' e'' e'' e'' }
764     \header {
765       piece = "This is the Music"
766       breakbefore = ##t
767     }
768   }
769 }
770 @end lilypond
771
772 @seealso
773 Manuel d'initiation :
774 @rlearning{Organisation des fichiers LilyPond}.
775
776 Manuel de notation :
777 @ref{Structure de fichier}.
778
779 Fichiers d'initialisation :
780 @file{ly/titling-init.ly}.
781
782
783 @node Mise en forme par défaut des entête et pied de page
784 @unnumberedsubsubsec Mise en forme par défaut des entête et pied de page
785 @translationof Default layout of headers and footers
786
787 Les entête et pied -- @emph{headers} et @emph{footers} -- sont des
788 lignes de textes qui apparaîssent en haut et en bas de chaque page,
789 indépendamment du texte de l'ouvrage.  Ils sont contrôlés par les
790 variables suivantes, attachées au bloc @code{\paper}@tie{}:
791
792 @itemize
793 @item @code{oddHeaderMarkup} -- entête de page impaire
794 @item @code{evenHeaderMarkup} -- entête de page paire
795 @item @code{oddFooterMarkup} -- pied de page impaire
796 @item @code{evenFooterMarkup} -- pied de page paire
797 @end itemize
798
799 Ces variables @emph{markup} n'accèdent qu'au contenu des champs du bloc
800 @code{\header} principal, celui qui s'appliquera à tous les blocs
801 @code{\score} du document.  Ces variables sont définies dans le fichier
802 @file{ly/titling-init.ly}, et sont par défaut@tie{}:
803
804 @itemize
805
806 @item
807 les numéros sont placés en haut à gauche (si pair) ou à droite (si
808 impair) de chaque page à compter de la deuxième@tie{};
809
810 @item
811 le contenu du champ @code{instrument} est centré en haut de chaque page
812 à compter de la deuxième@tie{};
813
814 @item
815 le texte du @code{copyright} est centré au bas de la première
816 page@tie{};
817
818 @item
819 le @code{tagline} -- mention spéciale -- se place au bas de la dernière
820 page, ou bien sous le @code{copyright} s'il n'y a qu'une seule page.
821
822 @end itemize
823
824 @lilypond[papersize=a8landscape]
825 \book {
826   \score {
827     \relative c' {
828       c4 d e f
829     }
830   }
831 }
832 @end lilypond
833
834 La mention spéciale se modifie en alimentant le champ @code{tagline} au
835 niveau du bloc @code{\header} principal.
836
837 @lilypond[papersize=a8landscape,verbatim]
838 \book {
839   \header {
840     tagline = "... music notation for Everyone"
841   }
842   \score {
843     \relative c' {
844       c4 d e f
845     }
846   }
847 }
848 @end lilypond
849
850 Pour supprimer le @code{tagline}, il suffit de lui assigner la valeur
851 @code{##f}.
852
853
854 @node Titrages personnalisés
855 @subsection Titrages personnalisés
856 @translationof Custom headers footers and titles
857
858 @c TODO: somewhere put a link to header spacing info
859 @c       (you'll have to explain it more in NR 4).
860
861 @menu
862 * Mise en forme personnalisée des champs de titrage::
863 * Mise en forme personnalisée des blocs de titrage::
864 * Mise en forme personnalisée des entête et pied de page::
865 @end menu
866
867
868 @node Mise en forme personnalisée des champs de titrage
869 @unnumberedsubsubsec Mise en forme personnalisée des champs de titrage
870 @translationof Custom text formatting for title blocks
871
872 Toutes les commandes de mise en forme d'un @code{\markup} permettent de
873 personnaliser le texte des entête, pied de page et éléments de titre
874 contenus dans un bloc @code{\header}.
875
876 @lilypond[quote,verbatim,noragged-right]
877 \score {
878   { s1 }
879   \header {
880     piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
881     opus = \markup { \italic "(Excerpt)" }
882   }
883 }
884 @end lilypond
885
886 @seealso
887 Manuel de notation :
888 @ref{Mise en forme du texte}.
889
890
891 @node Mise en forme personnalisée des blocs de titrage
892 @unnumberedsubsubsec Mise en forme personnalisée des blocs de titrage
893 @translationof Custom layout for title blocks
894
895 L'utilisation de commandes @code{\markup} au sein d'un bloc
896 @code{\header} permet de modifier aisément l'apparence du texte,
897 mais n'influence en rien le positionnement précis des éléments de
898 titrage.  L'accès au positionnement des champs de titrage est géré par
899 les deux variables suivantes, attachées au bloc @code{\paper}@tie{}:
900
901 @itemize
902 @item @code{bookTitleMarkup}
903 @item @code{scoreTitleMarkup}
904 @end itemize
905
906 Ces variables sont abordées à la rubrique
907 @ref{Mise en forme par défaut des titrages}.
908
909 Voici les réglages par défaut de @code{scoreTitleMarkup}, tels que
910 définis dans le fichier @file{ly/titling-init.ly}@tie{}:
911
912 @example
913 scoreTitleMarkup = \markup @{ \column @{
914   \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
915   \fill-line @{
916     \fromproperty #'header:piece
917     \fromproperty #'header:opus
918   @}
919 @}
920 @}
921 @end example
922
923 Ceci aura donc pour effet de positionner les champs @code{piece} et
924 @code{opus} sur la même ligne, en opposition@tie{}:
925
926 @lilypond[quote,verbatim,noragged-right]
927 \score {
928   { s1 }
929   \header {
930     piece = "PRAELUDIUM I"
931     opus = "BWV 846"
932   }
933 }
934 @end lilypond
935
936 Voici comment positionner le champ @code{piece}, dont nous modifions
937 la taille et la graisse, au centre de cette ligne@tie{}:
938
939 @lilypond[papersize=a5,quote,verbatim,noragged-right]
940 \book {
941   \paper {
942     indent = 0\mm
943     scoreTitleMarkup = \markup {
944       \fill-line {
945         \null
946         \fontsize #4 \bold \fromproperty #'header:piece
947         \fromproperty #'header:opus
948       }
949     }
950   }
951   \header { tagline = ##f }
952   \score {
953     { s1 }
954     \header {
955       piece = "PRAELUDIUM I"
956       opus = "BWV 846"
957     }
958   }
959 }
960 @end lilypond
961
962 Les champs normalement réservés au bloc de titrage principal seront
963 reportés au niveau au niveau inférieur dès lors que vous aurez activé
964 l'instruction @code{print-all-headers} au sein du bloc @code{\paper}.
965 Le principal inconvénient de cette fonction réside dans le fait que les
966 champs réservés au bloc @code{\header} principal devront être supprimés
967 dans chacun des blocs @code{\score} de votre fichier source -- voir
968 @ref{Contenu des blocs de titrage}.
969
970 Afin d'éviter ce désagrément, ajoutez le champ que vous désirez voir
971 apparaître à la définition de @code{scoreTitleMarkup}.  Nous allons,
972 dans l'exemple suivant, ajouter au @code{scoreTitleMarkup} le champ
973 @code{composer}, normalement associé au @code{bookTitleMarkup}@tie{};
974 chaque @code{\score} pourra mentionner un compositeur différent.
975
976 @lilypond[papersize=a5,quote,verbatim,noragged-right]
977 \book {
978   \paper {
979     indent = 0\mm
980     scoreTitleMarkup = \markup {
981       \fill-line {
982         \null
983         \fontsize #4 \bold \fromproperty #'header:piece
984         \fromproperty #'header:composer
985       }
986     }
987   }
988   \header { tagline = ##f }
989   \score {
990     { s1 }
991     \header {
992       piece = "MENUET"
993       composer = "Christian Petzold"
994     }
995   }
996   \score {
997     { s1 }
998     \header {
999       piece = "RONDEAU"
1000       composer = "François Couperin"
1001     }
1002   }
1003 }
1004 @end lilypond
1005
1006 Rien ne vous empêche de créer votre propre champ personnalisé, puis d'y
1007 faire référence dans la définition du @emph{markup}.
1008
1009 @lilypond[papersize=a5,quote,verbatim,noragged-right]
1010 \book {
1011   \paper {
1012     indent = 0\mm
1013     scoreTitleMarkup = \markup {
1014       \fill-line {
1015         \null
1016         \override #`(direction . ,UP) {
1017           \dir-column {
1018             \center-align \fontsize #-1 \bold
1019               \fromproperty #'header:mycustomtext %% User-defined field
1020             \center-align \fontsize #4 \bold
1021               \fromproperty #'header:piece
1022           }
1023         }
1024         \fromproperty #'header:opus
1025       }
1026     }
1027   }
1028   \header { tagline = ##f }
1029   \score {
1030     { s1 }
1031     \header {
1032       piece = "FUGA I"
1033       mycustomtext = "A 4 VOCI" %% User-defined field
1034       opus = "BWV 846"
1035     }
1036   }
1037 }
1038 @end lilypond
1039
1040 @seealso
1041 Manuel de notation :
1042 @ref{Contenu des blocs de titrage}.
1043
1044
1045 @node Mise en forme personnalisée des entête et pied de page
1046 @unnumberedsubsubsec Mise en forme personnalisée des entête et pied de page
1047 @translationof Custom layout for headers and footers
1048
1049 @c can make-header and make-footer be removed from
1050 @c paper-defaults-init.ly? -mp
1051
1052 L'utilisation de commandes @code{\markup} au sein d'un bloc
1053 @code{\header} permet de modifier aisément l'apparence du texte,
1054 mais n'influence en rien le positionnement précis des entête et pied
1055 de page.  L'accès au positionnement des champs concernés est géré par
1056 les quatre variables suivantes, attachées au bloc @code{\paper}@tie{}:
1057
1058 @itemize
1059 @item @code{oddHeaderMarkup}
1060 @item @code{evenHeaderMarkup}
1061 @item @code{oddFooterMarkup}
1062 @item @code{evenFooterMarkup}
1063 @end itemize
1064
1065 L'exemple suivant illustre  la manière de centrer son numéro au bas de
1066 chaque page.  Il nous faut tout d'abord annuler la définition de
1067 @code{oddHeaderMarkup} et @code{evenHeaderMarkup} à l'aide d'un
1068 @emph{markup} @code{\null}. Nous redéfinissons ensuite
1069 @code{oddFooterMarkup} pour qu'il contienne le numéro de page, centré.
1070 Enfin, nous appliquons le même paramétrage au @code{\oddFooterMarkup}.
1071
1072 @lilypond[papersize=a8,quote,verbatim,noragged-right]
1073 \book {
1074   \paper {
1075     print-page-number = ##t
1076     print-first-page-number = ##t
1077     oddHeaderMarkup = \markup \null
1078     evenHeaderMarkup = \markup \null
1079     oddFooterMarkup = \markup {
1080       \fill-line {
1081         \on-the-fly #print-page-number-check-first
1082         \fromproperty #'page:page-number-string
1083       }
1084     }
1085     evenFooterMarkup = \oddFooterMarkup
1086   }
1087   \score {
1088     \new Staff { s1 \break s1 \break s1 }
1089   }
1090 }
1091 @end lilypond
1092
1093 @seealso
1094 Manuel de notation :
1095 @ref{Contenu des blocs de titrage},
1096 @ref{Mise en forme par défaut des titrages}.
1097
1098
1099 @node Référencement des numéros de page
1100 @subsection Référencement des numéros de page
1101 @translationof Reference to page numbers
1102
1103 LilyPond vous permet, à l'aide de la commande @code{\label}, d'insérer
1104 des points de référence dans un ouvrage, aussi bien en dehors qu'au fil
1105 de la musique.  Ce point de référence pourra être ensuite repris à
1106 l'intérieur d'un @emph{markup}@tie{}; vous pourrez même y ajouter le
1107 numéro de page grâce à la commande de @emph{markup} @code{\page-ref}.
1108
1109 @c KEEP LY
1110 @lilypond[verbatim]
1111 \header { tagline = ##f }
1112 \book {
1113   \label #'firstScore
1114   \score {
1115     {
1116       c'1
1117       \pageBreak \mark A \label #'markA
1118       c'1
1119     }
1120   }
1121
1122   \markup { Le premier mouvement débute à la page \page-ref #'firstScore "0" "?" }
1123   \markup { Le repère A est à la page \page-ref #'markA "0" "?" }
1124 }
1125 @end lilypond
1126
1127 L'instruction @code{\page-ref} prend trois arguments@tie{}:
1128 @enumerate
1129 @item
1130 le point de référence, sous la forme d'un symbole scheme, comme par
1131 exemple @code{#'firstScore},
1132
1133 @item
1134 un @qq{emporte-pièce} afin d'estimer la longueur totale du
1135 @emph{markup},
1136
1137 @item
1138 un texte de remplacement au cas où la référence ne serait pas retrouvée.
1139 @end enumerate
1140
1141 La présence de l'emporte-pièce est rendue nécessaire par le fait que les
1142 @emph{markups} sont générés avant que les sauts de page ne soient
1143 positionnés.  Bien que le numéro de page en question ne soit pas encore
1144 déterminé, LilyPond doit connaître les dimensions de ce @emph{markup}.
1145 Vous pouvez, lorsque l'ouvrage contiendra plus de dix pages, stipuler un
1146 emporte-pièce sur deux caractères -- soit @code{"00"}.
1147
1148
1149 @predefined
1150 @funindex \label
1151 @code{\label},
1152 @funindex \page-ref
1153 @code{\page-ref}.
1154 @endpredefined
1155
1156
1157 @node Table des matières
1158 @subsection Table des matières
1159 @translationof Table of contents
1160
1161 La commande @code{\markuplist \table-of-contents} vous permettra de
1162 générer une table des matières.  Les éléments qui la composeront sont
1163 créés par la commande @code{\tocItem}, insérée indépendamment ou au sein
1164 d'une expression musicale.
1165
1166 @verbatim
1167 \markuplist \table-of-contents
1168 \pageBreak
1169
1170 \tocItem \markup "Premier mouvement"
1171 \score {
1172   {
1173     c'4  % ...
1174     \tocItem \markup "Passage spécifique du premier mouvement"
1175     d'4  % ...
1176   }
1177 }
1178
1179 \tocItem \markup "Second mouvement"
1180 \score {
1181   {
1182     e'4 % ...
1183   }
1184 }
1185 @end verbatim
1186
1187 Les @emph{markups} dévolus à la mise en forme de la table des matières
1188 se définissent dans le bloc @code{\paper}.  Il s'agit par défaut de
1189 @code{tocTitleMarkup} pour le titre de la table, et de
1190 @code{tocItemMarkup} pour ses éléments -- composés de leur libellé et
1191 numéro de page.  Vous pouvez bien entendu personnaliser ces
1192 variables@tie{}:
1193
1194 @verbatim
1195 \paper {
1196   %% Translate the toc title into French:
1197   tocTitleMarkup = \markup \huge \column {
1198     \fill-line { \null "Table des matières" \null }
1199     \hspace #1
1200   }
1201   %% use larger font size
1202   tocItemMarkup = \markup \large \fill-line {
1203     \fromproperty #'toc:text \fromproperty #'toc:page
1204   }
1205 }
1206 @end verbatim
1207
1208 Notez bien la manière de référencer le libellé et le numéro de page dans
1209 la définition de @code{tocItemMarkup}.
1210
1211 N'hésitez pas à définir vous-même d'autres commandes et @emph{markups}
1212 afin de construire une table plus élaborée@tie{}:
1213 @itemize
1214 @item 
1215 commencez par définir une nouvelle variable de type @code{markup} au
1216 sein du bloc @code{\paper},
1217
1218 @item
1219 puis définissez une fonction musicale chargée d'insérer un élément de la
1220 table à partir de cette variable.
1221 @end itemize
1222
1223 Dans l'exemple qui suit, nous avons créé un nouveau style d'élément dans
1224 le but de mentionner les actes dans la table des matières d'un
1225 opéra@tie{}:
1226
1227 @verbatim
1228 \paper {
1229   tocActMarkup = \markup \large \column {
1230     \hspace #1
1231     \fill-line { \null \italic \fromproperty #'toc:text \null }
1232     \hspace #1
1233   }
1234 }
1235
1236 tocAct =
1237 #(define-music-function (parser location text) (markup?)
1238    (add-toc-item! 'tocActMarkup text))
1239 @end verbatim
1240
1241 @lilypond[line-width=11.0\cm]
1242 \header { tagline = ##f }
1243 \paper {
1244   tocActMarkup = \markup \large \column {
1245     \hspace #1
1246     \fill-line { \null \italic \fromproperty #'toc:text \null }
1247     \hspace #1
1248   }
1249 }
1250
1251 tocAct =
1252 #(define-music-function (parser location text) (markup?)
1253    (add-toc-item! 'tocActMarkup text))
1254
1255 \book {
1256   \markuplist \table-of-contents
1257   \tocAct \markup { Atto Primo }
1258   \tocItem \markup { Coro. Viva il nostro Alcide }
1259   \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
1260   \tocAct \markup { Atto Secondo }
1261   \tocItem \markup { Sinfonia }
1262   \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
1263   \markup \null
1264 }
1265 @end lilypond
1266
1267 L'élément et son numéro de page peuvent se rejoindre par une ligne
1268 pointillée@tie{}:
1269
1270 @lilypond[verbatim,quote]
1271 \header { tagline = ##f }
1272 \paper {
1273   tocItemMarkup = \tocItemWithDotsMarkup
1274 }
1275
1276 \book {
1277   \markuplist \table-of-contents
1278   \tocItem \markup { Allegro }
1279   \tocItem \markup { Largo }
1280   \markup \null
1281 }
1282 @end lilypond
1283
1284
1285 @seealso
1286 Fichiers d'initialisation :
1287 @file{../ly/toc-init.ly}.
1288
1289
1290 @predefined
1291 @funindex \table-of-contents
1292 @code{\table-of-contents},
1293 @funindex \tocItem
1294 @code{\tocItem}.
1295 @endpredefined
1296
1297
1298 @node Travail sur des fichiers texte
1299 @section Travail sur des fichiers texte
1300 @translationof Working with input files
1301
1302 @menu
1303 * Insertion de fichiers LilyPond::
1304 * Différentes éditions à partir d'une même source::
1305 * Codage du texte::
1306 @end menu
1307
1308 @node Insertion de fichiers LilyPond
1309 @subsection Insertion de fichiers LilyPond
1310 @translationof Including LilyPond files
1311
1312 @funindex \include
1313 @cindex inclusion de fichiers
1314
1315 Lorsqu'un projet prend de l'importance en volume, il est judicieux de le
1316 scinder en plusieurs fichiers, auxquels vous fereez référence avec un
1317 simple
1318
1319 @example
1320 \include "autrefichier.ly"
1321 @end example
1322
1323 Une ligne @code{\include "autrefichier.ly"} dans un fichier revient à
1324 recopier intégralement le contenu de @file{autrefichier.ly} à l'endroit
1325 même ou est placée l'instruction @code{\include}.  Vous pouvez par
1326 exemple écrire un fichier individuel par instrument, puis les regrouper
1327 pour former le fichier @qq{conducteur}.  Les différentes variables
1328 définies dans les fichiers séparés seront normalement reprises et
1329 utilisables dans le fichier formant le conducteur.  Les sections
1330 balisées dans les fichiers individuels peuvent être réutilisées en
1331 différents endroit de la partition , comme expliqué à la rubrique
1332 @ref{Différentes éditions à partir d'une même source}.
1333
1334 Lorsque le fichier auquel il est fait référence se trouve dans le même
1335 répertoire, donner seulement son nom en argument à la commande
1336 @code{\include} suffit.  S'il se trouve ailleurs, vous devrez indiquer
1337 le chemin d'accès, absolu ou relatif, en respectant toutefois la syntaxe
1338 UNIX -- autrement dit, le séparateur de répertoire est une oblique
1339 normale @code{/} et non l'oblique inverse @code{\} de DOS ou Windows.
1340 Par exemple, si le fichier @file{truc.ly} se trouve dans le répertoire
1341 supérieur au répertoire de travail, la ligne devra être
1342
1343 @example
1344 \include "../truc.ly"
1345 @end example
1346
1347 @noindent
1348 ou bien, si les fichiers correspondant aux parties d'orchestre se
1349 trouvent dans le sous-répertoire @file{parties} relativement au
1350 répertoire courant, vous devrez mentionner
1351
1352 @example
1353 \include "parties/VI.ly"
1354 \include "parties/VII.ly"
1355 ... etc.
1356 @end example
1357
1358 Les fichiers à inclure peuvent eux-même contenir des instructions
1359 @code{\include}.  Ces instructions @code{\include} de second niveau ne
1360 pourront, par défaut, être interprétées qu'une fois intégrées dans le
1361 fichier principal@tie{}; leur argument doit donc comporter le chemin
1362 relativement au fichier principal et non par rapport au fichier dans
1363 lequel cette inclusion est mentionnée.  Vous pouvez toutefois influer
1364 sur ce comportement à l'aide de l'option @w{@code{-drelative-includes}}
1365 en ligne de commande ou en ajoutant une clause
1366 @code{@w{#(ly:set-option 'relative-includes #t)}} en tête du fichier
1367 principal.  Une fois @code{relative-include} activé, le chemin à suivre
1368 pour chacune des commandes @code{\include} sera pris relativement au
1369 fichier qui la contient.  Cette option est vouée à être activée par
1370 défaut dans une future version de LilyPond.
1371
1372 Vous pouvez inclure des fichiers dont vous spécifierez le chemin d'accès
1373 sur la ligne de commande au moment de lancer la compilation. L'appel à
1374 ces fichiers ne mentionnerra alors que leur nom.  Par exemple, si vous
1375 voulez compiler avec cette méthode le fichier @file{principal.ly} qui
1376 inclut des fichiers situés dans le sous-répertoire @file{parties},
1377 placez vous dans le répertoire contenant @file{principal.ly}, puis tapez
1378
1379 @example
1380 lilypond --include=parties principal.ly
1381 @end example
1382
1383 tout en ayant bien dans @file{principal.ly}
1384
1385 @example
1386 \include "VI.ly"
1387 \include "VII.ly"
1388 ... etc
1389 @end example
1390
1391 Lorsqu'un fichier est voué à être inclus dans nombre de partitions, vous
1392 pouvez le placer dans le répertoire de LilyPond @file{../ly}.
1393 Attention@tie{}: ce répertoire varie selon votre installation, comme
1394 indiqué au chapitre @rlearning{Autres sources de documentation}.  Ce
1395 fichier sera inclus dès lors que vous fournirez uniquement son nom en
1396 argument à la fonction @code{\include}.  C'est par exemple le cas du
1397 fichier de définition particulier @file{gregorian.ly}.
1398
1399 Au moment où vous lancez LilyPond, un certain nombre de fichiers se
1400 retrouvent inclus par défaut@tie{}; il suffit d'activer le mode verbeux
1401 en faisant @w{@code{lilypond --verbose}} pour s'en rendre compte.  Vous
1402 verrez ainsi défiler, en plus de nombreuses informations, le nom d'un
1403 certain nombre de fichiers et de chemins d'accès.  Les fichiers les plus
1404 important sont mentionnés au chapitre
1405 @rlearning{Autres sources de documentation}.  Si vous venez à les
1406 modifier, rappelez-vous qu'ils seront écrasés à l'installation d'une
1407 nouvelle version de LilyPond.
1408
1409 Vous trouverez quelques exemples simples d'utilisation de la commande
1410 @code{\include} au chapitre @rlearning{Conducteurs et parties}.
1411
1412
1413 @seealso
1414 Manuel d'initiation :
1415 @rlearning{Autres sources de documentation},
1416 @rlearning{Conducteurs et parties}.
1417
1418
1419 @knownissues
1420
1421 Lorsque vous incluez un fichier qui porte le même nom que l'un des
1422 fichiers d'initialisation de LilyPond, le fichier de la distribution de
1423 LilyPond aura préséance.
1424
1425
1426 @node Différentes éditions à partir d'une même source
1427 @subsection Différentes éditions à partir d'une même source
1428 @translationof Different editions from one source
1429
1430 Différents mécanismes permettent de générer plusieurs versions d'une
1431 partition à partir d'une même source.  Les variables -- ou
1432 idendificateurs -- sont sûrement le moyen le plus simple de combiner de
1433 différente manière des passages relativement longs, alors que les
1434 balises permettront de sélectionner de courts fragments selon leur
1435 utilisation.  Quelle que soit la méthode utilisée, séparer la notation
1436 de la structure de la partition vous donnera plus de liberté dans
1437 l'agencement de l'ouvrage final, puisque vous ne reviendrez pas sur la
1438 musique qui le compose.
1439
1440 @menu
1441 * Utilisation de variables::
1442 * Utilisation de balises::
1443 * Globalisation des réglages::
1444 @end menu
1445
1446 @node Utilisation de variables
1447 @unnumberedsubsubsec Utilisation de variables
1448 @translationof Using variables
1449
1450 @cindex variables, utilisation de
1451
1452 Un fragment musical identifié par une variable est réutilisable à divers
1453 endroits de la partition, comme nous l'avons vu à la rubrique
1454 @rlearning{Organisation du code source avec des variables}.  Par
1455 exemple, une partition pour chœur @notation{a cappella} comporte souvent
1456 une réduction pour piano reprenant toutes les voix@tie{}; il s'agit de
1457 la même musique, et vous ne devrez donc la saisir qu'une seule fois.
1458 D'autre part, la musique issue de deux variables peut se combiner sur
1459 une seule portée, comme nous l'avons vu à la rubrique
1460 @ref{Regroupement automatique de parties}.  Prenons l'exemple
1461 suivant@tie{}:
1462
1463 @lilypond[verbatim,quote]
1464 sopranoMusic = \relative c'' { a4 b c b8( a) }
1465 altoMusic = \relative g' { e4 e e f }
1466 tenorMusic = \relative c' { c4 b e d8( c) }
1467 bassMusic = \relative c' { a4 gis a d, }
1468 allLyrics = \lyricmode {King of glo -- ry }
1469 <<
1470   \new Staff = "Soprano" \sopranoMusic
1471   \new Lyrics \allLyrics
1472   \new Staff = "Alto" \altoMusic
1473   \new Lyrics \allLyrics
1474   \new Staff = "Tenor" {
1475     \clef "treble_8"
1476     \tenorMusic
1477   }
1478   \new Lyrics \allLyrics
1479   \new Staff = "Bass" {
1480     \clef "bass"
1481     \bassMusic
1482   }
1483   \new Lyrics \allLyrics
1484   \new PianoStaff <<
1485     \new Staff = "RH" {
1486       \set Staff.printPartCombineTexts = ##f
1487       \partcombine
1488       \sopranoMusic
1489       \altoMusic
1490     }
1491     \new Staff = "LH" {
1492       \set Staff.printPartCombineTexts = ##f
1493       \clef "bass"
1494       \partcombine
1495       \tenorMusic
1496       \bassMusic
1497     }
1498   >>
1499 >>
1500 @end lilypond
1501
1502 Générer une partition chorale ou la réduction pour piano ne requiert que
1503 de modifier la structure des éléments, sans aucunement toucher à la
1504 musique.
1505
1506 Dans le cas d'une partition relativement longue, vous pouvez isoler la
1507 définition des différentes variables dans des fichiers séparés que vous
1508 rappellerez ensuite, comme indiqué à la rubrique
1509 @ref{Insertion de fichiers LilyPond}.
1510
1511
1512 @node Utilisation de balises
1513 @unnumberedsubsubsec Utilisation de balises
1514 @translationof Using tags
1515
1516 @funindex \tag
1517 @funindex \keepWithTag
1518 @funindex \removeWithTag
1519 @cindex tag
1520 @cindex balise
1521
1522 La commande @code{\tag #'@var{partieA}} affecte à une expression
1523 musicale le nom @var{partieA}.  Les expressions ainsi balisées pourront
1524 être filtrées par la suite, à l'aide de
1525 @code{\keepWithTag@tie{}#'@var{nom}} ou
1526 @code{\removeWithTag@tie{}#'@var{nom}}.  Ces filtres fonctionnent de la
1527 manière suivante@tie{}:
1528
1529 @multitable @columnfractions .5 .5
1530 @headitem Filtre
1531   @tab Résultat
1532
1533 @item
1534 Musique balisée précédée de @code{\keepWithTag #'@var{nom}}
1535  @tab Musique non balisée et musique balisée par @var{nom} seront
1536  incluses@tie{}; la musique balisée autrement est exclue.
1537
1538 @item
1539 Musique balisée précédée de @code{\removeWithTag #'@var{nom}}
1540  @tab Musique non balisée et fragments appelés autrement que @var{nom}
1541  seront inclus@tie{}; la musique balisée par @var{nom} est exclue.
1542
1543 @item
1544 Musique balisée non précédée de @code{\keepWithTag} ou
1545 @code{\removeWithTag}
1546  @tab Musique balisée et non balisée seront incluses.
1547
1548 @end multitable
1549
1550 Les arguments des commandes @code{\tag}, @code{\keepWithTag} et
1551 @code{\removeWithTag} doivent être un symbole (tel que
1552 @code{#'conducteur} ou @code{#'partie}), suivi d'une expression
1553 musicale.
1554
1555 Dans l'exemple qui suit, nous obtenons deux versions du même extrait,
1556 l'une pour le conducteur, l'autre pour l'instrumentiste, et qui
1557 comportera les ornements développés.
1558
1559 @lilypond[verbatim,quote]
1560 music = \relative g' {
1561   g8. c32 d
1562   \tag #'trills { d8.\trill }
1563   \tag #'expand { \repeat unfold 3 { e32 d } }
1564   c32 d
1565  }
1566
1567 \score {
1568   \keepWithTag #'trills \music
1569 }
1570 \score {
1571   \keepWithTag #'expand \music
1572 }
1573 @end lilypond
1574
1575 @noindent
1576 Il est parfois plus aisé d'exclure des fragments@tie{}:
1577
1578 @lilypond[verbatim,quote]
1579 music = \relative g' {
1580   g8. c32 d
1581   \tag #'trills { d8.\trill }
1582   \tag #'expand {\repeat unfold 3 { e32 d } }
1583   c32 d
1584  }
1585
1586 \score {
1587   \removeWithTag #'expand
1588   \music
1589 }
1590 \score {
1591   \removeWithTag #'trills
1592   \music
1593 }
1594 @end lilypond
1595
1596 Ce principe de filtrage peut s'appliquer aux articulations, textes, etc.
1597 Il suffit de positionner
1598
1599 @example
1600 -\tag #@var{ma-balise}
1601 @end example
1602
1603 @noindent
1604 avant l'articulation ou le texte, comme ici@tie{}:
1605
1606 @example
1607 c1-\tag #'doigt ^4
1608 c1-\tag #'gaffe ^"Attention !"
1609 @end example
1610
1611 @noindent
1612 Ceci définira une note avec une indication conditionnelle de doigté ou
1613 un texte.
1614
1615 Vous pouvez baliser différemment la même expression musicale en
1616 saisissant plusieurs @code{\tag}@tie{}:
1617
1618 @lilypond[quote,verbatim]
1619 music = \relative c'' {
1620   \tag #'a \tag #'both { a4 a a a }
1621   \tag #'b \tag #'both { b4 b b b }
1622 }
1623 <<
1624 \keepWithTag #'a \music
1625 \keepWithTag #'b \music
1626 \keepWithTag #'both \music
1627 >>
1628 @end lilypond
1629
1630 L'application concomitante de plusieurs filtres @code{\removeWithTag} à
1631 la même expression musicale permet d'exclure plusieurs balisages@tie{}:
1632
1633 @lilypond[verbatim,quote]
1634 music = \relative c'' {
1635 \tag #'A { a4 a a a }
1636 \tag #'B { b4 b b b }
1637 \tag #'C { c4 c c c }
1638 \tag #'D { d4 d d d }
1639 }
1640 {
1641 \removeWithTag #'B
1642 \removeWithTag #'C
1643 \music
1644 }
1645 @end lilypond
1646
1647 L'application de plus d'un filtre @code{\keepWithTag} à la même
1648 expression musicale aboutit à l'exclusion de @b{tous} les balisages.
1649 En effet, si le premier filtre exclut tous les autres balisages,
1650 l'application du second exclura les effets du premier.
1651
1652
1653 @seealso
1654 Manuel d'initiation :
1655 @rlearning{Organisation du code source avec des variables}.
1656
1657 Manuel de notation :
1658 @ref{Regroupement automatique de parties},
1659 @ref{Insertion de fichiers LilyPond}.
1660
1661
1662 @ignore
1663 @c This warning is more general than this placement implies.
1664 @c Rests are not merged whether or not they come from tagged sections.
1665 @c Should be deleted?  -td
1666
1667 @knownissues
1668
1669 Lorsqu'elles comportent des silences, ceux-ci ne seront pas fusionnés
1670 si vous imprimez une partition avec les deux sections balisées.
1671
1672 @end ignore
1673
1674
1675 @node Globalisation des réglages
1676 @unnumberedsubsubsec Globalisation des réglages
1677 @translationof Using global settings
1678
1679 @cindex include-settings
1680
1681 Vous pouvez regrouper dans un fichier indépendant vos réglages
1682 personnels que vous incluerez au besoin@tie{}:
1683
1684 @example
1685 lilypond -dinclude-settings=MES_REGLAGES.ly MA_PARTITION.ly
1686 @end example
1687
1688 Vous pouvez ainsi stocker dans un fichier séparé vos réglages en matière
1689 de format de papier, de fontes utilisées ou vos définitions
1690 particulières.  Selon le fichier de réglages que vous mentionnerez, vous
1691 obtiendrez facilement différentes éditions à partir d'une même source
1692 quelle qu'elle soit.
1693
1694 Ceete technique peut s'utiliser en combinaison avec des feuilles de
1695 styles, comme indiqué au chapitre @rlearning{Feuilles de style}.
1696
1697 @seealso
1698 Manuel d'initiation :
1699 @rlearning{Organisation du code source avec des variables},
1700 @rlearning{Feuilles de style}.
1701
1702 Manuel de notation :
1703 @ref{Insertion de fichiers LilyPond}.
1704
1705
1706 @node Codage du texte
1707 @subsection Codage du texte
1708 @translationof Text encoding
1709
1710 @cindex Unicode
1711 @cindex UTF-8
1712 @cindex non-ASCII characters
1713
1714 LilyPond utilise le jeu de caractères défini par le consortium Unicode
1715 et la norme ISO/CEI@tie{}10646.  Chaque caractère est identifié par un
1716 nom unique et associé à un point de code, ce qui permet dans l'absolu de
1717 couvrir tous les langages.  Unicode permet de coder tous les caractères
1718 utilisés par toutes les langues écrites du monde.  LilyPond utilise le
1719 codage UTF-8 (UTF pour @emph{Unicode Transformation Format}) qui permet
1720 de représenter les caractères latins sur un octet et les autres sur une
1721 longueur allant jusqu'à quatre octets.
1722
1723 L'apparence réelle des caractères est déterminée par les glyphes ou
1724 graphèmes tels que définis dans les différentes polices disponibles.
1725 Une police, ou une fonte, définit la mise en correspondance d'un
1726 sous-ensemble de points de code unicode en glyphes.  LilyPond recourt à
1727 la bibliothèque Pango pour assurer le rendu des textes multilingues.
1728
1729 LilyPond n'effectue aucune conversion d'encodage que ce soit.  Ceci
1730 implique donc que tout texte, qu'il s'agisse d'un titre, de paroles ou
1731 même d'instruction musicale, comportant des caractères non ASCII, soit
1732 codé en UTF-8.  Le plus sûr moyen de saisir du texte de la sorte
1733 consiste à utiliser un éditeur supportant l'unicode et à enregistrer vos
1734 fichier en UTF-8.  C'est le cas pour la plupart des éditeurs actuels,
1735 que ce soit vim, Emacs, jEdit et GEdit.  Tous les systèmes Windows
1736 postérieurs à NT utilisent Unicode en natif@tie{}; même Notepad est
1737 capable d'éditer et sauvegarder un fichie en UTF-8 -- sans parler de
1738 l'excellente alternative qu'est BabelPad.
1739
1740 La compilation d'un fichier LilyPond comportant des caractères non ASCII
1741 qui n'aurait pas été enregistré dans l'encodage UTF-8 vous renverra
1742 l'erreur
1743
1744 @example
1745 FT_Get_Glyph_Name () erreur : invalid argument
1746 @end example
1747
1748 Voici un exemple utilisant du texte en cyrilique, en hébreux et en
1749 portugais.
1750
1751 @lilypond[quote]
1752 %c No verbatim here as the code does not display correctly in PDF
1753 % Cyrillic
1754 bulgarian = \lyricmode {
1755   Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1756 }
1757
1758 % Hebrew
1759 hebrew = \lyricmode {
1760   זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1761 }
1762
1763 % Portuguese
1764 portuguese = \lyricmode {
1765   à vo -- cê uma can -- ção legal
1766 }
1767
1768 \relative c' {
1769   c2 d e f g f e
1770 }
1771 \addlyrics { \bulgarian }
1772 \addlyrics { \hebrew }
1773 \addlyrics { \portuguese }
1774 @end lilypond
1775
1776 Lorsque vous avez besoin d'un caractère dont vous connaissez le point de
1777 code mais que votre éditeur ne permet pas de saisir directement, vous
1778 pouvez utitliser les instructions @code{\char@tie{}##xhhhh} ou
1779 @code{\char@tie{}#dddd} au sein d'un bloc @code{\markup} -- @code{hhhh}
1780 et @code{dddd} correspondant respectivement à la valeur hexadécimale ou
1781 décimale.  Même s'il est inutile de saisir les zéros superflus, il est
1782 de bon ton de stipuler les quatre caractères formant la représentation
1783 hexadécimale.  Évitez cependant l'encodage UTF-8 d'un point de code
1784 après un @code{\char}@tie{}; les encodages UTF-8 comprennent un bit
1785 supplémentaire indiquant le nombre d'octets.  Une table de
1786 correspondance entre les codes Unicode et le nom des caractères ainsi
1787 que leur code hexadécimal est disponible sur le site du consortium
1788 Unicode, @uref{http://www.unicode.org/}.
1789
1790 Par exemple, @code{\char ##x03BE} et @code{\char #958} correspondent
1791 tous deux au caractère unicode U+03BE, dénommé @qq{Greek Small Letter
1792 Xi}.
1793
1794 Quel que soit le point de code spécifié de cette manière, il ne vous
1795 sera alors pas nécessaire d'enregistrer votre fichier en UTF-8.  Vous
1796 devrez toutefois disposer d'une fonte contenant ce caractère qui soit
1797 accessible à LilyPond.
1798
1799 L'exemple suivant illustre la manière d'insérer un caractère sous sa
1800 forme hexadécimale, à la fois dans un repère, dans une articulation,
1801 dans des paroles et dans du texte indépendant.
1802
1803 @lilypond[quote,verbatim]
1804 \score {
1805   \relative c'' {
1806     c1 \mark \markup { \char ##x03EE }
1807     c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1808   }
1809   \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
1810 }
1811 \markup { "Copyright 2008--2011" \char ##x00A9 }
1812 @end lilypond
1813
1814 @cindex copyright
1815
1816 Le signe @emph{copyright} dans le champ de titrage consacré s'inscrit de
1817 la manière suivante@tie{}:
1818
1819 @example
1820 \header @{
1821   copyright = \markup @{ \char ##x00A9 "2008" @}
1822 @}
1823 @end example
1824
1825
1826 @node Contrôle des sorties
1827 @section Contrôle des sorties
1828 @translationof Controlling output
1829
1830 @menu
1831 * Extraction de fragments musicaux::
1832 * Ignorer des passages de la partition::
1833 * Formats de sortie alternatifs::
1834 * Changement des fontes musicales::
1835 @end menu
1836
1837 @node Extraction de fragments musicaux
1838 @subsection Extraction de fragments musicaux
1839 @translationof Extracting fragments of music
1840
1841 LilyPond vous permet d'extraire des fragments d'une partition à l'instar
1842 du choriste amateur qui alimente son album avec des coupures de
1843 journaux.
1844
1845 Vous devrez pour cela définir les mesures à découper.  La définition
1846 suivante, incluse dans votre fichier source,
1847
1848 @verbatim
1849 \layout {
1850   clip-regions
1851   = #(list
1852       (cons
1853        (make-rhythmic-location 5 1 2)
1854        (make-rhythmic-location 7 3 4)))
1855 }
1856 @end verbatim
1857
1858 @noindent
1859 vous permettra d'extraire un fragment compris entre le milieu de la
1860 cinquième mesure et quelque part dans la septième.  Le triplet
1861 @code{5@tie{}1@tie{}2} signifie@tie{}: après la durée d'une blanche dans
1862 la mesure 5@tie{}; le @code{7@tie{}3@tie{}4} signifie quant à lui que
1863 l'on s'arrête à la mesure 7, après la durée de trois noires.
1864
1865 Rien ne vous empêche d'extraire plusieurs fragments, dès lors que vous
1866 définissez dans la liste d'autres paires d'emplacements ryhtmiques.
1867
1868 Cette fonctionnalité n'est toutefois effective que lorsque vous lancez
1869 LilyPond avec l'option @w{@code{-dclip-systems}}.  Les @qq{coupures}
1870 seront générées sous la forme de fichiers EPS, convertis en PDF ou PNG
1871 selon le format que vous aurez stipulé.
1872
1873 Pour de plus amples informations quant au format des résultats,
1874 consultez le chapitre @rprogram{Lancement de lilypond}.
1875
1876
1877 @node Ignorer des passages de la partition
1878 @subsection Ignorer des passages de la partition
1879 @translationof Skipping corrected music
1880
1881 @funindex skipTypesetting
1882 @funindex showFirstLength
1883 @funindex showLastLength
1884
1885 Dans un travail de transcription ou de recopie de la musique, ce qui
1886 vous intéresse plus particulièrement se situe à la fin, là même où vous
1887 en êtes dans la notation.  Dans le but de gagner du temps dans le
1888 processus de correction, vous pouvez @qq{escamoter} le reste et ne
1889 générer que les dernières mesures en insérant
1890
1891 @verbatim
1892 showLastLength = R1*5
1893 \score { ... }
1894 @end verbatim
1895
1896 @noindent
1897 dans votre fichier source.  Ceci aura pour effet de ne générer que les
1898 cinq dernières mesures -- si tant est que le morceau soit à 4/4 -- de
1899 tous les @code{\score} de votre fichier.  Dans le cas d'un œuvre
1900 conséquente, cette pratique s'avère fort utile puisqu'elle évite de tout
1901 générer.  Vous pourriez aussi être amené à retravailler le début d'une
1902 œuvre, pour y ajouter une partie par exemple, auquel cas c'est la
1903 propriété @code{showFirstLength} que vous utiliserez.
1904
1905 Vous pouvez contrôler très finement les parties à escamoter, grâce au
1906 commutateur @code{Score.skipTypesetting}@tie{}: lorsqu'il est activé,
1907 aucune gravure n'est réalisée.
1908
1909 Ce commutateur agit aussi sur la sortie MIDI.  Notez bien que tous les
1910 événements seront escamotés, y compris les changements de tempo ou
1911 d'instrument -- vous voilà prévenu@tie{}!
1912
1913 @lilypond[quote,relative=2,ragged-right,verbatim]
1914 c8 d
1915 \set Score.skipTypesetting = ##t
1916 e8 e e e e e e e
1917 \set Score.skipTypesetting = ##f
1918 c8 d b bes a g c2
1919 @end lilypond
1920
1921 Dans le cadre de musique polyphonique, @code{Score.skipTypesetting}
1922 s'applique à toutes les voix et portées.  Vous gagnerez donc encore plus
1923 de temps.
1924
1925
1926 @node Formats de sortie alternatifs
1927 @subsection Formats de sortie alternatifs
1928 @translationof Alternative output formats
1929
1930 @cindex scalable vector graphics
1931 @cindex SVG, format de sortie
1932 @cindex encapsulated postscript
1933 @cindex EPS, format de sortie
1934
1935 En matière de partition imprimable, LilyPond génère par défaut des
1936 documents au format PostScript (PS) et Portable Document Format (PDF).
1937 Vous pouvez aussi obtenir des documents au format Scalable Vector
1938 Graphics (SVG), Encapsulated PostScript (EPS) ou Portable Network
1939 Graphics (PNG) dès lors que vous aurez lancé LilyPond en ligne de
1940 commande avec l'option @i{ad hoc} -- voir 
1941 @rprogram{Options en ligne de commande pour lilypond} à ce sujet.
1942
1943
1944 @node Changement des fontes musicales
1945 @subsection Changement des fontes musicales
1946 @translationof Replacing the notation font
1947
1948 Gonville est une alternative à la fonte Feta que LilyPond utilise par
1949 défaut.  Vous pouvez la télécharger à partir de
1950 @example
1951 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
1952 @end example
1953
1954 Voici quelques mesures utilisant la police Gonville@tie{}:
1955
1956 @c NOTE: these images are a bit big, but that's important
1957 @c       for the font comparison.  -gp
1958 @sourceimage{Gonville_after,,,}
1959
1960 Et ces même mesures avec la police de LilyPond, Feta@tie{}:
1961
1962 @sourceimage{Gonville_before,,,}
1963
1964
1965 @subsubheading Instructions d'installation pour MacOS
1966 @translationof Installation Instructions for MacOS
1967
1968 Téléchargez puis décompressez l'archive zip.  Recopiez le répertoire
1969 @code{lilyfonts} dans  @file{@var{SHARE_DIR}/lilypond/current} -- voir
1970 @rlearning{Autres sources de documentation} à ce sujet.  Renommez le
1971 répertoire @code{fonts} qui s'y trouve en @code{fonts_orig}, puis le
1972 répertoire @code{lilyfonts} en @code{fonts}.  Il vous suffira, pour
1973 retrouver la fonte Feta, de renommer @code{fonts_orig} en @code{fonts}.
1974
1975
1976 @seealso
1977 Manuel d'initiation :
1978 @rlearning{Autres sources de documentation}.
1979
1980 @knownissues
1981
1982 Gonville ne permet pas de générer de la notation ancienne, et certains
1983 glyphes ajoutés depuis lors aux jeux de caractères en soient absent.
1984 Consultez le site de l'auteur pour de plus amples informations ainsi
1985 qu'à propos des conditions d'utilisation.
1986
1987
1988 @node Sortie MIDI
1989 @section Sortie MIDI
1990 @translationof MIDI output
1991
1992 @cindex son
1993 @cindex MIDI
1994
1995 MIDI (Musical Instrument Digital Interface) constitue un standard en
1996 matière de connexion et de contrôle des instruments électroniques.  Un
1997 fichier MIDI contient une série de notes réparties dans différentes
1998 pistes.  Il ne s'agit en rien d'un fichier sonore@tie{}; il vous faudra
1999 un logiciel capable de traduire ces séries de notes en sons réels.
2000
2001 Vous pouvez convertir vos partition en fichier MIDI de manière à
2002 entendre ce que vous avez saisi.  Ceci vous permet de contrôler aisément
2003 ce que vous avez saisi@tie{}: octaves et altérations erronées heuteront
2004 votre oreille avertie grâce au MIDI.
2005
2006 Le fichier MIDI généré par LilyPond est relativement brut.  Vous pouvez
2007 cependant obtenir un meilleur rendu avec @ref{Le script Articulate}.
2008
2009 @c TODO Check this
2010 Dans une sortie MIDI, LilyPond alloue un canal à chaque portée, plus un
2011 pour les réglages globaux.  Par voie de conséquence, un fichier MIDI ne
2012 peut comporter au maximmum que quinze portées (quatorze en l'absence de
2013 percussions)@tie{}; les portées supplémentaires seront tout simplement
2014 silencieuses.
2015
2016 @menu
2017 * Création de fichiers MIDI::
2018 * Le bloc MIDI::
2019 * Contenu de la sortie MIDI::
2020 * Répétitions et MIDI::
2021 * Gestion des nuances en MIDI::
2022 * MIDI et percussions::
2023 * Le script Articulate::
2024 @end menu
2025
2026
2027 @node Création de fichiers MIDI
2028 @subsection Création de fichiers MIDI
2029 @translationof Creating MIDI files
2030
2031 LilyPond génèrera un fichier MIDI dès que vous ajouterez un bloc
2032 @code{\midi} à la structure de votre partition, comme ici@tie{}:
2033
2034 @example
2035 \score @{
2036   @var{...musique...}
2037   \midi @{ @}
2038 @}
2039 @end example
2040
2041 Lorsque le bloc @code{\score} contient un bloc @code{\midi} mais pas de
2042 bloc @code{\layout}, LilyPond ne produira qu'une sortie MIDI.  Si donc
2043 vous avez besoin aussi d'un support visuel, vous devrez aussi mentionner
2044 un bloc @code{\layout}.
2045
2046 @example
2047 \score @{
2048   @var{...musique...}
2049   \midi @{ @}
2050   \layout @{ @}
2051 @}
2052 @end example
2053
2054 Hauteurs, durées, liaisons de prolongation, nuances et changements de
2055 tempo seront interprétés et traduits en événements MIDI.  Les
2056 indications de nuances, crescendos et decrescendos sont traduits en
2057 niveau de volume@tie{}; les indications sous la forme d'une fraction
2058 déterminée du volume disponible, et crescendos et decrescendos sous la
2059 forme d'une progression linéaire entre les deux extrêmes.  Le rendu des
2060 indications de nuance peut être désactivé pour le MIDI -- voir
2061 @ref{Le bloc MIDI}.
2062
2063 Le tempo initial ainsi que ses changements sont normalement indiqués au
2064 fil de la notation à l'aide de la commande @code{\tempo}@tie{}; ils
2065 seront retranscrits dans le fichier MIDI.  La commande @code{\tempo}
2066 donne lieu à l'impression d'une indication métronomique que vous pouvez
2067 toutefois rendre invisible, comme indiqué à la rubrique
2068 @ref{Indication métronomique}.  Une autre manière de spécifier le tempo
2069 initial pour un fichier MIDI est indiquée plus avant -- voir
2070 @ref{Le bloc MIDI}.
2071
2072 En raison de certaines limitations de Windows, les fichiers MIDI doivent
2073 y porter l'extension @code{.mid}.  D'autres systèmes utilisent
2074 l'extension @code{.midi}.  Si besoin est, placez la ligne suivante au
2075 début de votre fichier source, avant l'ouverture de tout bloc
2076 @code{\book}, @code{\bookpart} ou @code{\score}@tie{}:
2077
2078 @example
2079 #(ly:set-option 'midi-extension "midi")
2080 @end example
2081
2082 Cette ligne déterminera @code{.midi} comme extension par défaut pour les
2083 fichiers MIDI.
2084
2085 Vous pouvez aussi le faire en ligne de commande@tie{}:
2086
2087 @example
2088 lilypond … -dmidi-extension=midi fichierLily.ly
2089 @end example
2090
2091
2092 @unnumberedsubsubsec Noms d'instrument
2093 @translationof Instrument names
2094
2095 @cindex instrument, nom d'
2096 @funindex Staff.midiInstrument
2097
2098 L'instrument MIDI affecté à un canal particulier est déterminé par la
2099 propiété @code{Staff.midiInstrument}.  Vous pouvez choisr l'un des
2100 instruments répertoriés à l'annexe @ref{Instruments MIDI}.
2101
2102 @example
2103 \new Staff @{
2104   \set Staff.midiInstrument = #"glockenspiel"
2105   @var{...notes...}
2106 @}
2107 @end example
2108
2109 @example
2110 \new Staff \with @{midiInstrument = #"cello"@} @{
2111   @var{...notes...}
2112 @}
2113 @end example
2114
2115 Lorsque l'instrument choisi ne correspond pas exactement à l'une des
2116 dénominations consacrées, LilyPond le replacera par un piano de concert
2117 (@code{"acoustic grand"}).
2118
2119
2120 @snippets
2121
2122 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
2123 {changing-midi-output-to-one-channel-per-voice.ly}
2124
2125 @knownissues
2126
2127 @c In 2.11 the following no longer seems to be a problem -td
2128 @ignore
2129 Un (de)crescendo non terminé ne sera pas correctement rendu en MIDI --
2130 il y a nécessairement du silence.  Il vous faut donc lui donner une fin
2131 explicite.  Par exemple,
2132
2133 @example
2134 @{ a4\< b c d\f @}
2135 @end example
2136
2137 @noindent
2138 ne fonctionnera pas correctement, contrairement à
2139
2140 @example
2141 @{ a4\< b c d\!\f @}
2142 @end example
2143 @end ignore
2144
2145 Un changement de volume ne peut intervenir que sur le démarrage d'une
2146 note.  C'est la raison pour laquelle la succession d'un crescendo et
2147 d'un diminuendo ne peut se produire sur une même note.
2148
2149 Certains lecteurs MIDI ne rendent pas correctement les changements de
2150 tempo.  MS Windows Media Player et 
2151 @uref{http://@/timidity@/.sourceforge@/.net/,timidity} le font sans
2152 problème.
2153
2154
2155 @node Le bloc MIDI
2156 @subsection Le bloc MIDI
2157 @translationof MIDI block
2158
2159 Dès lors que vous désirez obtenir une sortie MIDI, vous devrez inscrire
2160 un bloc @code{\midi} au sein du bloc @code{\score}.  Son fonctionnement
2161 est comparable à ce lui du bloc @code{\layout}, voire plus simple.  Si
2162 le bloc @code{\midi} est la plupart du temps laissé vide, il peut
2163 contenir des aménagements pour certains contextes, la définition de
2164 contextes particuliers ou du code permettant de déterminer la valeur de
2165 certaines propriétés.  L'exemple suivant détermine le tempo initial du
2166 fichier MIDI tout en se passant de son indication sur la partition
2167 imprimée.
2168
2169 @example
2170 \score @{
2171   @var{...musique...}
2172   \midi @{
2173     \context @{
2174       \Score
2175       tempoWholesPerMinute = #(ly:make-moment 72 4)
2176     @}
2177   @}
2178 @}
2179 @end example
2180
2181 Ici, le tempo est fixé à 72 noires à la minute.  Spécifier un tempo de
2182 la sorte ne permet pas de doner une valeur pour une note pointée.  Vous
2183 devrez, en pareil cas, subdiviser la note pointée en durée plus courte.
2184 Par exemple, indiquer 90 à la noire pointée est équivalent à spécifier
2185 270 croches à la minute@tie{}:
2186
2187 @example
2188 tempoWholesPerMinute = #(ly:make-moment 270 8)
2189 @end example
2190
2191 @cindex MIDI et définition de contexte
2192 @cindex contexte, définition en MIDI
2193
2194 La syntaxe permettant de définir un contexte pour le @code{\midi} est en
2195 tout point identique à celle que vous utilisez dans le bloc
2196 @code{\layout}, à ceci près que le @qq{graveur} est remplacé par un
2197 @qq{interprète}.  Les différents contextes disponibles en matière de
2198 MIDI sont répertoriés dans le fichier d'initialisation
2199 @file{../ly/performer-init.ly} -- pour plus de détail, voir
2200 @rlearning{Autres sources de documentation}.
2201 Si vous voulez vous passer des nuances dans votre fichier MIDI, il vous
2202 suffit d'insérer les lignes suivantes dans votre bloc
2203 @code{\midi@{ @}}.
2204
2205 @example
2206 \midi @{
2207   ...
2208   \context @{
2209     \Voice
2210     \remove "Dynamic_performer"
2211   @}
2212 @}
2213 @end example
2214
2215 LilyPond ne génèrera de sortie MIDI que si vous incluez un bloc
2216 @code{\midi} dans la structure de la partition, initialisée par la
2217 commande @code{\score}.
2218
2219 @example
2220 \score @{
2221   @{ @dots{}notes@dots{} @}
2222   \midi @{ @}
2223 @}
2224 @end example
2225
2226
2227 @node Contenu de la sortie MIDI
2228 @subsection Contenu de la sortie MIDI
2229 @translationof What goes into the MIDI output?
2230
2231 @c TODO Check grace notes - timing is suspect?
2232
2233
2234 @unnumberedsubsubsec Éléments pris en compte dans le MIDI
2235 @translationof Supported in MIDI
2236
2237 @cindex hauteurs en MIDI
2238 @cindex MIDI, hauteurs
2239 @cindex quart de ton en MIDI
2240 @cindex MIDI, quart de ton
2241 @cindex microtonalité en MIDI
2242 @cindex MIDI, microtonalité
2243 @cindex accords nommés en MIDI
2244 @cindex MIDI, accords nommés
2245 @cindex Rythme en MIDI
2246 @cindex MIDI, Rythme
2247 @cindex articulations et MIDI
2248 @cindex MIDI et articulations
2249 @cindex trilles et MIDI
2250 @cindex MIDI et trilles
2251 @c TODO etc
2252
2253 Un fichier MIDI généré par LilyPond comprendra les éléments de notation
2254 suivants@tie{}:
2255
2256 @itemize
2257 @item
2258 les hauteurs ;
2259
2260 @item
2261 les microtonalités -- voir @ref{Altérations}.  Leur rendu nécessite
2262 cependant un lecteur qui prenne en charge la modulation@tie{};
2263
2264 @item
2265 les accords nommés ;
2266
2267 @item
2268 le rythme en tant que durée de note, y compris les nolets ;
2269
2270 @item
2271 les tremolos, exceptés ceux utilisant la syntaxe
2272 @qq{@code{:}[@var{nombre}]}@tie{};
2273
2274 @item
2275 les liaisons de prolongation ;
2276
2277 @item
2278 les indications de nuance ;
2279
2280 @item
2281 les crescendos et decrescendos s'étalant sur plusieurs notes@tie{};
2282
2283 @item
2284 les changements de tempo indiqués par un @code{\tempo}@tie{};
2285
2286 @item
2287 les paroles.
2288 @end itemize
2289
2290 Si vous utilisez @ref{Le script Articulate}, d'autres éléments seront
2291 alors inclus@tie{}:
2292
2293 @itemize
2294 @item articulations (lié, staccato, etc.),
2295 @item trilles et groupettos,
2296 @item rallentando et accelerando.
2297 @end itemize
2298
2299
2300 @unnumberedsubsubsec Éléments non pris en compte dans le MIDI
2301 @translationof Unsupported in MIDI
2302
2303 @c TODO index as above
2304
2305 LilyPond ne peut générer d'événement MIDI pour les éléments
2306 suivant, sauf à utiliser @ref{Le script Articulate}@tie{}:
2307
2308 @itemize
2309 @item
2310 le rythme indiqué sous forme d'annotation (p.ex. @emph{swing})@tie{};
2311
2312 @item
2313 les changements de tempo indiqués sous forme d'annotation (sans
2314 @code{\tempo})@tie{};
2315
2316 @item
2317 les staccatos et autres articulations ou ornementations@tie{};
2318
2319 @item
2320 les liaisons d'articulation et de prhasé@tie{};
2321
2322 @item
2323 les crescendos ou decrescendos sur une sele note@tie{};
2324
2325 @item
2326 les tremolos indiqués par la syntaxe @qq{@code{:}[@var{nombre}]}@tie{};
2327
2328 @item
2329 la basse chiffrée
2330
2331 @item
2332 les accords en microtonalité.
2333 @end itemize
2334
2335
2336 @node Répétitions et MIDI
2337 @subsection Répétitions et MIDI
2338 @translationof Repeats in MIDI
2339
2340 @cindex reprises développées
2341 @cindex MIDI et reprises
2342 @funindex \unfoldRepeats
2343
2344 Au prix de quelques réglages, les reprises de toutes sortes peuvent être
2345 rendues dans le fichier MIDI.  Il suffit pour cela de recourir à la
2346 fonction @code{\unfoldRepeats}, qui développe toutes les reprises.  En
2347 d'autre termes, @code{\unfoldRepeats} transforme toutes les reprises
2348 en reprises de type @code{unfold}.
2349
2350
2351 @lilypond[quote,verbatim]
2352 \unfoldRepeats {
2353   \repeat tremolo 8 {c'32 e' }
2354   \repeat percent 2 { c''8 d'' }
2355   \repeat volta 2 {c'4 d' e' f'}
2356   \alternative {
2357     { g' a' a' g' }
2358     {f' e' d' c' }
2359   }
2360 }
2361 \bar "|."
2362 @end lilypond
2363
2364 Dans une partition comportant plusieurs voix, le développement des
2365 reprises ne sera effectif en MIDI qu'à la condition que ces reprises
2366 soient mentionnée correctement dans @strong{toutes} les voix.
2367
2368 Lorsque l'on veut utiliser @code{\unfoldRepeats} seulement pour le rendu
2369 MIDI, il faut établir deux blocs @code{\score}@tie{}: un pour le MIDI,
2370 avec des reprises explicites, et l'autre pour la partition, avec des
2371 reprises notées sous forme de barres de reprise, de trémolo ou de
2372 symboles de pourcentage.  Par exemple
2373
2374 @example
2375 \score @{
2376   @var{..musique..}
2377   \layout @{ ..  @}
2378 @}
2379 \score @{
2380   \unfoldRepeats @var{..musique..}
2381   \midi @{ .. @}
2382 @}
2383 @end example
2384
2385
2386 @node Gestion des nuances en MIDI
2387 @subsection Gestion des nuances en MIDI
2388 @translationof Controlling MIDI dynamics
2389
2390 Les nuances MIDI sont générées par le @code{Dynamic_performer}, affecté
2391 par défaut au contexte @code{Voice}.  Vous pouvez contrôler à la fois le
2392 volume général, celui des indications de nuance ainsi que celui des
2393 différents instruments.
2394
2395
2396 @unnumberedsubsubsec Indications de nuance
2397 @translationof Dynamic marks
2398
2399 Les indications de nuances sont transcrites en fraction du volume MIDI.
2400 Nous allons, par défaut, de 0,25 pour un @notation{ppppp} à 0,95 pour un
2401 @notation{fffff}.  Les correspondances entre nuance et fraction de
2402 volume sont répertoriées dans le fichier @file{../scm/midi.scm} --
2403 consultez la rubrique @rlearning{Autres sources de documentation} si
2404 vous ne savez comment le localiser.  Vous pouvez modifier ou étendre ce
2405 jeu grâce à une fonction qui prendra en argument une indication de
2406 nuance et renverra la fraction désirée, puis en affectant cette fonction
2407 à @code{Score.dynamicAbsoluteVolumeFunction}.
2408
2409 Prenons un exemple.  Votre partition comporte un  @notation{rinforzando}
2410 que vous avez indiqué par @code{\rfz}.  Cette indication de nuance
2411 n'étant pas répertoriée dans le jeu par défaut, elle ne produira aucun
2412 effet en MIDI.  Il en sera d'ailleurs de même pour toute indication
2413 créée de toute pièce à l'aide de l'instruction
2414 @w{@code{make-dynamic-script}}.  Voici comment procéder pour ajuster le
2415 volume MIDI de ce @notation{rinforzando} que le compositeur a indiqué.
2416 La fonction Scheme définit une fraction de 0,9 en cas de @notation{rfz},
2417 et demande d'utiliser la fonction par défaut dans les autre cas.
2418
2419 @lilypond[verbatim,quote]
2420 #(define (myDynamics dynamic)
2421     (if (equal? dynamic "rfz")
2422       0.9
2423       (default-dynamic-absolute-volume dynamic)))
2424
2425 \score {
2426   \new Staff {
2427     \set Staff.midiInstrument = #"cello"
2428     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
2429     \new Voice {
2430       \relative c'' {
2431         a4\pp b c-\rfz
2432       }
2433     }
2434   }
2435   \layout {}
2436   \midi {}
2437 }
2438 @end lilypond
2439
2440 Si vous étiez amené à devoir modifier l'intégralité du jeu des
2441 correspondances, nous vous conseillons d'utiliser la procédure
2442 @command{default-dynamic-absolute-volume} contenue dans le fichier
2443 @file{../scm/midi.scm} ansi que la table d'association comme base.  Le
2444 dernier exemple de cette partie illustre la manière de procéder.
2445
2446
2447 @unnumberedsubsubsec Amplitude du volume en MIDI
2448 @translationof Overall MIDI volume
2449
2450 Les valeurs extrêmes du volume MIDI des nuances se contrôlent à l'aide
2451 des propriétés @code{midiMinimumVolume} et @code{midiMaximumVolume} qui
2452 agissent au niveau @code{Score}.  Ces propriétés sont effectives dès
2453 lors qu'une nuance est indiquée@tie{}; une nuance de départ est donc
2454 requise pour que le volume soit ajusté dès le début de la partition.
2455 Vous pouvez alors modifier la fraction correspondant à chaque nuance à
2456 l'aide de la formule
2457
2458 @example
2459 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
2460 @end example
2461
2462 Voici comment ajuster les nuances tout en limitant l'amplitude du volume
2463 entre 0,2 et 0,5@tie{}:
2464
2465 @lilypond[verbatim,quote]
2466 \score {
2467   <<
2468     \new Staff {
2469       \key g \major
2470       \time 2/2
2471       \set Staff.midiInstrument = #"flute"
2472       \new Voice \relative c''' {
2473         r2 g\mp g fis~
2474         fis4 g8 fis e2~
2475         e4 d8 cis d2
2476       }
2477     }
2478     \new Staff {
2479       \key g \major
2480       \set Staff.midiInstrument = #"clarinet"
2481       \new Voice \relative c'' {
2482         b1\p a2. b8 a
2483         g2. fis8 e
2484         fis2 r
2485       }
2486     }
2487   >>
2488   \layout {}
2489   \midi {
2490     \context {
2491       \Score
2492       tempoWholesPerMinute = #(ly:make-moment 72 2)
2493       midiMinimumVolume = #0.2
2494       midiMaximumVolume = #0.5
2495     }
2496   }
2497 }
2498 @end lilypond
2499
2500
2501 @unnumberedsubsubsec Égalisation de plusieurs instruments (i)
2502 @translationof Equalizing different instruments (i)
2503
2504 La définition de l'amplitude du volume MIDI au niveau d'un contexte
2505 @code{Staff} permet de gérer les volumes relatifs entre les différents
2506 instruments.  Ceci constitue en quelque sorte un égaliseur, ce qui
2507 permet d'améliorer notablement la qualité de la sortie MIDI.
2508
2509 La clarinette de l'exemple suivant jouera relativement moins fort que la
2510 flûte.  Rappelez-vous que pour que cela fonctionne correctement, la
2511 première note de chacun des instruments doit être affublée d'une
2512 indication de nuance.
2513
2514 @lilypond[verbatim,quote]
2515 \score {
2516   <<
2517     \new Staff {
2518       \key g \major
2519       \time 2/2
2520       \set Staff.midiInstrument = #"flute"
2521       \set Staff.midiMinimumVolume = #0.7
2522       \set Staff.midiMaximumVolume = #0.9
2523       \new Voice \relative c''' {
2524         r2 g\mp g fis~
2525         fis4 g8 fis e2~
2526         e4 d8 cis d2
2527       }
2528     }
2529     \new Staff {
2530       \key g \major
2531       \set Staff.midiInstrument = #"clarinet"
2532       \set Staff.midiMinimumVolume = #0.3
2533       \set Staff.midiMaximumVolume = #0.6
2534       \new Voice \relative c'' {
2535         b1\p a2. b8 a
2536         g2. fis8 e
2537         fis2 r
2538       }
2539     }
2540   >>
2541   \layout {}
2542   \midi {
2543     \context {
2544       \Score
2545       tempoWholesPerMinute = #(ly:make-moment 72 2)
2546     }
2547   }
2548 }
2549 @end lilypond
2550
2551
2552 @unnumberedsubsubsec Égalisation de plusieurs instruments (ii)
2553 @translationof Equalizing different instruments (ii)
2554
2555 Lorsque les propriétés volume minimum et maximum n'ont pas été définies,
2556 LilyPond appliquera par défaut une légère égalisation pour quelques
2557 instruments.  Les instrument concernés ainsi que le niveau d'égalisation
2558 sont répertoriés dans une table @notation{instrument-equalizer-alist}
2559 du fichier @file{../scm/midi.scm}.
2560
2561 Vous pouvez remplacer l'égaliseur basique en définissant une nouvelle
2562 procédure Scheme @code{instrumentEqualizer} au sein du contexte
2563 @code{Score}.  Cette procédure prend en unique argument le nom d'un
2564 instrument MIDI et renverra une paire de fractions correspondant au
2565 minimum et maximum de volume alloué à cet instrument.  Cette
2566 substitution fonctionne selon le même principe que celui que nous avons
2567 vu en dédut de chapitre avec @code{dynamicAbsoluteVolumeFunction}.
2568 L'égaliseur par défaut, @notation{default-instrument-equalizer}, est
2569 défini dans le fichier @file{../scm/midi.scm}@tie{}; son analyse vous
2570 aidera à construire votre propre procédure.
2571
2572 Nous allons, dans l'exemple suivant, régler le volume relatif de la
2573 flûte et de la clarinette -- au même niveau que dans le précédent.
2574
2575 @lilypond[verbatim,quote]
2576 #(define my-instrument-equalizer-alist '())
2577
2578 #(set! my-instrument-equalizer-alist
2579   (append
2580     '(
2581       ("flute" . (0.7 . 0.9))
2582       ("clarinet" . (0.3 . 0.6)))
2583     my-instrument-equalizer-alist))
2584
2585 #(define (my-instrument-equalizer s)
2586   (let ((entry (assoc s my-instrument-equalizer-alist)))
2587     (if entry
2588       (cdr entry))))
2589
2590 \score {
2591   <<
2592     \new Staff {
2593       \key g \major
2594       \time 2/2
2595       \set Score.instrumentEqualizer = #my-instrument-equalizer
2596       \set Staff.midiInstrument = #"flute"
2597       \new Voice \relative c''' {
2598         r2 g\mp g fis~
2599         fis4 g8 fis e2~
2600         e4 d8 cis d2
2601       }
2602     }
2603     \new Staff {
2604       \key g \major
2605       \set Staff.midiInstrument = #"clarinet"
2606       \new Voice \relative c'' {
2607         b1\p a2. b8 a
2608         g2. fis8 e
2609         fis2 r
2610       }
2611     }
2612   >>
2613   \layout { }
2614   \midi {
2615     \context {
2616       \Score
2617       tempoWholesPerMinute = #(ly:make-moment 72 2)
2618     }
2619   }
2620 }
2621 @end lilypond
2622
2623 @ignore
2624 @c Delete when satisfied this is adequately covered elsewhere -td
2625
2626 @n ode Microtones in MIDI
2627 @s ubsection Microtones in MIDI
2628
2629 @cindex microtones in MIDI
2630
2631 Microtones consisting of half sharps and half flats are exported
2632 to the MIDI file and render correctly in MIDI players which support
2633 pitch bending.  See @ref{Note names in other languages}.  Here is
2634 an example showing all the half sharps and half flats.  It can be
2635 copied out and compiled to test microtones in your MIDI player.
2636
2637 @lilypond[verbatim,quote]
2638 \score {
2639   \relative c' {
2640     c4 cih cis cisih
2641     d4 dih ees eeh
2642     e4 eih f fih
2643     fis4 fisih g gih
2644     gis4 gisih a aih
2645     bes4 beh b bih
2646   }
2647   \layout {}
2648   \midi {}
2649 }
2650 @end lilypond
2651 @end ignore
2652
2653
2654 @node MIDI et percussions
2655 @subsection MIDI et percussions
2656 @translationof Percussion in MIDI
2657
2658 La notation pour percussions recourt généralement à un contexte
2659 particulier -- le @code{DrumStaff} -- qui permet d'affecter directement
2660 les instruments concernés au canal@tie{}10 qui leur est réservé.
2661
2662 Certains instruments, tels le xylophone, le marimba, le vibraphone ou
2663 les timbales, se traitent cependant comme des instruments
2664 @qq{classiques} puisqu'ils sont capables d'émettre des hauteurs
2665 différentes@tie{}; leurs notation relève donc d'un contexte @code{Staff}
2666 standard, et non d'un @code{DrumStaff} pour pouvoir être rendus
2667 correctement en MIDI.
2668
2669 D'autres percussions, bien que n'émettant qu'un seul son et inclus dans
2670 le standard @emph{general MIDI}, comme le tom mélodique ou le tambour
2671 taiko, ne sont pas attachés au canal@tie{}10.  Ces instruments doivent
2672 donc être saisi dans un contexte @code{Staff}, en utilisant la hauteur
2673 appropiée.
2674
2675 De nombreux instruments de la famille des percussions, les castagnettes
2676 par exemple,  n'existent pas dans le standard @emph{general MIDI}.
2677 L'alternative, bien que peu satisfaisante, consiste à leur attribuer le
2678 son le plus proche dans la banque standard.
2679
2680 @c TODO Expand with examples, and any other issues
2681
2682 @knownissues
2683
2684 Le standard @emph{general MIDI} ne dispose pas du @emph{rim shot}@tie{};
2685 LilyPond lui subtitue un @emph{sidestick}.
2686
2687
2688 @node Le script Articulate
2689 @subsection Le script Articulate
2690 @translationof The Articulate script
2691
2692 Vous obtiendrez un rendu MIDI plus @qq{réaliste} grâce au script
2693 @code{articulate}.  Celui-ci va tout faire pour d'une part prendre en
2694 compte les articulations (liaisons, staccato, etc.) -- en ajoutant un
2695 blanc aux notes raccourcies -- et, d'autre part, développer les trilles
2696 ou groupettos ainsi que tenir compte des éventuels rallentando et
2697 accelerando.
2698
2699 L'utilisation du script @code{articulate} se fait en deux temps.  Vous
2700 devez dans un premier temps inclure son fichier d'initialisation en
2701 ajoutant en tête de votre fichier la ligne
2702
2703 @example
2704 \include "articulate.ly"
2705 @end example
2706
2707 puis, dans le bloc @code{\score}, indiquer que toutes les répétitions
2708 seront développées et appliquer la commande à votre musique@tie{}:
2709
2710 @example
2711 \unfoldRepeats \articulate <<
2712         tout le reste du bloc contenant la partition...
2713 >>
2714 @end example
2715
2716 Une fois votre fichier modifié de la sorte, vous constaterez que la
2717 version imprimable aura été modifiée en profondeur.  Le bloc
2718 @code{\midi} produira par contre un fichier MIDI de bien meilleure
2719 qualité.
2720
2721 Bien que cela ne gène en rien le fonctionnement du script
2722 @code{articulate}, lui adjoindre la commande @code{\unfoldRepeats} comme
2723 illustré ci-dessus permettra le rendu d'un certain nombre
2724 d'articulations tels les trilles.
2725
2726 @knownissues
2727
2728 Dans la mesure où la script @code{articulate} tend à raccourcir les
2729 accords, certaines musiques, notamment pour l'orgue, paraîtront de moins
2730 bonne qualité.
2731
2732
2733 @node Extraction d'informations musicales
2734 @section Extraction d'informations musicales
2735 @translationof Extracting musical information
2736
2737 En plus de générer du graphisme et du MIDI, LilyPond peut présenter
2738 l'information musicale sous forme textuelle.
2739
2740 @menu
2741 * Affichage de notation au format LilyPond::
2742 * Affichage de la musique sous forme d'expression scheme::
2743 * Enregistrement d'événements musicaux dans un fichier::
2744 @end menu
2745
2746
2747 @node Affichage de notation au format LilyPond
2748 @subsection Affichage de notation au format LilyPond
2749 @translationof Displaying LilyPond notation
2750
2751 @funindex \displayLilyMusic
2752
2753 La fonction musicale @code{\displayLilyMusic}, disponible uniquement
2754 pour un traitement en ligne de commande, permet d'afficher en
2755 notation LilyPond une expression musicale.  Par exemple,
2756
2757 @example
2758 @{
2759   \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
2760 @}
2761 @end example
2762
2763 affichera
2764
2765 @example
2766 @{ a,4 cis e fis g @}
2767 @end example
2768
2769 LilyPond affichera le résultat sous forme de message en console, au
2770 milieu de toutes les informations de compilation.  Afin d'isoler ces
2771 messages et enregistrer le résultat de la fonction
2772 @code{\display@{MATÉRIAU@}}, pensez à rediriger la sortie vers un
2773 fichier.
2774
2775 @example
2776 lilypond fichier.ly >display.txt
2777 @end example
2778
2779
2780 @node Affichage de la musique sous forme d'expression scheme
2781 @subsection Affichage de la musique sous forme d'expression scheme
2782 @translationof Displaying scheme music expressions
2783
2784 Voir @rextend{Displaying music expressions}.
2785
2786
2787 @node Enregistrement d'événements musicaux dans un fichier
2788 @subsection Enregistrement d'événements musicaux dans un fichier
2789 @translationof Saving music events to a file
2790
2791 LilyPond vous permet de sauvegarder dans un fichier séparé, sur la base
2792 de la portée, les événements musicaux.  Vous devrez pour ce faire
2793 inclure dans votre fichier maître un fichier d'initialisation
2794 spécifique@tie{}:
2795
2796 @example
2797 \include "event-listener.ly"
2798 @end example
2799
2800 Pour chaque portée que comporte votre partition, vous obtiendrez un
2801 fichier @file{NOMFICHIER-PORTÉENOMMÉE.notes} ou
2802 @file{NOMFICHIER-unnamed-staff.notes}.  Notez bien que si plusieurs
2803 portées ne sont pas explicitement nomées, tous leurs événements seront
2804 regroupés et mélangés dans le même fichier.  Le résultat ressemblera à
2805 ceci@tie{}:
2806
2807 @example
2808 0.000   note     57       4   p-c 2 12
2809 0.000   dynamic  f
2810 0.250   note     62       4   p-c 7 12
2811 0.500   note     66       8   p-c 9 12
2812 0.625   note     69       8   p-c 14 12
2813 0.750   rest     4
2814 0.750   breathe
2815 @end example
2816
2817 Il s'agit d'un tableau dont les colonnes sont délimitées par une
2818 tabulation.  Chaque ligne comporte deux champs fixes suivis d'un certain
2819 nombre de paramètres optionnels.
2820
2821 @example
2822 @var{temps}  @var{type}  @var{...paramètres...}
2823 @end example
2824
2825 Ces informations peuvent faire l'objet d'un retraîtement par d'autres
2826 programmes, comme des scripts python, aux fins de recherche en analyse
2827 musicologique ou des expériences à partir du rendu de LilyPond.
2828
2829
2830 @knownissues
2831
2832 Tous les événements ne sont pas pris en charge par
2833 @file{event-listener.ly}.  Il s'agit en premier lieu d'une
2834 démonstration, un @qq{proof of concept} du potentiel de LilyPond.  Si
2835 certains des éléments que vous cherchez à obtenir n'apparaîssent pas,
2836 recopiez le fichier @file{event-listener.ly} dans votre répoertoire et
2837 modifiez-le de telle sorte qu'il travaille selon vos attentes.