@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885
+ Translation of GIT committish: 7eee2a7382029cc29cc069f93a431758ae8a13b7
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end lilypond
@c DIV specific
-Il est aussi possible d'utiliser les noms de notes français @samp{do
-re mi fa sol la si}, en insérant au début du fichier la ligne
-@samp{\include "italiano.ly"}.
+Il est aussi possible d'utiliser les noms de notes français @qq{@w{do
+re mi fa sol la si}}, en insérant au début du fichier la ligne
+@code{\include@tie{}"italiano.ly"}.
@c END DIV
@warning{Tout extrait de code LilyPond doit être entouré d'une
Si vous double-cliquez sur @code{LilyPond.app}, un fichier d'exemple
s'ouvrira. Sauvegardez-le, par exemple, sous @file{test.ly} sur votre
-bureau, puis traitez-le avec la commande de menu @samp{Compile >
-Typeset File}. Le fichier PDF résultant sera alors affiché à l'écran.
+bureau, puis traitez-le avec la commande de menu
+@w{@code{Compile > Typeset File}}. Le fichier PDF résultant sera alors
+affiché à l'écran.
À l'avenir, vous aurez certainement recours aux commandes @qq{Nouveau}
ou @qq{Ouvrir}. Vous devez enregistrer votre fichier avant de lancer
La note de départ est le @notation{do central}. Chacune des notes qui
suivent est placée à l'octave la plus proche de la note précédente ---
-en d'autres termes, le premier @samp{c} est le do central, entre la
+en d'autres termes, le premier @code{c} est le do central, entre la
clef de sol et la clef de fa, puis est suivi par le ré le plus proche,
et ainsi de suite. On peut bien sûr créer des mélodies avec de plus
grands intervalles, toujours avec le mode @code{\relative} :
@noindent
Remarquez que cet exemple ne commence plus sur le do central : la
-première note --- le @samp{d} --- est le ré qui en est le plus proche.
+première note --- le @code{d} --- est le ré qui en est le plus proche.
Dans l'exemple suivant, on remplace @code{c'} dans la commande
-@w{@code{\relative c'}} par @code{c''}, afin de calculer l'octave de
+@code{@w{\relative c' @{}} par @code{c''}, afin de calculer l'octave de
la première note par rapport au do situé une octave au-dessus du do
central :
}
@end lilypond
-Notez que le calcul des octaves relatives @strong{ne dépend pas des
-altérations} des notes, dièses bémols ou bécarre.
+Notez que le calcul des octaves relatives @strong{ne tient pas compte
+des altérations} des notes, dièses bémols ou bécarre.
Pour obtenir des intervalles supérieurs à une quarte, on peut ajouter
des apostrophes @code{'} --- qui font chacune monter la hauteur d'une
bas, il suffit de mettre deux (ou davantage) @code{'} ou @code{,} ---
attention cependant à bien mettre deux apostrophes @code{''}, et non
un guillemet @code{"}@tie{}! C'est de cette même manière que l'on
-peut modifier la valeur de départ de @code{\relative c'}.
+peut modifier la valeur de départ de @code{@w{\relative c'}}.
@subheading Durées et rythme
@rglos{dotted note}.
La @notation{durée} d'une note est indiquée par un nombre qui suit sa
-hauteur : @samp{1} pour une @notation{ronde}, @samp{2} pour une
-@notation{blanche}, @samp{4} pour une @notation{noire} et ainsi de
+hauteur : @code{1} pour une @notation{ronde}, @code{2} pour une
+@notation{blanche}, @code{4} pour une @notation{noire} et ainsi de
suite. Les @notation{crochets} et @notation{liens} sont ajoutés
automatiquement.
Glossaire musical : @rglos{rest}.
On saisit un @notation{silence} tout comme une note, mais avec la
-lettre @samp{r} (pour @emph{rest}).
+lettre @code{r} (pour @emph{rest}).
@lilypond[verbatim,quote]
\relative c'' {
@subheading Métrique
@cindex métrique
+@cindex chiffre de mesure
@funindex \time
@funindex time
@node Working on input files
@subsection Working on input files
-@cindex accolades
-@funindex { ... }
-
Le traitement des fichiers source de LilyPond est semblable à celui du
code de nombreux langages de programmation. La casse est prise
en compte, et les caractères considérés comme espaces ont généralement
@itemize
-@item @strong{La casse} :
@cindex casse, prise en compte de
@cindex prise en compte de la casse
@cindex sensibilité à la casse
+
+@item
+@strong{La casse} :
LilyPond est sensible à la casse, c'est à dire qu'une lettre capitale
n'a pas la même valeur qu'une lettre minuscule. Les notes, par
exemple, doivent être entrées en minuscule : @code{@{ c d e @}} est
@cindex expressions
+@funindex { ... }
+
@item @strong{Expressions musicales} :
Tout morceau saisi dans LilyPond doit être placé entre @strong{@{
accolades @}}. Ces caractères indiquent à LilyPond que ce bloc de
texte représente une et une seule expression musicale, tout comme les
-parenthèses @samp{()} en mathématiques. Pour éviter toute ambiguïté,
+parenthèses @code{()} en mathématiques. Pour éviter toute ambiguïté,
il est préférable d'entourer ces accolades d'espaces ou de retours à
la ligne.
@funindex %@{ ... %@}
@item @strong{Les commentaires} :
-un commentaire est une indication pour tout lecteur humain d'un
+Un commentaire est une indication pour tout lecteur humain d'un
fichier source de musique ; il est ignoré par l'ordinateur, et n'a
donc aucun effet sur la partition imprimée. On distingue deux types
de commentaires. Le commentaire de fin de ligne, introduit par le
-symbole @samp{%} : tout ce qui suit ce symbole sur la même ligne sera
+symbole @code{%} : tout ce qui suit ce symbole sur la même ligne sera
ignoré. Par convention, un commentaire qui occupe une ligne entière
se place juste @emph{au-dessus} de la ligne à laquelle il fait
référence.
Comme nous l'avons vu dans @ref{Working on input files}, un code
LilyPond doit être encadré par des accolades @{ @} ou bien par
-@code{\relative c'' @{ ... @}}. Cependant, dans la suite de ce
+@code{@w{\relative c'' @{ ... @}}}. Cependant, dans la suite de ce
manuel, la plupart des exemples ne feront pas apparaître ces signes.
Pour reproduire les exemples, vous pouvez copier et coller le code
-affiché, mais @strong{à condition} d'ajouter @code{\relative c'' @{
-@}} de la façon suivante :
+affiché, mais @strong{à condition} d'ajouter
+@code{@w{\relative c'' @{ @}}} de la façon suivante :
@example
\relative c'' @{
Pourquoi avoir omis les accolades ? La plupart des exemples de ce
manuel peuvent être insérés au milieu d'un morceau de musique plus
-long. Il n'y a donc aucune raison d'ajouter @code{\relative c'' @{
-@}} à ces exemples --- en effet, il n'est pas possible d'insérer une
+long. Il n'y a donc aucune raison d'ajouter @code{@w{\relative c'' @{
+@}}} à ces exemples --- en effet, il n'est pas possible d'insérer une
expression @code{\relative} à l'intérieur d'un autre expression
@code{\relative}. Si nous mettions tous nos exemples dans une
expression @code{\relative}, vous ne pourriez plus copier un bref
@subheading Accidentals
+@cindex altérations
@cindex dièse
@cindex double dièse
@cindex dièse, double
@cindex bémol, double
@funindex es
-@funindex b
@funindex is
-@funindex d
@funindex eses
-@funindex bb
@funindex isis
-@funindex dd
Glossaire musical : @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
@rglos{double flat}, @rglos{accidental}.
comme l'allemand ou le hollandais.
@c DIV specific
-Cependant, si vous utilisez la commande @code{\include "italiano.ly"}
-pour entrer les noms de notes français au lieu des noms hollandais, il
-faudra ajouter un @code{d} pour obtenir un dièse, et un @code{b} pour
-un bémol. Le double dièse et le double bémol s'obtiennent en ajoutant
-respectivement @code{dd} et @code{bb}. Pour en savoir plus sur les
-autres langues disponibles, consultez @ruser{Note names in other
-languages}.
+Cependant, si vous utilisez la commande
+@code{@w{\include@tie{}"italiano.ly"}} pour entrer les noms de notes
+français au lieu des noms hollandais, il faudra ajouter un @code{d} pour
+obtenir un dièse, et un @code{b} pour un bémol. Le double dièse et le
+double bémol s'obtiennent en ajoutant respectivement @code{dd} et
+@code{bb}. Pour en savoir plus sur les autres langues disponibles,
+consultez @ruser{Note names in other languages}.
@c END DIV
@lilypond[verbatim,quote,relative=2]
Le code @code{b} ne veut pas dire @qq{Imprimez-moi un point noir sur
la troisième ligne de la portée.} Cela signifie plutôt : @qq{Ici se
trouve une note dont la hauteur est un si naturel.} Avec une armure
-de la bémol majeur, ce si est flanqué d'un bécarre accidentel :
+de la bémol majeur, ce @code{si} est flanqué d'un bécarre accidentel :
@lilypond[verbatim,quote,relative=2]
\key aes \major
Une liaison d'articulation ou @emph{legato} peut englober
plusieurs notes. Les notes de départ et d'arrivée sont suivies
-respectivement d'un signe @samp{(} et @samp{)}.
+respectivement d'un signe @code{(} et @code{)}.
@lilypond[verbatim,quote,relative=2]
d4( c16) cis( d e c cis d) e( d4)
@node Articulation and dynamics
@subsection Articulation and dynamics
+@subheading Articulations
+
@cindex articulation
@cindex accents
@cindex staccato
-@subheading Articulations
Glossaire musical : @rglos{articulation}.
c-. c-- c-> c-^ c-+ c-_
@end lilypond
-@cindex doigtés
@subheading Fingerings
+@cindex doigtés
+
@funindex ^
@funindex _
@end lilypond
Articulations et doigtés sont habituellement placés automatiquement,
-mais vous pouvez spécifier leur positionnement en utilisant @samp{^} (en
-haut) ou @samp{_} (en bas). Vous pouvez aussi utiliser plusieurs
+mais vous pouvez spécifier leur positionnement en utilisant @code{^} (en
+haut) ou @code{_} (en bas). Vous pouvez aussi utiliser plusieurs
articulations sur la même note. Dans la plupart des cas, cependant,
il est bon de laisser LilyPond déterminer l'emplacement de
l'articulation.
@rglos{decrescendo}.
On obtient un signe de @notation{nuance} en ajoutant à la note les
-lettres du signe, précédées d'un anti-slash @samp{\} :
+lettres du signe, précédées d'un anti-slash @code{\} :
@lilypond[verbatim,quote,relative=2]
c\ff c\mf c\p c\pp
@node Automatic and manual beams
@subsection Automatic and manual beams
-@cindex lihature
+@cindex ligature
+@cindex barre de ligature
@cindex ligatures automatiques
@cindex ligatures manuelles
@cindex ligatures explicites
Ceci est une suite d'expressions, où chacune est contenue dans la
suivante. Les expressions les plus simples sont les nombres, et de
plus grandes expressions sont produites en combinant des expressions
-avec des opérateurs --- comme @samp{+}, @samp{*} et @samp{/} --- et
+avec des opérateurs --- comme @code{+}, @code{*} et @code{/} --- et
des parenthèses. Tout comme les expressions mathématiques, les
expressions musicales peuvent être imbriquées avec une profondeur
arbitraire, ce qui est nécessaire pour des partitions complexes comme
notation de la mélodie, alors que @code{Lyrics} gère les paroles et
@code{ChordNames} imprime des noms d'accords.
-En termes de syntaxe, ajouter @code{\new} devant une expression
+En terme de syntaxe, ajouter @code{\new} devant une expression
musicale crée une plus grande expression musicale. En reprenant la
comparaison précédente, cela ressemble au signe @emph{moins} en
mathématiques. La formule @math{(4+5)} est une expression, donc
-@math{-(4+5)} est une plus grande expression.
+@math{-(4+5)} constitue une plus grande expression.
Les chiffres de métrique indiqués sur une portée affectent toutes les
autres portées@footnote{Ce comportement peut être modifié si
}
@end lilypond
+Vous pouvez générer d'autres de regroupement, avec
+@code{\new GrandStaff} pour un e partition d'orchestre, ou
+@w{@code{\new ChoirStaff}} qui sied particulièrement aux partitions
+chorales. Chacun de ces regroupements constituent un contexte à part
+entière, avec ses particularités, tant au niveau du signe qui regroupe
+les portées au sein d'un @notation{système} qu'au niveau de l'étendue
+des barres de mesure.
+
@seealso
Manuel de notation : @ruser{Keyboard and other multi-staff instruments},
Glossaire musical : @rglos{chord}.
Nous avons vu précédemment comment combiner des notes simultanément,
-en les encadrant par des angles doubles @code{<<} et @code{>>}. Pour
+en les encadrant par des chevrons doubles @code{<<} et @code{>>}. Pour
produire des accords simples, c'est-à-dire une superposition de notes
-de même durée, on encadre les hauteurs de notes par des angles simples
+de même durée, on encadre les hauteurs de notes par des chevrons simples
@code{<} et @code{>}, et on écrit la durée juste après.
@lilypond[verbatim,quote,relative=2]
simple, comme une liaison, un crochet indiquant un début ou une fin de
lien, un signe d'articulation, peuvent être également attachés à un
accord : il faut ajouter ces indications après les hauteurs et la
-durée, donc @emph{à l'extérieur} des angles.
+durée, donc @emph{à l'extérieur} des chevrons.
@lilypond[verbatim,quote,relative=2]
r4 <c e g>8[ <c f a>]~ <c f a>2
@funindex \\
@funindex >>
-Quand différentes lignes mélodiques sont combinées sur une seule et même
-portée, elles sont imprimées comme des voix polyphoniques ; chaque voix
-a ses propre hampes@footnote{familièrement appelées queues de note.},
-liaisons et ligatures, la voix supérieure ayant les hampes vers le haut,
-la voix inférieure vers le bas.
-
-On réalise ce type de partition en entrant chaque voix comme une
-séquence, autrement dit avec @code{@{...@}}, puis en combinant
-simultanément les voix et en les séparant par @code{\\}.
-
-@lilypond[verbatim,quote,relative=2]
-<<
- { a4 g2 f4~ f4 } \\
- { r4 g4 f2 f4 }
->>
-@end lilypond
-
-Pour l'écriture de musique polyphonique, les silences invisibles
-s'avèrent bien pratiques : ce sont des silences qui ne s'impriment pas.
-Ils sont utiles pour remplir des voix qui, temporairement, ne jouent
-rien. Voici le même exemple que ci-dessus, avec un silence invisible
-@code{s} (pour @emph{skip}) à la place d'un silence normal @code{r} :
-
-@lilypond[verbatim,quote,relative=2]
-<<
- { a4 g2 f4~ f4 } \\
- { s4 g4 f2 f4 }
->>
-@end lilypond
-
-@noindent
-Là encore, ces expressions peuvent s'imbriquer arbitrairement :
-
-@lilypond[verbatim,quote,relative=2]
-<<
- \new Staff <<
- { a4 g2 f4~ f4 } \\
- { s4 g4 f2 f4 }
- >>
- \new Staff <<
- \clef bass
- { <c g>1 ~ <c g>4 } \\
- { e,,4 d e2 ~ e4}
- >>
->>
-@end lilypond
-
+Bien que LilyPond gère la musique polyphonique sans difficulté, cela
+fait appel à des concepts que nous n'avons pas encore abordés. C'est la
+raison pour laquelle nous ne nous étendrons pas tout de suite sur ce
+sujet et préférons vous inciter à consulter les chapitres dédiés à
+l'étude de ces concepts.
@seealso
+Learning Manual: @ref{Voices contain music}.
+
Manuel de notation : @ruser{Simultaneous notes}.
@end lilypond
Remarquez les accolades embrassant la musique et celles embrassant les
-paroles, ainsi que les angles doubles encadrant toute la pièce ; ces
+paroles, ainsi que les doubles chevrons encadrant toute la pièce ; ces
derniers indiquent simplement que la musique et les paroles se
produisent en même temps.
Glossaire musical : @rglos{melisma}, @rglos{extender line}.
-La ligne suivante de la comptine précédente est @emph{The moon doth
+La deuxième ligne de la comptine précédente est @emph{The moon doth
shine as bright as day}. Ajoutons-la au code.
@lilypond[verbatim,quote]
longue, on représente souvent le mélisme par un @notation{trait de
prolongation}, qu'on entre avec @code{__}. L'exemple suivant montre
les trois premières mesures de la plainte de Didon, extraite de
-@emph{Didon et Énée} de Purcell.
+@notation{Didon et Énée} de Purcell.
@lilypond[verbatim,quote]
<<
@subsection Organizing pieces with variables
@cindex variables
-@cindex variables, definition
+@cindex variables, définition
@cindex identificateurs
@cindex macros
@cindex assignation de variables
@example
width = 4.5\cm
-name = "Wendy"
+nom = "Wendy"
aFivePaper = \paper @{ paperheight = 21.0 \cm @}
@end example
\aFivePaper
line-width = \width
@}
-@{ c4^\name @}
+@{ c4^\nom @}
@end example
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: 90a367b11c50bd1fe242656715f807d1445225d7
+ Translation of GIT committish: 7eee2a7382029cc29cc069f93a431758ae8a13b7
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
Certains objets de rendu, comme les liaisons de phrasé, les soufflets
de crescendo, les marques d'octaviation et beaucoup d'autres @emph{grobs},
ont pour particularité de ne pas se situer à un seul et unique endroit
--- ils ont un point de départ, un point d'arrivée, et éventuellement
+--- ils ont un point de départ, un point d'arrivée, et éventuellement
d'autres propriétés relatives à leur forme. Ces objets avec une forme
étendue sont appelés des bandeaux (@emph{Spanners} en anglais).
@multitable @columnfractions .33 .33 .33
@headitem Type d'objet/propriété
- @tab Convention de désignation
+ @tab Convention de nommage
@tab Exemples
@item Contextes
@tab Aaaa ou AaaaAaaaAaaa
l'utiliser. L'exemple ci-dessous change la couleur des têtes de
notes :
-@cindex couleur,exemple de propriété
+@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
nombreux exemples ci-dessous. Voici un exemple qui ramène la
couleur des deux dernières notes à leur valeur par défaut :
-@cindex couleur,exemple de propriété
+@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
sa valeur par défaut. Toujours à partir du même exemple, il est
possible de ne changer la couleur que d'une seule note :
-@cindex couleur,exemple de propriété
+@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
Il existe une autre forme de commande @code{\override},
@code{\overrideProperty}, qui est parfois utile. Nous la mentionnons
-ici par souci d'exhaustivité ; pour le détail, voir @ruser{Difficult tweaks}.
+ici par souci d'exhaustivité ; pour le détail, voir
+@ruser{Difficult tweaks}.
@c Maybe explain in a later iteration -td
@code{\tweak}. Elle sert à changer les propriétés d'objets qui
surviennent simultanément dans la musique, comme par exemple les
notes d'un accord. La commande @code{\override} modifierait toutes
-les notes de l'accord, tandis que @code{\tweak} ne modifie que
-l'élément suivant dans la chaîne de saisie.
+les notes de l'accord, tandis que @code{\tweak} permet de ne modifier
+que l'élément suivant dans la chaîne de saisie.
Voici un exemple. Supposons que nous voulions changer la taille de
la tête de note du milieu (le mi) dans un accord de do majeur. Voyons
d'abord ce que donnerait @code{\once \override} :
-@cindex font-size, exemple de propriété
+@cindex font-size, exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
Pour reprendre notre exemple, la taille de la note du milieu d'un
accord peut être modifiée de cette manière :
-@cindex font-size, exemple de propriété
+@cindex font-size, exemple d'utilisation de la propriété
@cindex @code{\tweak}, exemple
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
La commande @code{\tweak} est aussi utilisée quand on veut, dans
une série d'articulations, n'en modifier qu'une seule. Ainsi :
-@cindex couleur, exemple de propriété
+@cindex couleur, exemple d'utilisation de la propriété
@cindex @code{\tweak}, exemple
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
premier crochet de triolet court.
@cindex @code{\tweak}, exemple
-@cindex direction, exemple de propriété
-@cindex couleur, exemple de propriété
+@cindex direction, exemple d'utilisation de la propriété
+@cindex couleur, exemple d'utilisation de la propriété
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
\tweak #'direction #up
leur apparence peut alors être modifiée de la façon habituelle,
avec la commande @code{\override} :
-@cindex texte, exemple de propriété
-@cindex tuplet-number, example de fonction
-@cindex transparence, example de propriété
+@cindex texte, exemple d'utilisation de la propriété
+@cindex tuplet-number, exemple de fonction
+@cindex transparence, exemple d'utilisation de la propriété
@cindex TupletNumber, exemple de dérogation
@c NOTE Tuplet brackets collide if notes are high on staff
appelée @code{line-thickness}.
Comme il a été indiqué, on ne trouve que peu, voire pas du tout
-d'explications dans la RPI, mais nous en savons assez pour essayer
+d'explication dans la RPI, mais nous en savons assez pour essayer
de changer l'épaisseur de la liaison. Comme nous l'avons vu, le
nom de l'objet est @code{Slur}, le nom de la propriété à changer
est @code{thickness} et la nouvelle valeur sera un nombre supérieur
-à 1.2 si l'on veut augmenter l'épaisseur du trait.
+à @code{1.2} si l'on veut augmenter l'épaisseur du trait.
Pour construire la commande @code{\override}, il suffit donc de
remplacer les valeurs que nous avons trouvées en guise de noms, en
proche d'elle.} Essayons :
@cindex Slur, exemple de dérogation
-@cindex thickness, exemple de propriété
+@cindex thickness, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,relative=2]
{
@code{\override}. Comme nous aurons l'occasion de le voir
par la suite, le problème est parfois plus complexe. Dans
l'immédiat, nous en savons assez pour construire nos propres
-commandes -- mais il faut encore s'exercer. Les exemples
+commandes --- mais il faut encore s'exercer. Les exemples
suivants sont là dans cette intention.
@subheading Finding the context
recourt alors à la commande @code{\once}. Placée juste avant la commande
@code{\override}, elle lui indique de ne changer que la liaison commençant
avec la note @strong{juste après}. Si la note juste après n'ouvre pas une
-liaison, la commande sera sans aucun effet -- elle ne reste pas en mémoire
+liaison, la commande sera sans aucun effet --- elle ne reste pas en mémoire
jusqu'à la prochaine liaison, elle est purement et simplement ignorée.
Il faut donc que la commande introduite par @code{\once} soit insérée
comme suit :
@cindex Slur, exemple de dérogation
-@cindex thickness, exemple de propriété
+@cindex thickness, exemple d'utilisation de la propriété
@cindex Liaison, exemple de dérogation
-@cindex Épaisseur, exemple de propriété
+@cindex Épaisseur, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,relative=2]
{
@cindex Slur, exemple de dérogation
-@cindex thickness, exemple de propriété
+@cindex thickness, exemple d'utilisation de la propriété
@cindex Liaison, exemple de dérogation
-@cindex Épaisseur, exemple de propriété
+@cindex Épaisseur, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,relative=2]
{
@code{thickness} à sa valeur par défaut .
@cindex Slur, exemple de dérogation
-@cindex thickness, exemple de propriété
+@cindex thickness, exemple d'utilisation de la propriété
@cindex Liaison, exemple de dérogation
-@cindex Épaisseur, exemple de propriété
+@cindex Épaisseur, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,relative=2]
{
Supposons maintenant que nous voulions imprimer des paroles en italique.
Quelle formulation de la commande @code{\override} allons-nous utiliser ?
Nous consultons en premier lieu, comme précédemment, la page de la RPI
-qui contient la liste @q{Tous les objets de rendu}, et recherchons
+qui contient la liste @qq{Tous les objets de rendu}, et recherchons
un objet qui contrôle les paroles. Nous trouvons @code{LyricText}, qui
semble approprié. Nous cliquons dessus et nous voyons apparaître les
différentes propriétés des paroles, parmi lesquelles @code{font-series}
@code{LyricText}, la propriété est @code{font-shape} et la valeur est
@code{italic}. Comme auparavant, nous laissons de côté le contexte.
-Signalons rapidement -- même si cette remarque est importante -- que,
+Signalons rapidement --- même si cette remarque est importante --- que,
puisque les valeurs de @code{font-shape} se présentent sous forme de
symboles, elles doivent être précédées d'une simple apostrophe,
@code{'}. C'est pour cette raison qu'il fallait une apostrophe devant
et elle doit être placée juste devant et tout près des paroles à modifier,
comme ceci :
-@cindex font-shape, exemple de propriété
+@cindex font-shape, exemple d'utilisation de la propriété
@cindex italic, exemple
@cindex LyricText, exemple de dérogation
@cindex @code{\addlyrics}, exemple
autre caractère compte comme un élément de la syllabe. C'est pourquoi
il faut une espace ou un saut de ligne avant le @code{@}} final, pour
éviter qu'il ne soit assimilé à la dernière syllabe. De même, il faut insérer
-des espaces avant et après le point, @q{.}, qui sépare le nom de
+des espaces avant et après le point, @qq{.}, qui sépare le nom de
contexte du nom de l'objet, faute de quoi les deux noms seront joints et
l'interpréteur ne pourra pas les reconnaître. La formulation correcte est
donc :
@cindex propriété, types de
Nous avons vu jusqu'à maintenant deux types de propriétés :
-@code{nombre} et @code{symbol}. Pour pouvoir fonctionner, la valeur
+@code{nombre} et @code{symbole}. Pour pouvoir fonctionner, la valeur
associée à une propriété doit correspondre au type attendu et suivre les
règles liées à ce type. Le type de propriété est toujours donné entre
parenthèses après le nom de propriété dans la RPI. Voici une liste des
@tab Exemples
@item Booléenne (anglais @emph{Boolean})
@tab Vrai (@emph{true} en anglais) ou Faux (@emph{false} en anglais),
-sous la forme #t ou #f
+ sous la forme #t ou #f
@tab @code{#t}, @code{#f}
@item Dimension (en lignes de portée)
@tab Un nombre positif décimal (en unités de lignes de portée)
@tab @code{2.5}, @code{0.34}
@item Direction
@tab Une direction valide ou son équivalent numérique (valeur décimale
-comprise entre -1 et 1 seulement)
+ comprise entre -1 et 1 seulement)
@tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @code{-1}
-@item Durée (@emph{Moment} en anglais)
- @tab Une durée de note construite avec la fonction make-moment
- @tab @code{(ly:make-moment 1 4)}, @code{(ly:make-moment 3 8)}
@item Entier (@emph{Integer} en anglais)
@tab Un nombre entier positif
@tab @code{3}, @code{1}
-@item Inconnu (@emph{Unknown} en anglais)
- @tab Un processus, ou @code{#f} pour empêcher toute action
- @tab @code{bend::print}, @code{ly:text-interface::print}, @code{#f}
@item Liste
@tab Plusieurs valeurs séparées par une espace, encadrées par des
parenthèses et prédédées par une apostrophe
@item Markup (ou étiquette)
@tab Toute commande @code{\markup} valide
@tab @code{\markup @{ \italic "cresc." @}}
+@item Durée (@emph{Moment} en anglais)
+ @tab Une durée de note construite avec la fonction make-moment
+ @tab @code{(ly:make-moment 1 4)}, @code{(ly:make-moment 3 8)}
@item Nombre
@tab Une valeur décimale positive ou négative
@tab @code{3.5}, @code{-2.45}
@tab L'un des symboles autorisés pour cette propriété, précédé par une
apostrophe
@tab @code{'italic}, @code{'inside}
+@item Inconnu (@emph{Unknown} en anglais)
+ @tab Un processus, ou @code{#f} pour empêcher toute action
+ @tab @code{bend::print}, @code{ly:text-interface::print}, @code{#f}
@item Vecteur
@tab Une liste de trois éléments encadrés par des parenthèses et
précédés par apostrophe-hash, @code{'#}
@tab @code{'#(#t #t #f)}
@end multitable
+
@seealso
Manuel d'initiation : @ref{Scheme tutorial}.
partition ?
Avant de nous y attaquer, souvenons-nous que les propriétés d'objets
-sont parfois groupées dans ce qu'on appelle des @emph{interfaces} --
+sont parfois groupées dans ce qu'on appelle des @emph{interfaces} ---
voir @ref{Properties found in interfaces}. Cela permet de rapprocher
toutes les propriétés susceptibles d'être utilisées ensemble pour
-modifier un objet graphique -- si l'une d'elles est choisie pour un
+modifier un objet graphique --- si l'une d'elles est choisie pour un
objet, elle s'appliquera à tous les autres. Certains objets tirent
alors leurs propriétés de telle ou telle interface, d'autres objets de
telle ou telle autre interface. La liste des interfaces qui contiennent
@code{break-visibility} et @code{stencil}. L'objet @code{BarLine}
est également lié à plusieurs interfaces, dont la @code{grob-interface}
où figurent les propriétés @code{transparent} et @code{color}. Toutes
-peuvent modifier l'aspect visuel des barres de mesure -- et de beaucoup
+peuvent modifier l'aspect visuel des barres de mesure --- et de beaucoup
d'autres objets, bien sûr. Examinons chacune d'elles tour à tour.
@subheading stencil
encore, le contexte concerné (@code{Voice} en l'occurrence) :
@cindex BarLine, exemple de dérogation
-@cindex stencil, exemple de propriété
+@cindex stencil, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
Essayons de corriger en mentionnant le bon contexte :
@cindex BarLine, exemple de dérogation
-@cindex stencil, exemple de propriété
+@cindex stencil, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
contenant un vecteur, et le premier @code{#} est là, comme toujours avec
la commande @code{\override}, pour introduire la valeur elle-même.
-@cindex BarLine, example of overriding
-@cindex break-visibility property, example
+@cindex BarLine, exemple de dérogation
+@cindex break-visibility exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
essayons de rendre transparente la métrique (@emph{time signature} en
anglais) plutôt que les barres de mesure. Pour cela, il nous faut
trouver le nom du @emph{grob} chargé de l'indication de mesure. De
-retour sur la page @q{Tous les objets de rendu} de la RPI, nous
+retour sur la page @qq{Tous les objets de rendu} de la RPI, nous
cherchons les propriétés de l'objet @code{TimeSignature}. Celui-ci est
géré par le graveur @code{Time_signature_engraver} qui, comme vous
pouvez le constater, appartient au contexte @code{Staff} et peut se
pour rendre la métrique transparente est :
@cindex TimeSignature, exemple de dérogation
-@cindex transparent, exemple de propriété
+@cindex transparent, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
attribuons plutôt au stencil des métriques la valeur @code{#f} :
@cindex TimeSignature, exemple de dérogation
-@cindex stencil, exemple de propriété
+@cindex stencil, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
mettre les barres de mesure en blanc, on écrit :
@cindex BarLine, exemple de dérogation
-@cindex color, exemple de propriété
+@cindex color, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
@noindent
et nous constatons que les barres de mesure sont une fois de plus
invisibles. Attention : aucune apostrophe ne précède @code{white} -- il
-ne s'agit pas d'un symbole mais d'une @emph{fonction}. Quand on
+ne s'agit pas d'un symbole mais d'une @strong{fonction}. Quand on
l'invoque, elle fournit une liste de valeurs internes requises pour
changer la couleur en blanc. Les autres couleurs aussi, dans la
@qq{liste normale}, sont des fonctions. Pour en être certain, vous
comme ceci :
@cindex BarLine, exemple de dérogation
-@cindex color, exemple de propriété
+@cindex color, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
@funindex rgb-color
Il existe une troisième fonction, écrite pour convertir les valeurs RGB
-en couleurs internes -- la fonction @code{rgb-color}. Elle comporte
+en couleurs internes --- la fonction @code{rgb-color}. Elle comporte
trois arguments, donnant respectivement l'intensité du rouge, du vert et
du bleu. Ces arguments prennent des valeurs comprises entre 0 et 1.
Ainsi, pour choisir la couleur rouge, la valeur serait
-@code{(rgb-color1 0 0)} ; pour le blanc, ce serait
+@code{(rgb-color 1 0 0)} ; pour le blanc, ce serait
@code{(rgb-color 1 1 1)} :
@cindex BarLine, exemple de dérogation
-@cindex color, exemple de propriété
+@cindex color, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
@cindex NoteHead, exemple de dérogation
@cindex Stem, exemple de dérogation
@cindex BarLine, exemple de dérogation
-@cindex color, exemple de propriété
+@cindex color, exemple d'utilisation de la propriété
@cindex x11-color, exemple d'utilisation
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
Pour commencer, reprenons l'exemple qui se trouvait dans
@ref{Nesting music expressions}, qui montrait comment créer une nouvelle
-portée temporaire, du type @rglos{ossia}.
+portée temporaire, du type @rglos{ossia}.
-@cindex alignAboveContext, exemple de propriété
+@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
Normalement, les ossia ne comportent ni clef ni indication de mesure, et
elles sont imprimées légèrement plus petit que la portée principale.
-Nous avons déjà appris à enlever la clef et la métrique -- il suffit de
+Nous avons déjà appris à enlever la clef et la métrique --- il suffit de
régler le stencil de chacun sur @code{#f}, comme ceci :
-@cindex alignAboveContext, exemple de propriété
+@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
-@cindex stencil, exemple de propriété
+@cindex stencil, exemple d'utilisation de la propriété
@cindex Clef, exemple de dérogation
@cindex TimeSignature, exemple de dérogation
@code{\set} ou @code{\override} insérées dans la musique sont dynamiques
-- elles provoquent des changements synchronisés avec un point
particulier de la musique. Si les changements sont annulés ou
-désactivés par @code{\unset} ou@code{\revert}, les réglages reprennent
+désactivés par @code{\unset} ou @code{\revert}, les réglages reprennent
les valeurs par défaut, c'est-à-dire celles qui ont été fixées dans la
clause @code{\with}, ou, en l'absence de celle-ci, les valeurs par
défaut normales.
Remplaçons donc l'exemple ci-dessus par celui-ci :
-@cindex alignAboveContext, exemple de propriété
+@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
@cindex Clef, exemple de dérogation
-@cindex TimeSignature, exemple dérogation
+@cindex TimeSignature, exemple de dérogation
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
@emph{markup}, des clefs, des métriques, des nuances et des paroles.
Pour changer leur taille, on modifie la propriété @code{font-size},
comme nous le verrons rapidement. D'autres objets, comme les liaisons
-de phrasé ou de prolongation -- en général les objets étendus -- sont
+de phrasé ou de prolongation --- en général les objets étendus --- sont
dessinés à la demande, si bien qu'aucune @code{font-size} ne leur est
associée. Ces objets tirent généralement leur dimension des objets
auxquels ils sont rattachés, de sorte qu'on ne doit pas avoir à les
Essayons sur l'exemple d'ossia :
-@cindex alignAboveContext, exemple de propriété
+@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
@cindex Clef, exemple de dérogation
@cindex TimeSignature, exemple de dérogation
-@cindex fontSize, exemple de propriété
+@cindex fontSize, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
Dans LilyPond, les écartements et longueurs sont généralement mesurés en
@qq{intervalles de lignes} (@emph{staff-spaces} en anglais),
c'est-à-dire l'écartement qui sépare deux lignes adjacentes dans la
-portée -- plus rarement, il est question de demi-intervalles de lignes.
+portée --- plus rarement, il est question de demi-intervalles de lignes.
Les propriétés d'épaisseur (@code{thickness}), quant à elles, sont
généralement mesurées en unités d'une propriété interne appelée
@qq{épaisseur de ligne} (@code{line-thickness}). Par exemple, les
Dans ces conditions, comment ajuster les longueurs à la taille des
polices de caractères ? La solution consiste à utiliser une fonction
-spéciale appelée @code{magstep} -- pseudo facteur de zoom --, créée
+spéciale appelée @code{magstep} --- pseudo facteur de zoom ---, créée
précisément dans ce but. Elle comporte un argument, le changement de
taille de police (#-2 dans l'exemple précédent), à partir duquel elle
applique un facteur de mise à l'échelle qui réduit, ou augmente, les
objets en proportion. Voici comment elle s'utilise :
-@cindex alignAboveContext, exemple de propriété
+@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
@cindex Clef, exemple de dérogation
@cindex TimeSignature, exemple de dérogation
-@cindex fontSize , exemple de propriété
+@cindex fontSize , exemple d'utilisation de la propriété
@cindex StaffSymbol, exemple de dérogation
@cindex magstep, exemple d'utilisation de la fonction
-@cindex staff-space, exemple de propriété
-@cindex stencil, exemple de propriété
+@cindex staff-space, exemple d'utilisation de la propriété
+@cindex stencil, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
Puisque la longueur des hampes et plusieurs autres propriétés de
longueur sont calculées par rapport à la valeur de la propriété
@code{staff-space}, elles sont automatiquement mises à l'échelle. Vous
-remarquerez que cela n'affecte que la dimension verticale de l'ossia --
+remarquerez que cela n'affecte que la dimension verticale de l'ossia ---
la dimension horizontale étant déterminée par les objets de la portée
principale de façon à rester synchronisée vis-à-vis d'elle, elle n'est
pas affectée par tous ces changements de taille. Bien sûr, si l'échelle
@node Automatic behavior
@subsection Automatic behavior
-@cindex within-staff objects
-@cindex outside-staff objects
-@cindex objects, within-staff
-@cindex objects, outside-staff
+@cindex objets de la portée
+@cindex objets extérieurs à la portée
+@cindex portée, objets de la
+@cindex portée, objets extérieurs à la
Dans la notation musicale, il y a des objets qui appartiennent à la
portée et d'autres qui sont placés à l'extérieur de la portée. On les
-appelle respectivement les @q{objets de la portée} (@emph{within-staff
-objects} en anglais) et les @q{objets extérieurs à la portée}
+appelle respectivement les @qq{objets de la portée} (@emph{within-staff
+objects} en anglais) et les @qq{objets extérieurs à la portée}
(@emph{outside-staff objects}en anglais).
Les objets de la portée sont ceux qui sont placés sur la portée
--- les têtes de notes et les hampes, les altérations, etc. Leur
-position est généralement déterminée par la musique elle-même -- ils
+--- les têtes de notes et les hampes, les altérations, etc. Leur
+position est généralement déterminée par la musique elle-même --- ils
sont placés verticalement sur des lignes spécifiques ou sont liés à
d'autres objets placés de cette manière. Normalement, les collisions
entre les têtes et queues de notes et les altérations dans des accords
@cindex neutral
L'exemple ci-dessous montre dans la première mesure le comportement par
-défaut des hampes -- celles des notes les plus hautes pointant vers le
+défaut des hampes --- celles des notes les plus hautes pointant vers le
bas et celles des notes les plus basses pointant vers le haut ; viennent
ensuite quatre notes avec les hampes forcées vers le bas, puis quatre
autres avec les hampes forcées vers le haut, et pour finir quatre notes
de nouveau avec le comportement par défaut.
@cindex Stem, exemple de dérogation
-@cindex direction, exemple de propriété
+@cindex direction, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
a4 g c a
correspondent respectivement aux valeurs @code{-1} et @code{+1},
que l'on peut utiliser à la place. La valeur @code{0} peut aussi être
utilisée dans certains cas. Elle est interprétée comme un @code{UP}
-pour les hampes, et comme un @q{centré} pour d'autres objets. Il
+pour les hampes, et comme un @qq{centré} pour d'autres objets. Il
existe une direction, @code{CENTER}, qui correspond à la valeur
@code{0}.
@code{UP} :
@cindex doigtés, exemple de dérogation
-@cindex direction, exemple de propriété
+@cindex direction, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,relative=2]
c-5 a-3 f-1 c'-5
@end lilypond
On peut aller encore plus loin dans le positionnement des doigtés pour
-chacune des notes d'un accord grâce à la commande @code{\set
-fingeringOrientations}. La syntaxe de cette commande est :
+chacune des notes d'un accord grâce à la commande
+@code{\set@tie{}fingeringOrientations}. La syntaxe de cette commande
+est :
@example
@code{\set fingeringOrientations = #'([up] [left/right] [down])}
n'est pas sur la liste, aucun doigté n'ira à cet emplacement. LilyPond
garde ces contraintes en mémoire et recherche le meilleur emplacement
pour le doigté des notes des accords suivants. Vous remarquerez que
-@code{left} et @code{right} s'excluent l'un l'autre -- l'indication de
+@code{left} et @code{right} s'excluent l'un l'autre --- l'indication de
doigté ne peut être placée que d'un côté ou de l'autre, pas des deux.
-@warning{Ppour contrôler à l'aide de cette commande le placement du
+@warning{Pour contrôler à l'aide de cette commande le placement du
doigté sur une note simple, il faut la saisir comme un accord composé
d'une note unique, en l'encadrant de chevrons.}
@cindex doigtés, exemple
@cindex @code{\set}, exemple d'utilisation
-@cindex fingeringOrientations, exemple de propriété
+@cindex fingeringOrientations, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
\set fingeringOrientations = #'(left)
Voici un exemple qui montre le placement par défaut de certains
d'entre eux.
-@cindex text spanner
-@cindex ottava bracket
+@cindex extension de texte
+@cindex indication d'octaviation
@funindex \startTextSpan
@funindex startTextSpan
@funindex stopTextSpan
@cindex TextSpanner, exemple de dérogation
-@cindex bound-details, exemple de propriété
+@cindex bound-details, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
% Set details for later Text Spanner
numéros de mesure, l'indication métronomique ou les marques de
répétition conformément à la valeur de leur
@code{outside-staff-priority}, il vous faudra retirer respectivement le
-@code{Bar_number_engraver}, le @code{Metronome_mark_engraver} oule
-@code{Mark_engraver} du contexte @code{Score} et les placer en haut du
+@code{Bar_number_engraver}, le @code{Metronome_mark_engraver} ou le
+@code{Mark_engraver} du contexte @code{Score} et les placer en tête du
contexte @code{Staff}. Après quoi ces marques porteront les valeurs de
@code{outside-staff-priority} par défaut suivantes :
@code{Staff} :
@cindex TextSpanner, exemple de dérogation
-@cindex bound-details, exemple de propriété
+@cindex bound-details, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
% Set details for later Text Spanner
c, c c c
@end lilypond
+@cindex liaisons et outside-staff-priority
+@cindex liaisons et articulations
+@cindex articulations et liaisons
+
+Les liaisons sont intrinsèquement des objets membres de la portée
+(@emph{within-staff objects}) bien qu'elles la surplombent lorsque les
+notes auxquelles elles se rattachent sont relativement hautes. Ceci
+peut avoir pour conséquence de remonter d'autant les objets externes
+(@emph{outside-staff objects}) tels les articulations. La propriété
+@code{avoid-slur} de l'articulation en question peut se voir déterminée
+à @code{'inside} dans le but de @qq{ramener} cette articulation à
+l'intérieur de la liaison. Cette propriété @code{avoid-slur} ne sera
+toutefois effective que dans la mesure où la
+@code{outside-staff-priority} est désactivée (valeur @code{#f}). Dans
+le même esprit, il est possible d'affecter un valeur numérique
+particulière à la propriété @code{outside-staff-priority} d'une
+liaison dans le but de regrouper la liaison avec les objets externes.
+L'exemple suivant illustre ces deux différentes méthodes.
+
+@lilypond[quote,verbatim,relative=2]
+c4( c^\markup\tiny\sharp d4.) c8
+c4(
+\once \override TextScript #'avoid-slur = #'inside
+\once \override TextScript #'outside-staff-priority = ##f
+c^\markup\tiny\sharp d4.) c8
+\once \override Slur #'outside-staff-priority = #500
+c4( c^\markup\tiny\sharp d4.) c8
+@end lilypond
+
Le fait de changer la @code{outside-staff-priority} peut aussi servir à
contrôler le positionnement vertical des objets individuels, quoique le
résultat ne soit pas toujours formidable. Imaginons que nous voulions
@qq{Text3} jusqu'à une valeur très haute :
@cindex TextScript, exemple de dérogation
-@cindex outside-staff-priority, exemple de propriété
+@cindex outside-staff-priority, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
@code{\unset}, et donc ne peut pas être utilisé avec
@code{\textLengthOn}.
-@cindex markup text, allowing collisions
+@cindex étiquette de texte et collision
Les textes des @emph{markup} éviteront également les notes qui
s'échappent au-dessus de la portée. Si ce n'est pas notre souhait, il
de notes.
@cindex TextScript, exemple de dérogation
-@cindex outside-staff-priority, exemple de propriété
+@cindex outside-staff-priority, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
% This markup is short enough to fit without collision
@noindent
Voyons si ça marche sur notre exemple précédent :
-@cindex DynamicText, example of overriding
-@cindex extra-spacing-width property, example
+@cindex DynamicText, exemple de dérogation
+@cindex extra-spacing-width, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
de portée, donc en écartant le bord gauche d'une demi-unité
et le bord droit d'une demi-unité, on obtient :
-@cindex DynamicText, example of overriding
-@cindex extra-spacing-width property, example
+@cindex DynamicText, exemple de dérogation
+@cindex extra-spacing-width, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
@node Collisions of objects
@section Collisions of objects
-
@menu
* Moving objects::
* Fixing overlapping notation::
@node Moving objects
@subsection Moving objects
+@cindex déplacement d'objets se chevauchant
+@cindex déplacement d'objets en collision
+@cindex déplacement de grobs en collision
+@cindex objets, évitement des collisions
+@cindex grobs, évitement des collisions
+
Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
Certains éléments sur la partition peuvent se chevaucher, ce qui est
regrettable mais, le plus souvent, facile à corriger. En général, quand
on déplace des objets, c'est pour des raisons de lisibilité ou
-d'esthétique -- ils rendraient mieux avec un peu plus ou un peu moins
+d'esthétique --- ils rendraient mieux avec un peu plus ou un peu moins
d'espace autour d'eux.
-Il y a trois façons de résoudre les problèmes de chevauchement. Il est
+Il y a trois façons de résoudre les problèmes de chevauchement. Il est
préférable de les aborder dans l'ordre suivant :
@enumerate
@item
Les @strong{propriétés d'objet}, auxquelles LilyPond a recours pour
-positionner les objets, sont modifiables avec @code{\override}. Il y a deux
+positionner les objets, sont modifiables avec @code{\override}. Il y a deux
avantages à changer ces propriétés : (a) d'autres objets pourront être
déplacés automatiquement si nécessaire pour faire de la place, et (b)
la même retouche peut s'appliquer à toutes les occurrences du même
-type d'objet. Ces propriétés sont :
+type d'objet. Ces propriétés sont :
@itemize
@item
@code{direction}
-Ce point a déjà été traité en détails -- voir @ref{Within-staff objects}.
+Ce point a déjà été traité en détails --- voir @ref{Within-staff objects}.
@item
@code{padding}, @code{left-padding},
@code{right-padding}, @code{staff-padding}
-@cindex padding
-@cindex left-padding property
-@cindex padding property
-@cindex right-padding property
-@cindex staff-padding property
+@cindex décalage (padding)
+@cindex left-padding, propriété
+@cindex padding, propriété
+@cindex right-padding, propriété
+@cindex staff-padding, propriété
Au moment de positionner un objet, la valeur de sa propriété
@code{padding} détermine l'espace à laisser libre entre celui-ci et le
rapport à une note ; il est toutefois possible de le régler pour
fonctionner avec ces derniers.
-Pour trouver quelle propriété @q{padding} employer pour l'objet que vous
+Pour trouver quelle propriété @code{padding} employer pour l'objet que vous
cherchez à repositionner, il vous faut consulter les propriétés de l'objet dans
-la RPI. Prenez garde que les propriétés @q{padding} ne sont pas forcément
+la RPI. Prenez garde que les propriétés @code{padding} ne sont pas forcément
traitées dans l'objet en question ; il faut alors regarder les objets
qui semblent s'en rapprocher.
-Toutes les valeurs @q{padding} sont exprimées en espaces de portée.
+Toutes les valeurs @code{padding} sont exprimées en espaces de portée.
Pour la plupart des objets, la valeur par défaut est aux alentours de 1.0,
parfois moins (cela dépend de chaque objet). Il est possible de la modifier
lorsqu'on a besoin d'un espace vide plus grand (ou plus petit).
@item
@code{self-alignment-X}
-@cindex self-alignment-X property
+@cindex self-alignment-X, propriété
+
Cette propriété sert à aligner les objets sur la gauche, sur la droite ou
à les centrer par rapport au point de référence des objets parents.
Elle peut être utilisée avec tous les objets qui acceptent la
@item
@code{extra-spacing-width}
-@cindex extra-spacing-width property
+@cindex extra-spacing-width, propriété
+
Cette propriété est utilisée pour tous les objets qui acceptent la
@code{item-interface}. Elle reçoit deux nombres, le premier étant
ajouté au bord gauche et le second au bord droit. Des nombres
@item
@code{staff-position}
-@cindex staff-position property
+@cindex staff-position, propriété
+
@code{staff-position} est une propriété de la
@code{staff-symbol-referencer-interface}, qui s'applique aux objets
positionnés par rapport à la portée. Elle indique, en demi-espaces de
@item
@code{force-hshift}
-@cindex force-hshift property
+@cindex force-hshift, propriété
+
Des notes très proches dans un accord, ou des notes simultanées dans
différentes voix, peuvent être disposées sur deux colonnes, rarement
plus, pour éviter que les têtes de notes ne se chevauchent. On parle
-alors de colonnes de notes et un objet appelé @code{NoteColumn}
-est créé pour placer les notes sur la colonne.
+alors de colonnes (ou empilement) de notes et un objet appelé
+@code{NoteColumn} est créé pour placer les notes sur la colonne.
La propriété @code{force-hshift} appartient à @code{NoteColumn} (en
réalité à la @code{note-column-interface}). Le fait de la modifier permet
@table @code
@item extra-offset
-@cindex extra-offset property
+@cindex extra-offset, propriété
+
Cette propriété s'applique à tout objet acceptant la @code{grob-interface}.
Elle reçoit une paire de nombre qui indiquent le déplacement supplémentaire
dans le sens horizontal et vertical. Des nombres négatifs déplacent l'objet
@item positions
-@cindex positions property
+@cindex positions, propriété
+
Cette propriété est très utile pour ajuster manuellement l'inclinaison et
-la hauteur des barres de croches, des liaisons et des nolets. Elle est
+la hauteur des barres de ligature, des liaisons et des nolets. Elle est
suivie de deux nombres qui donnent la position des bords gauche et
droit des barres, liaisons, etc., par rapport à la ligne médiane de la
portée. L'unité de référence est l'intervalle de lignes de portée. Attention
@multitable @columnfractions .5 .5
@headitem Type d'objet @tab Nom d'objet
@item Articulations @tab @code{Script}
-@item Barres de croches @tab @code{Beam}
+@item Barres de ligature @tab @code{Beam}
@item Doigté @tab @code{Fingering}
@item Liaisons de phrasé @tab @code{Slur}
@item Liaisons de prolongation @tab @code{Tie}
@subheading padding property
-@cindex padding
-@cindex fixing overlapping notation
-@cindex overlapping notation
+@cindex décalage (padding)
+@cindex résolution des chevauchements de notation
+@cindex chevauchement de notation
En jouant sur la propriété @code{padding} (littéralement
-@q{rembourrage}), on augmente (ou on diminue) la distance entre
+@qq{rembourrage}), on augmente (ou on diminue) la distance entre
des symboles qui sont imprimés au-dessus ou en dessous des notes.
-@cindex Script, example of overriding
-@cindex padding property, example
+@cindex Script, exemple de dérogation
+@cindex padding, exemple d'utilisation de la propriété
@lilypond[quote,fragment,relative=1,verbatim]
c2\fermata
b2\fermata
@end lilypond
-@cindex MetronomeMark, example of overriding
-@cindex padding property, example
+@cindex MetronomeMark, exemple de dérogation
+@cindex padding, exemple d'utilisation de la propriété
@lilypond[quote,fragment,relative=1,verbatim]
% This will not work, see below:
@subheading left-padding and right-padding
-@cindex left-padding property
-@cindex right-padding property
+@cindex left-padding, propriété
+@cindex right-padding, propriété
La propriété @code{right-padding} joue sur l'espacement entre une
altération et la note sur laquelle elle porte. On ne l'utilise pas souvent,
<b? bes>
@end lilypond
-Pas une ne convient, et la seconde se solde même par une collision
-entre les deux signes.
+Aucune n'est satifaisante, et la seconde se solde même par une
+collision entre les deux signes.
Une solution pour arriver à nos fins consiste à retoucher le stencil des
altérations grâce à un markup qui contient les symboles bécarre et
bémol, dans l'ordre que nous souhaitons, comme ceci :
-@cindex Accidental, example of overriding
-@cindex text property, example
-@cindex stencil property, example
-@cindex AccidentalPlacement, example of overriding
-@cindex right-padding property, example
+@cindex Accidental, exemple de dérogation
+@cindex text, exemple d'utilisation de la propriété
+@cindex stencil, exemple d'utilisation de la propriété
+@cindex AccidentalPlacement, exemple de dérogation
+@cindex right-padding, exemple d'utilisation de la propriété
@lilypond[quote,ragged-right,verbatim]
naturalplusflat = \markup { \natural \flat }
@noindent
Cette méthode utilise, pour le stencil des altérations, une retouche
-qui ne sera par reprise par la suite. Le type de stencil est obligatoirement
+qui ne sera pas reprise par la suite. Le type de stencil est obligatoirement
une procédure, qui consiste ici à imprimer le contenu de la propriété
@code{text} de @code{Accidental}, déclaré comme étant un signe
bécarre suivi d'un signe bémol. Celui-ci est ensuite repoussé devant la
@subheading staff-padding property
-@cindex aligning objects on a baseline
-@cindex objects, aligning on a baseline
+@cindex alignement d'objets sur une ligne de base
+@cindex objets, alignement sur une ligne de base
@code{staff-padding} sert à aligner des objets tels que des nuances
sur une ligne fictive à une hauteur donnée par rapport à la portée, plutôt
le moyen d'aligner les indications de nuances, comme dans cet exemple
repris de la section précédente :
-@cindex DynamicText, example of overriding
-@cindex extra-spacing-width property, example
-@cindex DynamicLineSpanner, example of overriding
-@cindex staff-padding property, example
+@cindex DynamicText, exemple de dérogation
+@cindex extra-spacing-width, exemple d'utilisation de la propriété
+@cindex DynamicLineSpanner, exemple de dérogation
+@cindex staff-padding, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
@subheading self-alignment-X property
+
L'exemple suivant montre comment résoudre une collision entre une indication
de corde et une queue de note, en alignant le coin droit sur le point de
référence de la note parente :
-@cindex StringNumber, example of overriding
-@cindex self-alignment-X property, example
+@cindex StringNumber, exemple de dérogation
+@cindex self-alignment-X, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
\voiceOne
@subheading staff-position property
-@cindex object collision within a staff
+@cindex collision d'objets à l'intérieur d'une portée
+
Dans une voix, un silence valant une mesure entière peut chevaucher les
-notes d'une autre voix. Vu que ces silences sont centrés entre les deux
-barres de mesure, il serait très compliqué de programmer LilyPond pour repérer
-ces risques de collisions, dans la mesure où, normalement, toutes les collisions
-entre notes ou entre notes et silences se produisent sur des notes et silences
-simultanés. Voici un exemple de collision de ce type :
+notes d'une autre voix. Vu que ces silences sont centrés entre les deux
+barres de mesure, il serait très compliqué de programmer LilyPond pour
+repérer ces risques de collision, dans la mesure où, normalement, toutes
+les collisions entre notes ou entre notes et silences se produisent sur
+des notes et silences simultanés. Voici un exemple de collision de ce type :
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
<< {c c c c} \\ {R1} >>
@end lilypond
Ici, la meilleure solution consiste à déplacer le symbole de pause vers
-le bas -- puisque cette pause appartient à la voix deux. Par défaut, dans la
-@code{\voiceTwo} (c'est-à-dire dans la seconde voix d'une construction
-@code{<<@{...@} \\ @{...@}>>}), la propriété @code{staff-position} est
-réglée sur -4 pour les MultiMeasureRest ; nous avons donc besoin de la
-déplacer, disons, de quatre demi-intervalles vers le bas, ce qui donne
-@code{-8}.
+le bas --- puisque cette pause appartient à la voix deux. Par défaut,
+dans la @code{\voiceTwo} (c'est-à-dire dans la seconde voix d'une
+construction @code{<<@{...@} \\ @{...@}>>}), la propriété
+@code{staff-position} est réglée sur -4 pour les MultiMeasureRest ; nous
+avons donc besoin de la déplacer, disons, de quatre demi-intervalles
+vers le bas, ce qui donne @code{-8}.
-@cindex MultiMeasureRest, example of overriding
-@cindex staff-position property, example
+@cindex MultiMeasureRest, exemple de dérogation
+@cindex staff-position, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
<<
@subheading extra-offset property
-@cindex positioning objects
-@cindex positioning grobs
-@cindex objects, positioning
-@cindex grobs, positioning
+@cindex positionnement des objets
+@cindex positionnement des grobs
+@cindex objets, positionnement
+@cindex grobs, positionnement
-La propriété @code{extra-offset}
La propriété @code{extra-offset} offre la possibilité de contrôler
entièrement le placement d'un objet, aussi bien horizontalement que
verticalement.
Dans l'exemple suivant, la seconde indication de doigté est déplacée
-légèrement vers la gauche et de 1.8 intervalle de lignes vers le bas :
+légèrement vers la gauche et de 1,8 intervalle de lignes vers le bas :
-@cindex Fingering, example of overriding
-@cindex extra-offset property, example
+@cindex Fingering, exemple de dérogation
+@cindex extra-offset, exemple d'utilisation de la propriété
@lilypond[quote,fragment,relative=1,verbatim]
\stemUp
@subheading positions property
-@cindex controlling tuplets, slurs, phrasing slurs, and beams manually
-@cindex manually controlling tuplets, slurs, phrasing slurs, and beams
-@cindex tuplet beams, controlling manually
-@cindex slurs, controlling manually
-@cindex phrasing slurs, controlling manually
-@cindex beams, controlling manually
+@cindex contrôle des nolets, liaisons, phrasés et ligatures
+@cindex gestion manuelle des nolets, liaisons, phrasés et ligatures
+@cindex ligatures de nolet, gestion manuelle
+@cindex liaisons, gestion manuelle
+@cindex phrasés, gestion manuelle
+@cindex ligatures, gestion manuelle
La propriété @code{positions} permet de contrôler manuellement la
position et l'inclinaison des nolets, coulés, liaisons de phrasé et barres
-de croches. Voici un exemple avec une horrible liaison de phrasé --
+de ligature. Voici un exemple avec une horrible liaison de phrasé ---
horrible pour avoir tenté de contourner la liaison de l'acciaccature.
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
@code{positions}. Cela corrige en même temps la forme plutôt
disgracieuse de la liaison.
-@cindex PhrasingSlur, example of overriding
-@cindex positions property, example
+@cindex PhrasingSlur, exemple de dérogation
+@cindex positions, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
r4
Voici un autre exemple, tiré du début de la partie de main gauche
du Prélude de Chopin, Op. 28, No 2. Comme nous pouvons le
-constater, les barres de croches chevauchent les notes les plus hautes :
+constater, les barres de ligature chevauchent les notes les plus hautes :
@lilypond[quote,verbatim,fragment,ragged-right]
{
extrémités des barres de croches, non plus à 2 intervalles au-dessus
de la ligne médiane mais, disons, à 3 :
-@cindex Beam, example of overriding
-@cindex positions property, example
+@cindex Beam, exemple de dérogation
+@cindex positions, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,fragment,ragged-right]
{
@noindent
Les deux plus basses notes du premier accord (c'est-à-dire celles de la
-troisième voix) ne devraient pas être décalées de la colonne des deux
+troisième voix) ne devraient pas être décalées de l'empilement des deux
plus hautes notes. Pour y remédier, nous réglons le @code{force-hshift}
--- qui est une propriété de @code{NoteColumn} -- de ces notes sur zéro.
+--- qui est une propriété de @code{NoteColumn} --- de ces notes sur zéro.
Ensuite, la note la plus basse du second accord serait mieux à droite des
notes plus hautes. Pour cela, nous réglons le @code{force-hshift} de cette
-note sur 0.5 -- c'est-à-dire la moitié de la largeur d'une tête de note vers la
-droite de la colonne des notes plus hautes.
+note sur 0,5 --- c'est-à-dire la moitié de la largeur d'une tête de note
+vers la droite de la colonne des notes plus hautes.
Et voici le résultat final :
-@cindex NoteColumn, example of overriding
-@cindex force-hshift property, example
+@cindex NoteColumn, exemple de dérogation
+@cindex force-hshift, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
La première mesure est maintenant correcte. La seconde contient un arpège
et doit se terminer par une double barre. Comment faire, puisque cela n'a pas
été traité dans le Manuel d'initiation ? C'est alors qu'il faut nous
-reporter au Manuel de notation. Quand on cherche @q{arpège} et @q{barre
+reporter au Manuel de notation. Quand on cherche @qq{arpège} et @qq{barre
de mesure} dans l'index, on voit aisément qu'il faut ajouter
@code{\arpeggio} à un accord pour produire un arpège et qu'une double
barre est le résultat de la commande @code{\bar "||"}. Rien de plus
Venons-en à la troisième mesure et au début de la section Moderato. Dans
le Tutoriel, il est indiqué comment insérer du texte en gras à l'aide de la
commande @code{\markup} ; pas de problème, du coup, pour ajouter
-@q{Moderato} en gras. Mais comment faire pour fusionner les notes de
+@qq{Moderato} en gras. Mais comment faire pour fusionner les notes de
différentes voix ? C'est là que le Manuel de notation peut nous venir en
-aide. Une recherche sur @q{fusionnement de notes} dans l'index nous renvoie,
-dans @ruser{Collision resolution}, aux commandes pour fusionner les notes,
-différentes en fonction du type de note et selon que celles-ci sont
-pointées ou non. Dans notre exemple, pour la durée de la polyphonie de
-la troisième mesure, nous avons besoin de fusionner deux types de notes
-; grâce aux informations trouvées dans le Manuel de notation, nous
-ajoutons
+aide. Une recherche sur @qq{fusionnement de notes} dans l'index nous
+renvoie au chapitre @ruser{Collision resolution}, et plus précisément
+aux commandes permettant de fusionner des notes en fonction de leur
+type et selon que elles sont pointées ou non. Dans notre exemple, pour
+la durée de la polyphonie de la troisième mesure, nous avons besoin de
+fusionner deux types de notes ; grâce aux informations trouvées dans le
+Manuel de notation, nous ajoutons
@example
\mergeDifferentlyHeadedOn
queue orientée vers le haut et il y a une troisième note, do. Nous
savons changer l'orientation de la queue avec @code{\stemDown} et
le Manuel de notation nous indique également comment déplacer le do
--- en produisant un décalage grâce à l'une des commandes @code{\shift}.
+--- en produisant un décalage grâce à l'une des commandes @code{\shift}.
Mais laquelle ? Le do appartient à la deuxième voix et n'est pas décalé ;
les deux ré appartiennent respectivement à la première et à la troisième
voix, et l'un n'est pas décalé tandis que l'autre l'est. Il nous faut donc
éviter une interférence avec les deux ré. Voici ce que donnent ces
modifications :
-@cindex Tie, example of overriding
-@cindex staff-position property, example
+@cindex Tie, exemple de dérogation
+@cindex staff-position, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,ragged-right]
rhMusic = \relative c'' {
déplacer le do avec la propriété @code{force-hshift}. Et voici le
résultat final :
-@cindex NoteColumn, example of overriding
-@cindex force-hshift property, example
-@cindex Stem, example of overriding
-@cindex transparent property, example
+@cindex NoteColumn, exemple de dérogation
+@cindex force-hshift, exemple d'utilisation de la propriété
+@cindex Stem, exemple de dérogation
+@cindex transparent, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,ragged-right]
rhMusic = \relative c'' {
@node Other uses for tweaks
@subsection Other uses for tweaks
-@cindex transparent property, use of
-@cindex objects, making invisible
-@cindex removing objects
-@cindex objects, removing
-@cindex hiding objects
-@cindex objects, hiding
-@cindex invisible objects
-@cindex objects, invisible
-@cindex tying notes across voices
+@cindex transparent, utilisation de la propriété
+@cindex création d'objet invisible
+@cindex suppression d'objets
+@cindex objets, suppression d'
+@cindex masquage d'objets
+@cindex objets, masquage d'
+@cindex invisibles, objets
+@cindex objets, invisibles
+@cindex liaison de tenue avec changement de voix
@subheading Tying notes across voices
et à rendre transparente la première queue de note de cette voix ;
on a alors l'impression que la liaison couvre les deux voix.
-@cindex Stem, example of overriding
-@cindex transparent propery, example
+@cindex Stem, exemple de dérogation
+@cindex transparent, exemple d'utilisation de la propriété
@lilypond[quote,fragment,relative=2,verbatim]
<<
@subheading Simulating a fermata in MIDI
-@cindex stencil property, use of
-@cindex fermata, implementing in MIDI
+@cindex stencil, utilisation de la propriété
+@cindex point d'orgue, rendu en MIDI
En ce qui concerne les objets extérieurs à la portée, quand on veut les
faire disparaître de la partition imprimée , il est généralement préférable
@code{stencil} la valeur @code{#f} est donc la bonne solution. Nous
montrons ci-dessous le résultat des deux méthodes :
-@cindex MetronomeMark, example of overriding
-@cindex transparent property, example
+@cindex MetronomeMark, exemple de dérogation
+@cindex transparent, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,ragged-right]
\score {
}
@end lilypond
-@cindex MetronomeMark, example of overriding
-@cindex stencil property, example
+@cindex MetronomeMark, exemple de dérogation
+@cindex stencil, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,ragged-right]
\score {
@end lilypond
@noindent
-Les deux méthodes permettent l'enlever l'indication métronomique qui allonge
-le point d'orgue de la partition, et toutes deux modifient le rythme MIDI comme
-souhaité, mais, dans la première, l'indication métronomique transparente
-repousse vers le haut l'indication de tempo, contrairement à la seconde (avec
-le stencil désactivé) qui la laisse à sa place.
+Les deux méthodes permettent d'enlever l'indication métronomique qui
+allonge le point d'orgue de la partition, et toutes deux modifient le
+rythme MIDI comme souhaité, mais, dans la première, l'indication
+métronomique transparente repousse vers le haut l'indication de tempo,
+contrairement à la seconde (avec le stencil désactivé) qui la laisse à
+sa place.
@node Using variables for tweaks
@subsection Using variables for tweaks
-@cindex variables, using for tweaks
-@cindex using variables for tweaks
-@cindex tweaks, using variables for
+@cindex variables, utilisation dans les retouches
+@cindex utilisation de variables dans les retouches
+@cindex retouches et utilisation de variables
Les commandes de retouche sont souvent longues et pénibles à
taper, et ne tolèrent pas la moindre erreur. Lorsqu'on a besoin de
faire plusieurs fois les mêmes retouches, il est préférable de
-définir des variables qui les contiennent. Imaginons que nous
-voulions accentuer certains mots dans des paroles en les mettant
-en italiques. Au lieu des commandes @code{\italic} et
-@code{\bold}, qui ne fonctionnent dans les paroles que si elles
-sont enchâssées dans un @code{\markup}, ce qui les rend
-pénibles à saisir, pouvons-nous employer les commandes
-@code{\override} et @code{\revert}?
+définir des variables qui les contiennent.
+
+Imaginons que nous voulions accentuer certains mots dans des paroles en
+les mettant en italiques. Au lieu des commandes @code{\italic} et
+@code{\bold}, qui ne fonctionnent dans les paroles que si elles sont
+enchâssées dans un @code{\markup}, ce qui les rend pénibles à saisir,
+pouvons-nous employer les commandes @code{\override} et @code{\revert} ?
@example
@code{\override Lyrics . LyricText #'font-shape = #'italic}
Là encore, ce serait extrêmement pénible à saisir, surtout s'il y avait
beaucoup de mots à retoucher de cette façon. Plutôt que cette
solution, nous déclarons ces commandes comme étant deux variables
-et les utilisons comme suit -- quoique on choisirait sans doute pour les
-variables des noms plus courts pour simplifier la frappe :
+et les utilisons comme suit --- quoique on choisirait sans doute pour
+les variables des noms plus courts pour simplifier la frappe :
-@cindex LyricText, example of overriding
-@cindex font-shape property, example
-@cindex font-series property, example
+@cindex LyricText, exemple de dérogation
+@cindex font-shape, exemple d'utilisation de la propriété
+@cindex font-series, exemple d'utilisation de la propriété
@lilypond[quote,verbatim]
emphasize = {
@subsection Other sources of information
La Référence du programme contient beaucoup d'informations sur
-LilyPond. Cependant vous pouvez en découvrir
-encore plus en consultant les fichiers internes de LilyPond. Pour cela,
-il vous faut d'abord connaître le répertoire ad hoc sur votre système.
-L'emplacement du répertoire dépend (a) du fait que, pour vous procurer
-LilyPond, vous avez téléchargé un paquet précompilé sur lilypond.org, ou
-vous l'avez installé grâce à votre gestionnaire de paquetages (c'est-à-dire
-distribué avec Linux ou installé avec fink ou cygwin), ou encore vous l'avez
-compilé directement à partir des sources ; et (b) du système d'exploitation
-sous lequel il tourne.
+LilyPond. Cependant vous pouvez en découvrir encore plus en consultant
+les fichiers internes de LilyPond. Pour cela, il vous faut d'abord
+connaître le répertoire @emph{ad hoc} sur votre système. L'emplacement
+du répertoire dépend (a) du fait que, pour vous procurer LilyPond, vous
+avez téléchargé un paquet précompilé sur lilypond.org, ou vous l'avez
+installé grâce à votre gestionnaire de paquetages (c'est-à-dire
+distribué avec Linux ou installé avec fink ou cygwin), ou encore vous
+l'avez compilé directement à partir des sources ; et (b) du système
+d'exploitation sous lequel il tourne.
@strong{Téléchargé depuis lilypond.org}
Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
taper @code{cd} suivi du chemin complet ci-dessus ; soit
Control-cliquer (ou clic droit) sur l'application LilyPond
-et sélectionner @q{Afficher le contenu du paquet}.
+et sélectionner @qq{Afficher le contenu du paquet}.
@item Windows
les sources}
@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, où
-@var{PREFIX} est déterminé par votre gestionnaire de paquetages ou par le script
-@code{configure}, et @var{X.Y.Z} est le numéro de version de LilyPond.
+@var{PREFIX} est déterminé par votre gestionnaire de paquetages ou par
+le script @code{configure}, et @var{X.Y.Z} est le numéro de version de
+LilyPond.
@smallspace
-Dans ce répertoire, deux sous-répertoires sont particulièrement intéressants :
+Dans ce répertoire, deux sous-répertoires sont particulièrement
+intéressants :
@itemize
-@item @file{ly/} - contient les fichiers en format LilyPond
-@item @file{scm/} - contient les fichiers en format Scheme
+@item @file{ly/} --- contient les fichiers en format LilyPond
+@item @file{scm/} --- contient les fichiers en format Scheme
@end itemize
Commençons par examiner quelques fichiers contenus dans @file{ly/}.
-Nous ouvrons @file{ly/property-init.ly} dans un éditeur de texte -- celui
-que vous avez l'habitude d'utiliser pour les fichiers @code{.ly} fera très
-bien l'affaire. Ce fichier contient les définitions de toutes les commandes
-standard prédéfinies de LilyPond, comme @code{\stemUp} et
-@code{\slurDotted}. Vous pouvez constater que ce n'est rien d'autre
+Nous ouvrons @file{ly/property-init.ly} dans un éditeur de texte ---
+celui que vous avez l'habitude d'utiliser pour les fichiers @code{.ly}
+fera très bien l'affaire. Ce fichier contient les définitions de toutes
+les commandes standard prédéfinies de LilyPond, comme @code{\stemUp} et
+@code{\slurDotted}. Vous pouvez constater que ce n'est rien d'autre
que des définitions de variables composées d'un ou plusieurs groupes
-de commandes @code{\override}. Par exemple, @code{\tieDotted}
+de commandes @code{\override}. Par exemple, @code{\tieDotted}
est défini comme :
@example
@}
@end example
-Si vous n'aimez pas les valeurs par défaut, les commandes prédéfinies
-peuvent être facilement redéfinies, comme n'importe quelle autre variable,
-en tête de votre fichier d'entrée.
+Si vous n'aimez pas les valeurs par défaut, les commandes prédéfinies
+peuvent être facilement redéfinies, comme n'importe quelle autre
+variable, en tête de votre fichier d'entrée.
-Voici les fichiers les plus utiles dans le répertoire @file{ly/}:
+Voici les fichiers les plus utiles dans le répertoire @file{ly/} :
@multitable @columnfractions .4 .6
@headitem Nom de fichier
@tab Définitions des commandes prédéfinies pour les bandeaux
@end multitable
-Les autres réglages (comme les définitions de commandes markup) sont
-conservés comme fichiers @code{.scm} (Scheme). Le langage de
+Les autres réglages (comme les définitions de commandes @emph{markup})
+sont conservés comme fichiers @code{.scm} (Scheme). Le langage de
programmation Scheme offre une interface programmable dans le
-processus interne de LilyPond. De plus amples explications sur ces
+processus interne de LilyPond. De plus amples explications sur ces
fichiers dépasseraient le cadre de ce manuel, dans la mesure où elles
-requièrent la connaissance du langage Scheme. Les utilisateurs qui
+requièrent la connaissance du langage Scheme. Les utilisateurs qui
souhaiteraient comprendre le fonctionnement de ces fichiers de
configuration doivent être avertis que des connaissances techniques
-substantielles et beaucoup de temps sont nécessaires (voir
+substantielles et beaucoup de temps sont nécessaires (voir le
@ref{Scheme tutorial}).
Si c'est votre cas, les fichiers Scheme les plus utiles à connaître sont :
@tab Réglages par défaut pour les sorties MIDI
@item @file{scm/output-lib.scm}
@tab Réglages affectant l'apparence des frets, couleurs, altérations,
- barres de mesure, etc
+ barres de mesure, etc.
@item @file{scm/parser-clef.scm}
@tab Définition des clefs prises en charge
@item @file{scm/script.scm}
@subsection Avoiding tweaks with slower processing
LilyPond peut effectuer des vérifications supplémentaires lors du
-traitement des fichiers ; cependant, le rendu nécessitera alors plus de
-temps. En contrepartie, il y aura moins d'ajustements manuels à réaliser.
-Si une indication textuelle ou des paroles débordent dans la marge, ces
-vérifications auront pour effet de serrer la ligne suffisamment pour faire
-tenir le texte entre les marges.
-
-Pour pouvoir fonctionner en toutes circonstances, ces vérifications doivent
-être activées ; il faut pour cela placer les retouches dans un bloc Score
-@code{\with}, plutôt qu'à l'intérieur du fragment musical, comme ceci :
+traitement des fichiers ; cependant, le rendu nécessitera alors plus de
+temps. En contrepartie, il y aura moins d'ajustements manuels à
+réaliser. Si une indication textuelle ou des paroles débordent dans la
+marge, ces vérifications auront pour effet de serrer la ligne
+suffisamment pour faire tenir le texte entre les marges.
+
+Pour pouvoir fonctionner en toutes circonstances, ces vérifications
+doivent être activées ; il faut pour cela placer les retouches dans un
+bloc @code{Score \with}, plutôt qu'à l'intérieur du fragment musical,
+comme ceci :
@example
\new Score \with @{
@code{\override} et @code{\tweak}. Et pourtant l'utilisation de
Scheme ouvre des possibilités encore plus grandes.
Le code écrit dans le langage de programmation Scheme peut être
-intégré directement dans le processus interne de LilyPond. Bien sûr,
+intégré directement dans le processus interne de LilyPond. Bien sûr,
il faut pour cela connaître un minimum de programmation en langage
-Scheme. Pour des explications complètes là-dessus, consultez le
+Scheme. Pour des explications complètes là-dessus, consultez le
@ref{Scheme tutorial}.
-En guise d'illustration - et ce n'est qu'une possibilité parmi tant
-d'autres -- nous allons attribuer à une propriété non pas une valeur
+En guise d'illustration --- et ce n'est qu'une possibilité parmi tant
+d'autres --- nous allons attribuer à une propriété non pas une valeur
préétablie mais une procédure Scheme qui sera lancée à chaque
-utilisation de la propriété par LilyPond. De cette façon, nous obtenons
+utilisation de la propriété par LilyPond. De cette façon, nous obtenons
un réglage dynamique de la propriété par le simple fait d'invoquer la
-procédure. Dans cet exemple, nous colorons les têtes de notes en fonction
-de leur position sur la portée.
+procédure. Dans cet exemple, nous colorons les têtes de notes en
+fonction de leur position sur la portée.
-@cindex x11-color function, example of using
-@cindex NoteHead, example of overriding
-@cindex color property, setting to Scheme procedure
+@cindex x11-color, exemple d'utilisaation de la fonction
+@cindex NoteHead, exemple de dérogation
+@cindex color, détermination de la propriété par une procédure Scheme
@lilypond[quote,verbatim,ragged-right]
#(define (color-notehead grob)
}
@end lilypond
-Vous trouverez dans @ref{Tweaking with Scheme} d'autres exemples d'utilisation de ces interfaces programmables.
+Vous trouverez dans @ref{Tweaking with Scheme} d'autres exemples
+d'utilisation de ces interfaces programmables.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-
@ignore
- Translation of GIT committish: 148e80b8992a7fb9d59ec439c00b79decbbe3bad
+ Translation of GIT committish: 7eee2a7382029cc29cc069f93a431758ae8a13b7
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c \version "2.12.0"
-@c Translators: Ludovic Sardain
+@c Translators: Ludovic Sardain, Jean-Charles Malahieude
@c Translation checkers: Jean-Yves Baudais, Valentin Villenave, John Mandereau, Jean-Charles Malahieude
@node Working on LilyPond projects
* Suggestions for writing LilyPond input files::
* When things don't work::
* Scores and parts::
+* Make and Makefiles::
@end menu
@node Suggestions for writing LilyPond input files
@itemize
@item @strong{Ajoutez le numéro de version dans chaque fichier}.
-Notez que chaque fichier modèle contient une ligne @code{\version
-"2.11.32"}. Nous vous conseillons fortement d'inclure cette ligne,
+Notez que chaque fichier modèle contient une ligne @w{@code{\version
+"@version{}"}}. Nous vous conseillons fortement d'inclure cette ligne,
même pour de petits fichiers. Par expérience, il est très difficile
de se rappeler quelle version de LilyPond on utilisait quelques
années auparavant. L'utilitaire @command{convert-ly} demande que vous
spécifiiez la version de LilyPond vous utilisiez alors.
-@item @strong{Ajoutez des contrôles}: @ruser{Octave checks}, et
+@item @strong{Ajoutez des contrôles} : @ruser{Octave checks} et
@ruser{Bar and bar number checks}. Si vous avez ajouté des contrôles
de loin en loin, et que vous faites une erreur, vous pourrez la
retrouver plus rapidement. @qq{De loin en loin}, qu'est-ce à dire ?
dans un
@example
-\transpose c tonalite-naturelle @{...@}
+\transpose c tonalité-naturelle @{...@}
@end example
-(où @code{tonatilte-naturelle} correspond à celle de l'instrument en
+(où @code{tonalité-naturelle} correspond à celle de l'instrument en
question) de telle sorte que la musique comprise dans cette variable se
retrouve en ut. Vous pourrez toujours transposer à l'inverse si besoin
lorsque vous ferez appel à cette variable. Des erreurs de transposition
De la même manière, prénez toujours le do comme note de départ ou
d'arrivée. Ceci aura pour simple conséquence que les autres tonalités
-que vous utiliserez seront celles propres à chacun des instruments --
+que vous utiliserez seront celles propres à chacun des instruments ---
sib pour une trompette en si bémol, ou lab pour une clarinette en la bémol.
@end itemize
du @code{violon}.
@example
-fthenp = _\markup@{
+fpuisp = _\markup@{
\dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
violin = \relative c'' @{
-g4\fthenp c'8. e16
+g4\fpuisp c'8. e16
@}
@end example
@ref{Advanced tweaks with Scheme}.
@lilypond[quote,verbatim,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line(#:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
-#})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
\relative c'' {
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \tempoMark "Poco piu mosso"
+ \inst "Clarinet"
cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
Il y a quelques problèmes de chevauchement ; nous allons arranger
cela en utilisant les techniques de @ref{Moving objects}. On peut
aussi faire quelque chose pour les définitions de @code{mpdolce}
-et @code{tempoMark}. Elles produisent le résultat que nous désirons,
+et @code{inst}. Elles produisent le résultat que nous désirons,
mais nous pourrions aussi vouloir les utiliser dans une autre pièce.
Il suffirait de les copier et coller au début de chaque
fichier, mais c'est fastidieux. De plus, cela laisse les définitions
@code{#()} assez laids. Stockons-les dans un autre fichier :
@example
-%%% enregistrez ceci dans un fichier nommé "definitions.ly"
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+%%% enregistrez ceci dans un fichier nommé "definitions.ily"
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line(#:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#@{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup @{ \bold $markp @}
-#@})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
@end example
+Nous rappellerons ce fichier par une simple commande @code{\include} au
+début de notre fichier de musique. Lui attribuer l'extension
+@code{.ily} nous permet de distinguer aisément qu'il s'agit d'un fichier
+voué à être inclus dans un fichier maître ; il n'est pas destiné à être
+compilé isolément.
Maintenant, modifions notre musique (enregistrez ce fichier
-sous @file{"musique.ly"}).
+sous @file{musique.ly}).
@c We have to do this awkward example/lilypond-non-verbatim
@c because we can't do the \include stuff in the manual.
@example
-\include "definitions.ly"
+\include "definitions.ily"
\relative c'' @{
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
+ \inst "Clarinet"
cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
@}
@end example
@lilypond[quote,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line(#:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
-#})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
\relative c'' {
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
+ \inst "Clarinet"
cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
chiffrages de mesure en @qq{C}, nous allons donc le transformer en @qq{4/4}.
Cependant, ne changez pas le fichier @file{musique.ly}. Remplacez le
-fichier @file{definitions.ly} par ceci :
+fichier @file{definitions.ily} par ceci :
@example
-%%% definitions.ly
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+%%% definitions.ily
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line( #:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#@{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup @{ \bold $markp @}
-#@})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
\layout@{
\context @{ \Score
@end example
@lilypond[quote,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line( #:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
-#})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
\layout{
\context { \Score
\relative c'' {
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
+ \inst "Clarinet"
cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
C'est encore mieux ! Mais supposons maintenant que je veuille publier
cette pièce. Mon professeur de composition n'aime pas les chiffrages
de mesure en @qq{C}, mais moi je les aime bien. Copions l'actuel
-@file{definitions.ly} dans le fichier @file{publication-web.ly}, et
+@file{definitions.ily} dans le fichier @file{publication-web.ily}, et
modifions ce dernier. Puisque la musique est destinée à produire un
fichier PDF affiché sur écran, nous allons aussi augmenter la taille
globale de police.
@example
-%%% definitions.ly
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+%%% definitions.ily
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line( #:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#@{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup @{ \bold $markp @}
-#@})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
#(set-global-staff-size 23)
\layout@{
\context @{ \Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
+ \override MetronomeMark #'extra-offset = #'(-9 . 0)
\override MetronomeMark #'padding = #'3
@}
\context @{ \Staff
@end example
@lilypond[quote,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
#:line( #:dynamic "mp" #:text #:italic "dolce" )))
-tempoMark = #(define-music-function (parser location markp) (string?)
-#{
- \once \override Score . RehearsalMark #'self-alignment-X = #left
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $markp }
-#})
+
+inst = #(define-music-function (parser location string) (string?)
+ (make-music
+ 'TextScriptEvent
+ 'direction UP
+ 'text (markup #:bold (#:box string))))
#(set-global-staff-size 23)
\layout{
\relative c'' {
\tempo 4=50
a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
- \once \override Score.RehearsalMark #'padding = #2.0
- \tempoMark "Poco piu mosso"
+ \inst "Clarinet"
cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
}
@end lilypond
-Il ne nous reste plus qu'à remplacer @code{\include "definitions.ly"}
-par @code{\include "publication-web.ly"} dans notre fichier de musique.
+Il ne nous reste plus qu'à remplacer @code{\include "definitions.ily"}
+par @code{\include "publication-web.ily"} dans notre fichier de musique.
Il est possible, bien sûr, de rendre cela encore plus pratique. Nous
-pourrions créer un fichier @file{definitions.ly} qui ne contiendrait
-que les définitions de @code{mpdolce} et de @code{tempoMark}, un
-fichier @file{publication-web.ly} qui ne contiendrait que la section
-@code{layout} décrite ci-dessus et un fichier @file{universite.ly} qui
+pourrions créer un fichier @file{definitions.ily} qui ne contiendrait
+que les définitions de @code{mpdolce} et de @code{inst}, un
+fichier @file{publication-web.ily} qui ne contiendrait que la section
+@code{layout} décrite ci-dessus et un fichier @file{universite.ily} qui
ne contiendrait que les retouches pour produire le résultat que mon
professeur préfère. Le début du fichier @file{musique.ly} ressemblerait
alors à
@example
-\include "definitions.ly"
+\include "definitions.ily"
%%% Décommentez seulement une de ces deux lignes !
-\include "publication-web.ly"
-%\include "universite.ly"
+\include "publication-web.ily"
+%\include "universite.ily"
@end example
Cette approche peut être utile même si vous ne produisez qu'un seul
jeu de partitions. J'utilise personnellement une demi-douzaine de
fichiers de @qq{feuille de style} pour mes projets. Je commence
-chaque fichier de musique par @code{\include "../global.ly"} qui contient :
+chaque fichier de musique par @code{\include "../global.ily"} qui contient :
@example
-%%% global.ly
+%%% global.ily
\version @w{"@version{}"}
#(ly:set-option 'point-and-click #f)
\include "../init/init-defs.ly"
@node Updating old input files
@subsection Updating old input files
+@cindex convert-ly
+@cindex mise à jour d'anciens fichiers
+
La syntaxe de LilyPond change de temps en temps. Ces changements de
syntaxe du langage d'entrée accompagnent les améliorations du
logiciel. Ces changements sont parfois destinés à rendre les fichiers
Par exemple, dans les versions 2.4 et antérieures de LilyPond,
les accents et les lettres non anglaises étaient entrées en
-utilisant LaTeX --- par exemple, @samp{No\"el}. À partir de la
-version 2.6, le caratère @samp{ë} doit être entré directement
+utilisant LaTeX --- par exemple, @code{No\"el}. À partir de la
+version 2.6, le caratère @code{ë} doit être entré directement
dans le fichier LilyPond comme caractère UTF-8.
@code{convert-ly} ne peut pas changer tous les caractères
LaTeX en caractères UTF-8 ; vous devez mettre à jour vos vieux
+@node Common errors
+@subsection Common errors
+
+The error conditions described below occur often, yet the cause
+is not obvious or easily found. Once seen and understood, they
+are easily handled.
+
+
+@menu
+* Music runs off the page::
+* Apparent error in ../ly/init.ly::
+* Error message Unbound variable %::
+@end menu
+
+@node Music runs off the page
+@unnumberedsubsubsec Music runs off the page
+
+Lorsque la musique s'épanche au delà de la marge droite ou bien semble
+anormalement comprimée, la raison en est le plus souvent une note à la
+durée erronée ; cela finit par provoquer le débordement de la dernière
+note d'une mesure. Rien ne s'oppose à ce que la dernière note d'une
+mesure ne s'arrête avant la barre de mesure ; on considère simplement
+qu'elle se prolonge sur la mesure suivante. Des débordements à
+répétition finissent par générer une musique comprimée ou qui sort de la
+page, pour la simple et bonne raison que les sauts de ligne automatiques
+ne peuvent intervenir qu'à la fin d'une mesure complète, autrement dit
+lorsque toutes les notes sont terminées avant la fin de la mesure.
+
+@warning{Une durée erronée peut empêcher les sauts de ligne, ce qui
+conduit à une musique compressée, voire à un débordement de la page.}
+
+Une erreur de durée sera bien plus facilement localisable si vous
+positionnez régulièrement des contrôles de barre de mesure --- voir
+@ruser{Bar and bar number checks}.
+
+Si vous tenez absolument à enchainer de tels débordements, vous devrez
+insérer des barres de mesure invisibles là où vous souhaitez positionner
+un saut de ligne. Consultez le chapitre @ruser{Bar lines} pour plus de
+détails.
+
+@node Apparent error in ../ly/init.ly
+@unnumberedsubsubsec Apparent error in @code{../ly/init.ly}
+
+Certains messages d'erreur relatifs à une erreur de syntaxe dans le
+fichier @code{../ly/init.ly} peuvent survenir lorsque le fichier est mal
+formaté. Cela se produit notamment lors d'un défaut de parité de
+bornage ou de guillemets.
+
+L'erreur la plus courante est la simple omission d'une accolade
+fermante (@code{@}} à la fin du bloc @code{Score}. La solution est
+évidente en pareil cas : i lsuffit de vérifier que le bloc @code{Score}
+est bien clôturé. La structure des fichiers LilyPond est abordée plus
+en détails au chapitre @ref{How LilyPond input files work}. C'est la
+raison pour laquelle nous vous invitons à utiliser un éditeur de texte
+qui prenne en charge le contrôle de parité des parnthèses, crochets et
+accolades afin de vous éviter de telles erreurs.
+
+Lorsqu'il s'agit d'un guillemet fermant (@code{"}) omis, le message
+d'erreur devrait vous indiquer un numéro de ligne avoisinant. L'erreur
+se situe la plupart du temps une ou deux lignes au-dessus de celle
+indiquée.
+
+
+@node Error message Unbound variable %
+@unnumberedsubsubsec Error message Unbound variable %
+
+Ce message d'erreur, qu'il apparaisse sur le terminal ou en fin de
+fichier journal, est associé à un message du type @qq{GUILE a signalé
+une erreur @dots{}} survient à chaque fois qu'un commentaire
+@emph{LilyPond} est indûment placé dans une routine @emph{Scheme}.
+
+Un commentaire LilyPond est introduit par le signe pourcent (@code{%})
+et de doit en aucun cas se trouver dans une routine Scheme. En Scheme,
+les commentaire s'introduisent par un point-virgule (@code{;}).
+
+
@node Troubleshooting (taking it all apart)
@subsection Troubleshooting (taking it all apart)
problème.
Une autre technique de déboguage très utile est la construction
-@iftex
de @ref{Minimal examples}.
-@end iftex
-@ifnottex
-d'@ref{Minimal examples}.
-@end ifnottex
@node Minimal examples
@itemize
@item les rapports de bogue,
@item les demandes d'aide sur les listes de diffusion,
-@item un ajout à
-@uref{http://lsr@/.dsi@/.unimi@/.it/,LilyPond Snippet Repository}.
+@item un ajout au
+@uref{http://lsr.dsi.unimi.it/,LilyPond Snippet Repository}.
@end itemize
Pour construire un exemple minimal, la règle est très simple : enlevez
l'intérêt de l'exemple.
@end itemize
+
@node Scores and parts
@section Scores and parts
@end example
@noindent
-sera substitué le contenu du fichier @file{musique-Cor.ly}, et de ce
+sera substitué le contenu du fichier @code{musique-Cor.ly}, et de ce
fait la variable @code{notesCor} se trouvera définie. La commande
@code{\transpose f@tie{}c'} indique que son argument @code{\notesCor}
-sera transposé à la quinte supérieure : le son réel @samp{f} s'écrit
+sera transposé à la quinte supérieure : le son réel @code{f} s'écrit
@code{c'}, ce qui est la caractéristique d'un Cor en fa. La
transposition est visible comme suit :
R2*3
@end example
-Dans une partie séparée, les silences multi-mesures sont compressés.
-Il faut pour cela définir la propriété @code{skipBars} à @q{vrai} :
+Dans une partie séparée, les silences multimesure sont compressés.
+Il faut pour cela définir la propriété @code{skipBars} à @qq{vrai} :
@example
\set Score.skipBars = ##t
@end example
@noindent
-Cette commande assigne la valeur @q{vrai} --- @emph{true} en anglais, et
-@samp{#t} dans le langage Scheme --- à cette propriété dans le
+Cette commande assigne la valeur @qq{vrai} --- @emph{true} en anglais, et
+@code{#t} dans le langage Scheme --- à cette propriété dans le
contexte @code{Score}. Si l'on ajoute dans la musique ci-dessus le
-silence multi-mesures et cette option, on obtient le résultat suivant :
+silence multimesure et cette option, on obtient le résultat suivant :
@lilypond[quote,ragged-right]
\transpose f c' \relative c {
@end lilypond
Le conducteur rassemble toute la musique. Si l'on suppose que l'autre
-voix de notre duo se trouve dans le fichier @file{musique-Basson.ly} en
+voix de notre duo se trouve dans le fichier @code{musique-Basson.ly} en
tant que variable @code{notesBasson}, on établira un conducteur avec
@example
@end lilypond
Des informations plus détaillées sur la mise en place de conducteurs
-et de parties séparées se trouvent dans le manuel : voir
+et de parties séparées se trouvent dans le manuel de notation : voir
@ruser{Writing parts}.
-Les variables (@q{propriétés}) réglables sont abordées en détail dans
+Les variables (@qq{propriétés}) réglables sont abordées en détail dans
@ruser{The set command}.
+
+
+
+@node Make and Makefiles
+@section Make and Makefiles
+
+@cindex makefiles
+@cindex make
+
+La plupart des plates-formes sur lesquelles tourne LilyPond disposent
+d'un logiciel appelé @code{make}. Ce logiciel va lire un fichier
+spécial, nommé de @code{Makefile}, qui contient tout ce qu'il
+faut --- les dépendances entre certains fichiers, les instructions
+successives à traiter par le système --- pour aboutir au fichier que
+vous désirez obtenir. Il pourrait par exemple contenir tout ce qu'il
+faut pour produire @code{ballade.pdf} et @code{ballade.midi} à partir de
+@code{ballade.ly} en lançant LilyPond.
+
+La création d'un @code{Makefile} peut se révéler pertinente pour
+certains projets, que ce soit par simple goût personnel ou bien par
+respect de ceux qui pourront accéder à vos sources. Cette manière de
+procéder est particulièrement indiquée lorsque vous travaillez sur un
+projet de grande envergure impliquant de nombreuses inclusions de
+fichiers et différentes éditions --- par exemple un conducteur et un
+matériel d'orchestre complet avec la partition pour le chef et une
+partition séparée pour chacun des pupitres --- ou bien si votre projet
+requiert certaines commandes particulières comme @code{lilypond-book}.
+Les @emph{Makefiles} varient tant en complexité qu'en flexibilité selon
+les besoin et les aptitudes de celui qui les crée. Le programme GNU Make
+est installé par défaut sur les distributions Linux et sur MacOS@tie{}X,
+et il en existe une version pour les environnements Windows.
+
+Consultez le @strong{GNU Make Manual} pour plus de détails sur ce dont
+@code{make} est capable --- vous pourrez même en trouver des versions
+françaises à l'aide des moteurs de recherche ---, dans la mesure où ce
+qui suit ne donne qu'un bref apperçu de ses possibilités.
+
+Les commandes permettant de définir les règles diffèrent selon la
+plate-forme : si les différents Linux et MacOS@tie{}X utilisent
+@code{bash}, Windows utilise @code{cmd}. Dans le cas de MacOS@tie{}X,
+vous devrez toutefois configurer votre système de telle sorte qu'il
+utilise l'interpréteur en ligne de commande. Voici quelques exemples de
+fichier @emph{Makefile}, avec une version pour Linux ou MacOS et une
+pour Windows.
+
+Pour commencer, une pièce à quatre mouvements pour orchestre et dont les
+fichiers sont répartis selon l'arborescence suivante :
+
+@example
+Symphonie/
+|-- MIDI/
+|-- Makefile
+|-- Notes/
+| |-- alto.ily
+| |-- cor.ily
+| |-- cello.ily
+| |-- figures.ily
+| |-- hautbois.ily
+| |-- trioCordes.ily
+| |-- violonOne.ily
+| `-- violonTwo.ily
+|-- Partitions/
+| |-- symphonie.ly
+| |-- symphonieI.ly
+| |-- symphonieII.ly
+| |-- symphonieIII.ly
+| `-- symphonieIV.ly
+|-- PDF/
+|-- Pupitres/
+| |-- symphon-alto.ly
+| |-- symphonie-cello.ly
+| |-- symphonie-cor.ly
+| |-- symphonie-hautbois.ly
+| |-- symphonie-violonUn.ly
+| `-- symphonie-violonDeux.ly
+`-- symphonieDefs.ily
+@end example
+
+Les fichiers @code{.ly} des répertoires @code{Partitions} et
+@code{Pupitres} récupèreront la notation des fichiers @code{.ily}
+contenus dans le répertoire @code{Notes} :
+
+@example
+%%% début du fichier "symphone-cello.ly"
+\include ../definitions.ily
+\include ../Notes/cello.ily
+@end example
+
+Le @emph{Makefile} répertorie des cibles correspondant à @code{score}
+(l'intégrale au format conducteur), @code{mouvements} (chacun des
+mouvements au format conducteur) et @code{pupitres} (une partition par
+pupitre). Il contient aussi une cible @code{archive} chargée de générer
+une archive des fichiers sources qui pourra être diffusée sur la toile ou
+transmise par courriel. Voici ce que contiendrait ce @emph{Makefile}
+pour Linux ou MacOS@tie{}X. Ce fichier doit être enregistré sous le nom
+de @code{Makefile} à la racine du projet --- ici @code{Symphonie}.
+
+@warning{Lorsque vous définissez une cible ou une règle sur plusieurs
+lignes, les lignes à partir de la deuxième @strong{doivent} débuter par
+une tabulation, non pas par des espaces.}
+
+@example
+# Le préfixe au nom des fichiers résultants
+piece = symphonie
+# Détermination du nombre de processeurs
+CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
+# La commande d'appel à lilypond
+LILY_CMD = lilypond -ddelete-intermediate-files \
+ -dno-point-and-click -djob-count=$(CPU_CORES)
+
+# Les suffixes utilisés dans ce Makefile
+.SUFFIXES: .ly .ily .pdf .midi
+
+# Les fichiers sources et résultants sont recherchés dans les répertoires
+# listés dans la variable VPATH. Ceux-ci sont tous des sous-répertoires
+# du répertoire courant (fourni par la variable de GNU make `CURDIR').
+VPATH = \
+ $(CURDIR)/Partitions \
+ $(CURDIR)/PDF \
+ $(CURDIR)/Pupitres \
+ $(CURDIR)/Notes
+
+# La règle type pour créer un PDF et un MIDI à partir d'un fichier
+# source LY.
+# Les .pdf résultants iront dans le sous-répertoire "PDF" et les fichiers
+# .midi dans le sous-répertoire "MIDI".
+%.pdf %.midi: %.ly
+ $(LILY_CMD) $<; \ # cette ligne commence par une tabulation
+ if test -f "$*.pdf"; then \
+ mv "$*.pdf" PDF/; \
+ fi; \
+ if test -f "$*.midi"; then \
+ mv "$*.midi" MIDI/; \
+ fi
+
+notes = \
+ alto.ily \
+ cello.ily \
+ cor.ily \
+ hautbois.ily \
+ violonUn.ily \
+ violonDeux.ily
+
+# Les dépendances selon le mouvement.
+$(piece)I.pdf: $(piece)I.ly $(notes)
+$(piece)II.pdf: $(piece)II.ly $(notes)
+$(piece)III.pdf: $(piece)III.ly $(notes)
+$(piece)IV.pdf: $(piece)IV.ly $(notes)
+
+# Les dépendances pour la partition intégrale.
+$(piece).pdf: $(piece).ly $(notes)
+
+# Les dépendances pour les pupitres.
+$(piece)-alto.pdf: $(piece)-alto.ly alto.ily
+$(piece)-cello.pdf: $(piece)-cello.ly cello.ily
+$(piece)-cor.pdf: $(piece)-cor.ly cor.ily
+$(piece)-hautbois.pdf: $(piece)-hautbois.ly hautbois.ily
+$(piece)-violonUn.pdf: $(piece)-violonUn.ly violonUn.ily
+$(piece)-violonDeux.pdf: $(piece)-violonDeux.ly violonDeux.ily
+
+# Lancer `make score' pour générer l'intégrale des quatre mouvements en
+# un seul fichier.
+.PHONY: score
+score: $(piece).pdf
+
+# Lancer `make parties' pour obtenir tous les pupitres.
+# Lancer `make toto.pdf' pour obtenir la partie instrumentale de toto.
+# Par exemple : `make symphonie-cello.pdf'.
+.PHONY: parties
+parties: $(piece)-cello.pdf \
+ $(piece)-violonUn.pdf \
+ $(piece)-violonDeux.pdf \
+ $(piece)-alto.pdf \
+ $(piece)-hautbois.pdf \
+ $(piece)-cor.pdf
+
+# Lancer `make mouvements' pour générer un fichier séparé pour chacun
+# des mouvements.
+.PHONY: mouvements
+mouvements: $(piece)I.pdf \
+ $(piece)II.pdf \
+ $(piece)III.pdf \
+ $(piece)IV.pdf
+
+all: score parties mouvements
+
+archive:
+ tar -cvvf symphonie.tar \ # cette ligne commence par une tabulation
+ --exclude=*pdf --exclude=*~ \
+ --exclude=*midi --exclude=*.tar \
+ ../Symphonie/*
+@end example
+
+
+Les choses se compliquent sous Windows. Une fois GNU Make pour Windows
+téléchargé et installé, il vous faudra correctement définir le chemin
+d'accès au programme @emph{Make} --- dans les variables d'environnement
+du système --- afin que l'interpréteur de commandes DOS puisse le
+localiser. Pour cela, faites un clic droite sur @qq{Poste de travail},
+choisissez @code{Propriétés} puis @code{Avancées}. Cliquez sur
+@code{Variables d'environnement} puis, dans l'onglet @w{@code{Variables
+système}}, mettez @code{path} en surbrillance et cliquez sur
+@code{Modifier}. Ajoutez alors le chemin d'accès complet à l'exécutable
+de GNU Make, qui devrait ressembler à :
+
+@example
+C:\Program Files\GnuWin32\bin
+@end example
+
+Il va également falloir adapter le @emph{makefile} aux particularités de
+l'interpréteur de commandes et à la présence d'espaces dans le nom de
+certains répertoire de ce système.
+La cible @code{archive} est tout bonnement supprimée, puisque Windows ne
+dispose pas de la commande @code{tar}. Enfin, les fichiers MIDI ont une
+extension par défaut propre à Windows.
+
+
+@example
+## VERSION POUR WINDOWS
+##
+piece = symphonie
+LILY_CMD = lilypond -ddelete-intermediate-files \
+ -dno-point-and-click \
+ -djob-count=$(NUMBER_OF_PROCESSORS)
+
+#get the 8.3 name of CURDIR (workaround for spaces in PATH)
+workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
+ do @@echo %%~sb)
+
+.SUFFIXES: .ly .ily .pdf .mid
+
+VPATH = \
+ $(workdir)/Partitions \
+ $(workdir)/PDF \
+ $(workdir)/Pupitress \
+ $(workdir)/Notes
+
+%.pdf %.mid: %.ly
+ $(LILY_CMD) $< # cette ligne commence par une tabulation
+ if exist "$*.pdf" move /Y "$*.pdf" PDF/ # tabulation au début
+ if exist "$*.mid" move /Y "$*.mid" MIDI/ # tabulation au début
+
+notes = \
+ cello.ily \
+ figures.ily \
+ cor.ily \
+ hautbois.ily \
+ trioCordes.ily \
+ alto.ily \
+ violonUn.ily \
+ violonDeux.ily
+
+$(piece)I.pdf: $(piece)I.ly $(notes)
+$(piece)II.pdf: $(piece)II.ly $(notes)
+$(piece)III.pdf: $(piece)III.ly $(notes)
+$(piece)IV.pdf: $(piece)IV.ly $(notes)
+
+$(piece).pdf: $(piece).ly $(notes)
+
+$(piece)-cello.pdf: $(piece)-cello.ly cello.ily
+$(piece)-cor.pdf: $(piece)-cor.ly cor.ily
+$(piece)-hautbois.pdf: $(piece)-hautbois.ly hautbois.ily
+$(piece)-alto.pdf: $(piece)-alto.ly alto.ily
+$(piece)-violonUn.pdf: $(piece)-violonUn.ly violonUn.ily
+$(piece)-violonDeux.pdf: $(piece)-violonDeux.ly violonDeux.ily
+
+.PHONY: score
+score: $(piece).pdf
+
+.PHONY: parties
+parties: $(piece)-cello.pdf \
+ $(piece)-violonUn.pdf \
+ $(piece)-violonDeux.pdf \
+ $(piece)-alto.pdf \
+ $(piece)-hautbois.pdf \
+ $(piece)-cor.pdf
+
+.PHONY: mouvements
+mouvements: $(piece)I.pdf \
+ $(piece)II.pdf \
+ $(piece)III.pdf \
+ $(piece)IV.pdf
+
+all: score parties mouvements
+@end example
+
+
+Le @emph{Makefile} suivant convient pour un document
+@command{lilypond-book} réalisé avec @LaTeX{}. Ce projet contiendra un
+index, ce qui nécessitera de lancer une deuxième fois @command{latex}
+pour mettre à jour les liens. Les fichiers résultants iront dans le
+répertoire @code{out} pour ce qui est des .pdf et dans le répertoire
+@code{htmlout} pour ce qui est du html.
+
+@example
+SHELL=/bin/sh
+FILE=monprojet
+OUTDIR=out
+WEBDIR=htmlout
+VIEWER=acroread
+BROWSER=firefox
+LILYBOOK_PDF=lilypond-book --output=$(OUTDIR) --pdf $(FILE).lytex
+LILYBOOK_HTML=lilypond-book --output=$(WEBDIR) $(FILE).lytex
+PDF=cd $(OUTDIR) && pdflatex $(FILE)
+HTML=cd $(WEBDIR) && latex2html $(FILE)
+INDEX=cd $(OUTDIR) && makeindex $(FILE)
+PREVIEW=$(VIEWER) $(OUTDIR)/$(FILE).pdf &
+
+all: pdf web keep
+
+pdf:
+ $(LILYBOOK_PDF) # tabulation en début de ligne
+ $(PDF) # tabulation en début de ligne
+ $(INDEX) # tabulation en début de ligne
+ $(PDF) # tabulation en début de ligne
+ $(PREVIEW) # tabulation en début de ligne
+
+web:
+ $(LILYBOOK_HTML) # tabulation en début de ligne
+ $(HTML) # tabulation en début de ligne
+ cp -R $(WEBDIR)/$(FILE)/ ./ # tabulation en début de ligne
+ $(BROWSER) $(FILE)/$(FILE).html & # tabulation en début de ligne
+
+keep: pdf
+ cp $(OUTDIR)/$(FILE).pdf $(FILE).pdf # tabulation en début de ligne
+
+clean:
+ rm -rf $(OUTDIR) # tabulation en début de ligne
+
+web-clean:
+ rm -rf $(WEBDIR) # tabulation en début de ligne
+
+archive:
+ tar -cvvf monprojet.tar \ # tabulation en début de ligne
+ --exclude=out/* \
+ --exclude=htmlout/* \
+ --exclude=monprojet/* \
+ --exclude=*midi \
+ --exclude=*pdf \
+ --exclude=*~ \
+ ../MonProjet/*
+@end example
+
+AVENIR: faire que ça marche sous Windows
+
+Ce @emph{makefile} n'est malheureusement pas opérationnel sous Windows.
+La seule alternative qui s'offre aux utilisateurs de Windows consiste à
+créer un fichier de traitement par lot (@code{.bat}) qui contienne les
+différentes commandes successives. Bien que cette manière de procéder
+ne tienne aucun compte des dépendances entre fichiers, elle permet de
+réduire le nombre de processus à lancer dans une seule commande. Vous
+devrez enregistrer les lignes suivantes dans un fichier
+@code{construire.bat} ou @code{construire.cmd}. Ce fichier pourra être
+exécuté soit en ligne de commande, soit par un double clic sur son
+icone.
+
+@example
+lilypond-book --output=out --pdf monprojet.lytex
+cd out
+pdflatex monprojet
+makeindex monprojet
+pdflatex monprojet
+cd ..
+copy out\monprojet.pdf MonProjet.pdf
+@end example
+
+
+@seealso
+Manuel d'utilisation :
+@rprogram{Setup for MacOS X},
+@rprogram{Command-line usage},
+@rprogram{LilyPond-book}