@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: f199e875f7a7beb0afd17eae2038819baab767ff
+ Translation of GIT committish: 45f95ed2dabb3aef3c9a6995701dc255ba88d68a
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.6"
+@c \version "2.19.2"
@c Translators: Valentin Villenave, Nicolas Klutchnikoff, Damien Heurtebise
@c Translation checkers: Jean-Charles Malahieude, John Mandereau
* Le manuel de référence des propriétés internes::
* Apparence des objets::
* Positionnement des objets::
+* Espacement vertical::
* Collisions d'objets::
* Autres retouches::
@end menu
@cindex retouches, méthodologie
@cindex méthodes de retouche
+@menu
+* La commande override::
+* La commande revert::
+* Le préfixe once::
+* La commande overrideProperty::
+* La commande tweak::
+@end menu
-@strong{La commande \override}
+
+@node La commande override
+@unnumberedsubsubsec La commande @code{@bs{}override}
+@translationof The override command
@cindex override, commande
@cindex override, syntaxe
La syntaxe générale de cette commande est :
@example
-\override @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-rendu} = #@var{valeur}
+\override @var{Contexte}.@var{ObjetDeRendu}.@var{propriété-rendu} = #@var{valeur}
@end example
@noindent
n'employer que quelques propriétés et valeurs simples, facilement
compréhensibles.
-Nous ne parlerons dans l'immédiat ni du @code{#'}, qui précède
-toujours la propriété, ni du @code{#}, qui précède toujours la
-valeur. Ces deux éléments doivent obligatoirement être
-présents sous cette forme. Voici la commande la plus fréquente
-pour faire des retouches, et pratiquement tout le reste de ce
-chapitre aura pour but montrer, à travers des exemples, comment
+Lilypond reconnaît comme expression primaire les éléments musicaux
+tels que les notes, durées et annotations (les @emph{markups}).
+D'autres expressions de base comme les nombres, chaînes de
+caractères et listes sont gérées en « mode Scheme », mode appelé
+en faisant précéder une valeur par un @samp{#}. Bien que
+certaines valeurs puissent disposer d'une représentation tout à
+fait valide dans le mode musical de LilyPond, les exemples de ce
+manuel mentionnent un@samp{#} pour plus de clarté. Pour de plus
+amples informations quant au mode Scheme, consultez
+@rextend{Syntaxe Scheme dans LilyPond}.
+
+La commande @code{\override} est la plus fréquemment utilisée pour
+faire des retouches, et pratiquement tout le reste de ce chapitre
+aura pour but de montrer, à travers des exemples, comment
l'utiliser. L'exemple ci-dessous change la couleur des têtes de
notes :
@end lilypond
-@strong{La commande \revert}
+@node La commande revert
+@unnumberedsubsubsec La commande @code{@bs{}revert}
+@translationof The revert command
@cindex revert, commande
la valeur par défaut.
@example
-\revert @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-de-rendu}
+\revert @var{Contexte}.@var{ObjetDeRendu}.@var{propriété-de-rendu}
@end example
Tout comme pour la commande @code{\override}, la mention du
@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
c4 d
\override NoteHead.color = #red
e4 f |
@end lilypond
-@strong{Le préfixe \once}
+@node Le préfixe once
+@unnumberedsubsubsec Le préfixe @code{@bs{}once}
+@translationof The once prefix
@funindex \once
@funindex once
b c |
@end lilypond
-@strong{La commande \overrideProperty}
+Le préfixe @code{\once} peut s'utiliser avec de nombreuses
+commandes prédéfinies pour en limiter les effets à un seul instant
+musical :
+
+@lilypond[quote,verbatim,relative=1]
+c4 d
+\once \stemDown
+e4 f |
+g4 a
+\once \hideNotes
+b c |
+@end lilypond
+
+Les commandes prédéfinies de la forme @code{\@dots{}Neutral},
+@code{\@dots{}Off} et @code{\un@dots{}} font appel, en interne, à
+une instruction @code{\revert} plutôt que @code{\override} ; les
+préfixer d'un @code{\once} est donc sans effet.
+
+
+@node La commande overrideProperty
+@unnumberedsubsubsec La commande @code{@bs{}overrideProperty}
+@translationof The overrideProperty command
@cindex overrideProperty, commande
@c Maybe explain in a later iteration -td
-@strong{La commande \tweak}
+@node La commande tweak
+@unnumberedsubsubsec La commande @code{@bs{}tweak}
+@translationof The tweak command
@cindex tweak, commande
de la commande @code{\tweak} est donc, tout simplement :
@example
-\tweak #'@var{propriété-de-rendu} #@var{valeur}
+\tweak @var{propriété-de-rendu} #@var{valeur}
@end example
La commande @code{\tweak} est aussi utilisée quand on veut, dans
Cette forme développée de la commande @code{\tweak} correspond à :
@example
-\tweak @var{objet-de-rendu} #'@var{propriété-de-rendu} @var{valeur}
+\tweak @var{objet-de-rendu}.@var{propriété-de-rendu} @var{valeur}
@end example
@cindex nolets imbriqués
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
\tweak direction #up
-\times 4/3 {
+\tuplet 3/4 {
\tweak color #red
- \times 2/3 { c8[ c c] }
- \times 2/3 { c8[ c c] }
- \times 2/3 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
}
@end lilypond
@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
-@c See issue 509
@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\times 2/3 { c8[ c c] }
+\tuplet 3/2 { c8[ c c] }
\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
-\times 2/3 {
+\tuplet 3/2 {
c8[ c]
c8[ c]
\once \override TupletNumber.transparent = ##t
- \times 2/3 { c8[ c c] }
- \times 2/3 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
}
@end lilypond
La page de la RPI sur les liaisons commence par préciser que les objets
« Liaison » sont créés par le graveur Slur_engraver. Vient ensuite la
liste des réglages standard ; vous y trouverez la propriété susceptible
-+de contrôler l'épaisseur des traits de liaison.
+de contrôler l'épaisseur des traits de liaison.
@example
@code{thickness} (nombre)
\override Slur.thickness = #5.0
@end example
-N'oublions pas le @code{#'} qui doit précéder le nom de la propriété et
-le @code{#} qui doit précéder la nouvelle valeur.
+N'oublions pas le @code{#} qui doit précéder la nouvelle valeur.
La dernière question est : @qq{Où placer cette commande ?}
Tant qu'on n'est pas sûr de soi, la meilleure réponse est @qq{À
suivants sont là dans cette intention.
-@subheading Détermination du contexte adéquat
+@subsubsubheading Détermination du contexte adéquat
@c VO Finding the context
@cindex contexte, détermination du
en train de saisir des notes, on peut ici ne pas le mentionner.
-@subheading Redéfinition pour une seule occurrence
+@subsubsubheading Redéfinition pour une seule occurrence
@c VO Overriding once only
@cindex dérogation pour une seule fois
@code{\set}.
-@subheading Rétablissement
+@subsubsubheading Rétablissement
@c VO Reverting
@cindex revert
Nous avons alors sous les yeux tous les réglages des propriétés qui
contrôlent les polices de caractères, et notamment
@code{font-shape(symbole)}, où @code{symbole} peut prendre la valeur
-@code{upright}, @code{italics} ou @code{caps}.
+@code{upright}, @code{italic} ou @code{caps}.
Vous remarquerez que @code{font-series} et @code{font-size} figurent
aussi dans la liste. La question qui ne manque pas de se poser
@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,
-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
-@code{thickness} dans l'exemple précédent, et qu'il en faut une devant
-@code{font-shape}. Ce sont à chaque fois des symboles, qui sont
-interprétés comme tels par LilyPond. Certains symboles peuvent être des
-noms de propriété, comme @code{thickness} ou @code{font-shape},
-d'autres sont des valeurs à attribuer aux propriétés, comme
-@code{italic}. À ne pas confondre avec les chaînes de caractères
-libres, qui se présentent comme @code{"un texte libre"} ; pour plus
-de détails sur les symboles et les chaînes de caractères, voir le
-@rextend{Tutoriel Scheme}.
+Signalons rapidement -- même si cette remarque est importante -- que
+certaines valeurs de propriétés se présentent sous forme de
+symboles, comme @code{italic}, et doivent donc être précédées
+d'une simple apostrophe, Ces symboles seront alors interprétés
+comme tels par LilyPond. À ne pas confondre avec les chaînes de
+caractères libres qui se présentent comme @code{"un texte
+libre"} ; pour plus de détails sur les symboles et les chaînes de
+caractères, voir le @rextend{Tutoriel Scheme}.
Ainsi, la commande @code{\override} pour mettre les paroles en italique
est :
@noindent
et voilà les paroles en italiques.
-
-@subheading Spécification du contexte en mode lyrique
-@c VO Specifying the context in lyric mode
-
-@cindex contexte, spécification en mode lyrique
-@cindex mode lyrique, spécification de contexte en
-
-Lorsqu'il s'agit de paroles et qu'on cherche à préciser le contexte
-sur le modèle de ce qui a été fait précédemment, la commande échoue.
-Car une syllabe saisie en mode Paroles (@code{lyricmode}) se termine
-obligatoirement par une espace, un saut de ligne ou un nombre. Tout
-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 de part et d'autre du 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 :
-
-@example
-\override Lyrics.LyricText.font-shape = #'italic
-@end example
-
@warning{Dans la saisie des paroles, pensez à toujours laisser une
espace entre la dernière syllabe et l'accolade fermante.}
-@warning{Lorsqu'on retouche des paroles, toujours placer des espaces
-autour du point qui sépare le nom de contexte du nom d'objet.}
-
@seealso
Manuel d'extension :
@rextend{Tutoriel Scheme}.
parenthèses après le nom de propriété dans la RPI. Voici une liste des
différents types de propriétés, avec les règles qui les régissent et
quelques exemples d'utilisation. Il faut, bien sûr, toujours ajouter un
-symbole @emph{hash}, @code{#}, devant ces valeurs lors de la saisie de
-la commande @code{\override}.
+symbole @emph{hash} (@code{#}) devant ces valeurs lors de la saisie de
+la commande @code{\override}, ce même si cette valeur comporte
+déjà un @code{#} en premier caractère. Les exemples ici présentés
+ne sont que de simples illustrations ; l'utilisation de Scheme
+pour obtenir des valeurs fait l'objet de la rubrique
+@rextend{Scheme et les calculs}.
@multitable @columnfractions .2 .45 .35
@headitem Type de propriété
sous la forme @code{#t} ou @code{#f}
@tab @code{#t}, @code{#f}
@item Dimension (en espaces de portée)
- @tab Un nombre positif décimal (en unités de lignes de portée)
+ @tab Un nombre 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)
- @tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @code{-1}
+ @tab Une direction valide ou son équivalent numérique (@code{0}
+ ou @code{CENTER} indiquent une position neutre)
+ @tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @w{@code{-1}}
@item Entier (@emph{Integer} en anglais)
- @tab Un nombre entier positif
- @tab @code{3}, @code{1}
+ @tab Un nombre entier
+ @tab @code{3}, @code{-1}
@item Liste
- @tab Plusieurs valeurs séparées par une espace, encadrées par des
- parenthèses et précédées par une apostrophe
- @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+ @tab Une séquence de constantes ou symboles séparés par une
+ espace, encadrées par des parenthèses et précédées par une apostrophe
+ @tab @code{'(left-edge staff-bar)}, @code{'(1)}, @code{'()},
@code{'(1.0 0.25 0.5)}
@item Markup (ou étiquette)
@tab Toute commande @code{\markup} valide
- @tab @code{\markup @{ \italic "cresc." @}}
+ @tab @code{\markup @{ \italic "cresc." @}}, @code{"bagpipe"}
@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)}
+ @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 Une valeur positive ou négative, qui peut être décimale
+ @tab @code{3}, @w{@code{-2.45}}
@item Paire (de nombres)
@tab Deux nombres séparées par @qq{espace point espace}, encadrés
par des parenthèses et précédés par une apostrophe
@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 Des constantes encadrés par @code{#(}@dots{}@code{)}
@tab @code{'#(#t #t #f)}
@end multitable
mesure -- et de beaucoup d'autres objets, bien sûr. Examinons chacune
d'elles tour à tour.
+@menu
+* La propriété stencil::
+* La propriété break-visibility::
+* La propriété transparent::
+* La propriété color::
+@end menu
+
-@subheading stencil
-@c VO stencil
+@node La propriété stencil
+@unnumberedsubsubsec La propriété @code{stencil}
+@translationof The stencil property
@cindex stencil, propriété
}
@end lilypond
-Cette fois, les barres de mesure ont disparu.
+Cette fois, les barres de mesure ont disparu. Désactiver la
+propriété @code{stencil} est une opération tellement fréquente que
+LilyPond dispose d'un raccourci -- @code{\omit} (pour « oublier »)
+-- à cet effet :
+
+@funindex \omit
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 12/16
+ \omit Staff.BarLine
+ c4 b8 c d16 c d8 |
+ g,8 a16 b8 c d4 e16 |
+ e8
+}
+@end lilypond
Vous remarquerez que l'affectation de la valeur @code{#f} à la propriété
@code{stencil} déclenchera une erreur dès lors que l'objet en question se
@end lilypond
-@subheading visibilité des barres (break-visibility)
-@c VO break-visibility
+@node La propriété break-visibility
+@unnumberedsubsubsec La propriété @code{break-visibility}
+@translationof The break-visibility property
@cindex break-visibility, propriété
doivent être imprimées ou non à la fin de la ligne, à l'intérieur de la
ligne et au début de la ligne. Dans notre cas, nous voulons que toutes
les barres soient supprimées, si bien que la valeur dont nous avons
-besoin est @code{'#(#f #f #f)}. Essayons, sans oublier d'ajouter le
+besoin est @code{#(#f #f #f)}. Essayons, sans oublier d'ajouter le
contexte @code{Staff}. Vous remarquerez que, en plus de cette valeur,
-nous ajoutons @code{#'#} devant la parenthèse ouvrante. Le @code{'#}
-est nécessaire car il fait partie intégrante de la valeur contenant un
-vecteur, et le premier @code{#} est là, comme toujours avec la commande
-@code{\override}, pour introduire la valeur elle-même.
+nous ajoutons @code{##} devant la parenthèse ouvrante. Un second
+@code{#} est nécessaire car il fait partie intégrante de la valeur
+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, exemple de dérogation
@cindex break-visibility exemple d'utilisation de la propriété
de mesure.
-@subheading transparence
-@c VO transparent
+@node La propriété transparent
+@unnumberedsubsubsec La propriété @code{transparent}
+@translationof The transparent property
@cindex transparent, propriété
@cindex transparence
@end lilypond
@noindent
-La métrique a bien disparu mais la commande a laissé un blanc en lieu et
-place du chiffrage. Ce peut être souhaitable dans le cadre d'un
-exercice, afin que les élèves aient la place pour compléter, mais dans
-d'autres circonstances, ce peut être gênant. Pour y remédier,
-attribuons plutôt au stencil des métriques la valeur @code{#f} :
+L'utilisation de la propriété @code{transparent} étant
+relativement fréquent, LilyPond dispose d'un raccourci à cet
+effet : @code{\hide} (pour « masquer ».
+
+@funindex \hide
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 12/16
+ \hide Staff.TimeSignature
+ c4 b8 c d16 c d8 |
+ g,8 a16 b8 c d4 e16 |
+ e8
+}
+@end lilypond
+
+@noindent
+La métrique a bien disparu dans les deux cas, mais la commande a
+laissé un blanc en lieu et place du chiffrage. Ce peut être
+souhaitable dans le cadre d'un exercice, afin que les élèves aient
+la place pour compléter, mais dans d'autres circonstances, ce peut
+être gênant. Pour y remédier, attribuons plutôt au stencil des
+métriques la valeur @code{#f} :
@cindex TimeSignature, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
@noindent
La différence est flagrante : le fait d'attribuer au stencil la
-valeur @code{#f} supprime totalement l'objet, tandis que le fait de le
-rendre @code{transparent} le laisse en place, mais de façon invisible.
+valeur @code{#f} ou grâce à @code{\omit} supprime totalement
+l'objet, tandis que le fait de le rendre @code{transparent} -- ce
+qui s'obtient aussi par la commande @code{\hide} -- le laisse en
+place, mais de façon invisible.
-@subheading couleur
-@c VO color
+@node La propriété color
+@unnumberedsubsubsec La propriété @code{color}
+@translationof The color property
@cindex color, propriété
@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 @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
-pouvez faire l'essai en choisissant une autre fonction de la liste en
-guise de couleur.
+-- il ne s'agit pas d'un symbole mais d'une @strong{variable}.
+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 variables. Pour en
+être certain, vous pouvez faire l'essai en choisissant une autre
+variable de la liste en guise de couleur.
@cindex couleur X11
@cindex X11, couleurs
Le deuxième moyen de changer la couleur consiste à utiliser la deuxième
@ruser{Liste des couleurs}, dite noms de couleurs X11. Ceux-ci doivent
-obligatoirement être précédés d'une autre fonction, qui convertit les
-noms de couleurs X11 en une liste de valeurs internes, @code{x11-color},
-comme ceci :
+obligatoirement être précédés d'une fonction, @code{x11-color},
+qui convertit les noms symboliques de couleur X11 en une liste de
+valeurs internes comme ceci :
@cindex BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
@noindent
Vous noterez que, dans ce cas, la fonction @code{x11-color} admet un
symbole comme argument ; il faut donc placer une apostrophe devant
-le symbole et insérer les deux à l'intérieur de parenthèses.
+le symbole de telle sorte qu'il ne soit pas interprété comme une
+variable, et insérer l'appel à la fonction à l'intérieur de
+parenthèses.
@cindex rgb, couleur
@cindex couleurs rgb
@funindex rgb-color
-Il existe une troisième fonction, écrite pour convertir les valeurs RVB
-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-color 1 0 0)} ; pour le blanc, ce serait
+Il existe une autre fonction, chargée elle de convertir les
+valeurs RVB 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-color 1 0 0)} ; pour le blanc, ce serait
@code{(rgb-color 1 1 1)} :
@cindex BarLine, exemple de dérogation
@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
-@cindex stencil, exemple d'utilisation de la propriété
@cindex Clef, exemple de dérogation
@cindex TimeSignature, exemple de dérogation
+@funindex \omit
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
alignAboveContext = #"main"
}
{
- \override Staff.Clef.stencil = ##f
- \override Staff.TimeSignature.stencil = ##f
+ \omit Staff.Clef
+ \omit Staff.TimeSignature
{ f8 f c }
}
>>
Mais alors, quelle différence y a-t-il à modifier le contexte de portée
au moyen de @code{\with} ou à modifier les stencils de la clef et de la
-métrique avec @code{\override} ? La principale différence est que
-les changements opérés dans une clause @code{\with} sont réalisés au
-moment où le contexte est créé et restent par la suite les valeurs
-@strong{par défaut} aussi longtemps que ce contexte existe, tandis que
-les commandes @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
+métrique avec @code{\override} ou @code{\omit} comme ici ? La
+principale différence est que les changements opérés dans une
+clause @code{\with} sont réalisés au moment où le contexte est
+créé et restent par la suite les valeurs @strong{par défaut} aussi
+longtemps que ce contexte existe, tandis que les commandes
+@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és activés par @code{\unset} ou @code{\revert}, les réglages reprennent
leurs 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.
}
@end lilypond
+Nous pourrions tout aussi bien utiliser les raccourcis
+@code{\hide} et @code{\omit} pour activer la propriété
+@code{transparent} et désactiver le @code{stencil}, ce qui
+donnerait :
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+ \relative g' {
+ r4 g8 g c4 c8 d |
+ e4 r8
+ <<
+ { f8 c c }
+ \new Staff \with {
+ alignAboveContext = #"main"
+ % Don't print clefs in this staff
+ \omit Clef
+ % Don't print time signatures in this staff
+ \omit TimeSignature
+ }
+ { f8 f c }
+ >>
+ r4 |
+ }
+}
+@end lilypond
+
Venons-en finalement au changement de taille des objets.
Certains objets sont créés comme des glyphes choisis dans une police de
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
- \override Clef.stencil = ##f
- \override TimeSignature.stencil = ##f
+ \omit Clef
+ \omit TimeSignature
% Reduce all font sizes by ~24%
fontSize = #-2
}
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
- \override Clef.stencil = ##f
- \override TimeSignature.stencil = ##f
+ \omit Clef
+ \omit TimeSignature
fontSize = #-2
% Reduce stem length and line spacing to match
\override StaffSymbol.staff-space = #(magstep -2)
qu'ils pointent vers le haut ou vers le bas. Ce comportement est géré
automatiquement dès lors que @code{direction} est activé.
+
+@menu
+* La propriété direction::
+* Doigtés::
+@end menu
+
+
+@node La propriété direction
+@unnumberedsubsubsec La propriété @code{direction}
+@translationof The direction property
+
@cindex down
@cindex up
@cindex center
@tab Les nolets sont au-dessous/au-dessus des notes
@end multitable
-Attention : ces commandes prédéfinies @strong{ne doivent pas} être
-précédées de @code{\once}. Pour limiter l'effet à une seule note, il
-faut soit utiliser la commande équivalente @code{\once \override}, soit
-utiliser la commande prédéfinie, suivie, après la note à modifier, de la
-commande @code{\xxxNeutral} correspondante.
+Les variantes @code{\xxxNeutral} et @code{\xxxNormal} de ces
+commandes sont implémentées à l'aide de @code{\revert} ; elles
+@strong{ne doivent pas} être précédées de @code{\once}. Pour
+limiter les effets des autres commandes prédéfinies (fonctionnant
+à base de @code{\override}) à une seule note, il faut les faire
+précéder d'un @code{\once}, comme pour toute dérogation.
+@node Doigtés
@unnumberedsubsubsec Doigtés
-@c VO Fingering
+@translationof Fingering
@cindex doigtés, positionnement
@cindex doigtés, accords
Si les indications de doigtés paraissent un peu serrées, on peut
toujours réduire la taille de police (@code{font-size}). La valeur
par défaut donnée dans la RPI à la page de l'objet
-@code{Fingering} étant @code{-5}, essayons @code{-7} :
+@code{Fingering} étant @code{-5}, essayons @w{@code{-7}} :
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
\override Fingering.font-size = #-7
@translationof Outside-staff objects
Les objets extérieurs à la portée sont placés automatiquement de façon à
-éviter les collisions. Les objets avec la plus petite valeur de la
-propriété @code{outside-staff-priority} sont placés au plus près de la
-portée, tandis que les autres sont écartés autant qu'il faut pour éviter
-les collisions. La @code{outside-staff-priority} est définie dans la
-@code{grob-interface} ; elle est donc une propriété commune à tous
-les objets de rendu. Par défaut, elle est réglée sur @code{#f} pour
-tous les objets de la portée, et porte une valeur numérique appropriée à
-chacun des objets extérieurs à la portée, à mesure qu'ils sont créés.
-Le tableau suivant montre la valeur numérique par défaut pour
-quelques-uns des objets extérieurs à la portée les plus courant.
+éviter les collisions. Il est toutefois possible, grâce à
+différentes méthodes, de rectifier un positionnement automatique
+qui se révèlerait ne pas être optimal.
+
+@menu
+* La propriété outside-staff-priority::
+* La commande textLengthOn::
+* Positionnement des nuances::
+* Dimensionnement des objets graphiques::
+@end menu
+
+
+@node La propriété outside-staff-priority
+@unnumberedsubsubsec La propriété @code{outside-staff-priority}
+@translationof The outside-staff-priority property
+
+Les objets avec la plus petite valeur de la propriété
+@code{outside-staff-priority} sont placés au plus près de la
+portée, tandis que les autres sont écartés autant qu'il faut pour
+éviter les collisions. La @code{outside-staff-priority} est
+définie dans la @code{grob-interface} ; elle est donc une
+propriété commune à tous les objets de rendu. Par défaut, elle
+est réglée sur @code{#f} pour tous les objets de la portée, et
+porte une valeur numérique appropriée à chacun des objets
+extérieurs à la portée, à mesure qu'ils sont créés. Le tableau
+suivant montre la valeur numérique par défaut pour quelques-uns
+des objets extérieurs à la portée les plus courant.
@cindex spanners
@cindex bandeaux
commande @code{textLengthOn}.
-@subheading \textLengthOn
+@node La commande textLengthOn
+@unnumberedsubsubsec La commande @code{@bs{}textLengthOn}
+@translationof The textLengthOn command
@cindex notes, répartition selon le texte
@end lilypond
La commande qui permet de revenir au comportement par défaut est
-@code{\textLengthOff}. Rappelez-vous que @code{\once} ne
-fonctionne qu'avec @code{\override}, @code{\set}, @code{\revert} ou
-@code{\unset}, et donc ne peut pas être utilisé avec
-@code{\textLengthOn}.
+@code{\textLengthOff}. Alternativement, lorsque l'instruction
+@code{\textLengthOn} se limite à un seul instant musical, vous
+pouvez la préfixer d'un @code{\once}.@*
+LilyPond dispose de commandes équivalentes et dévolues au
+traitement des repères et indications de tempo :
+@code{\markLengthOn} et @code{\markLengthOff}.
@cindex étiquette de texte et collision
@end lilypond
-@subheading Nuances
-@c VO Dynamics
+@node Positionnement des nuances
+@unnumberedsubsubsec Positionnement des nuances
+@translationof Dynamics placement
@cindex modification du positionnement des nuances
@cindex nuances, modification du positionnement
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
-a4\f b\mf c\mp b\p
+a4\f b\mf a\mp b\p
@end lilypond
@noindent
chercher à faire cela avec la commande @code{\override}.
-@subheading Dimensionnement des objets graphiques
-@c VO Grob sizing
+@node Dimensionnement des objets graphiques
+@unnumberedsubsubsec Dimensionnement des objets graphiques
+@translationof Grob sizing
@cindex grob, dimensionnement
@cindex dimensionnement des grobs
attribuant à @code{extra-spacing-width} la valeur
@code{'(+inf.0 . -inf.0)}. Pour être sûr que les objets ne se
chevaucheront pas horizontalement, nous devons donc corriger cette
-valeur de @code{extra-spacing-width} en @code{'(0 . 0)}, afin que
-leur vraie largeur se manifeste. La commande pour y parvenir avec des
-indications de nuances est :
+valeur de @code{extra-spacing-width} pour leur attribuer un peu
+d'espace supplémentaire. L'unité de base est ici la largeur
+séparant deux lignes de portée ; décaler le bord gauche d'une
+demie unité vers la gauche et le bord droit d'une demie unité vers
+la droite devrait suffire :
@example
-\override DynamicText.extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
@end example
@noindent
@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
-\override DynamicText.extra-spacing-width = #'(0 . 0)
-a4\f b\mf c\mp b\p |
-@end lilypond
-
-@noindent
-Bon, cela a mis un terme aux déplacements verticaux des
-nuances mais il reste deux problèmes. Il faudrait que les
-nuances soient un peu plus écartées et ce serait mieux si
-elles étaient toutes à la même distance de la portée. Le
-premier problème est simple à résoudre. Au lieu d'attribuer
-à @code{extra-spacing-width} la valeur zéro, nous pourrions
-mettre un peu plus. L'unité est la distance entre deux lignes
-de portée, donc en écartant le bord gauche d'une demie unité
-et le bord droit d'une demie unité, on obtient :
-
-@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
% Extend width by 1 staff space
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-a4\f b\mf c\mp b\p
+a4\f b\mf a\mp b\p
@end lilypond
@noindent
C'est mieux mais nous voulons peut-être aligner les indications de
nuance sur une même ligne plutôt que de les voir monter et
descendre avec les notes. La propriété qui gère cela est
-@code{staff-padding} ; la section suivante lui est consacrée.
+@code{staff-padding} -- voir @ref{Collisions d'objets}.
+
+
+@node Espacement vertical
+@section Espacement vertical
+@translationof Vertical spacing
+
+En règle générale, LilyPond est plutôt performant en matière
+d'espacement vertical des objets musicaux. Examinons ce qui se passe
+avec un chant simple à deux voix accompagnées au piano :
+
+@lilypond[quote,fragment,ragged-right]
+<<
+ \new ChoirStaff
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+Il n'y a rien à redire quant à l'espacement vertical. Toutefois,
+partons du principe que nous travaillons avec un éditeur dont les
+exigences en matière d'espacement vertical sont les suivantes : les
+paroles doivent être clairement détachées des notes, l'accompagnement de
+piano séparé du chant et les portées de piano rapprochées l'une de
+l'autre. Commençons par les paroles.
+
+Les paroles résident dans un système ; les commandes dévolues à leur
+espacement sont donc mentionnées à la section
+@ruser{Espacement vertical au sein d'un système}. Nous y constatons que
+les paroles sont des lignes de non-portée (@code{non-staff lines}) ; les
+commandes qui gèrent leur espacement font donc référence à la propriété
+@code{nonstaff}. Les décaler de la portée à laquelle elles sont
+attachées (celle du haut) jouera sur la propriété @code{relatedstaff},
+les décaler de la ligne inférieure sur la propriété
+@code{unrelatedstaff}. Les parties vocales sont membre d'un
+@code{VerticalAxisGroup} ; ce sont donc les propriétés de ce groupe qui
+doivent être ajustées. Faisons un premier essai pour voir :
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #5
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #5
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+L'espacement est maintenant quelque peu exagéré. Lorsque nous
+affectons 5 à la variable @code{padding}, LilyPond ajoute cinq espaces
+de portée à la distance séparant deux objets, ce qui est plus que
+généreux. Nous nous limiterons à 2.
+
+Occupons-nous à présent de séparer l'accompagnement du chant. La
+musique vocale fait l'objet d'un @code{ChoirStaff} ; il nous faut donc
+augmenter l'espace entre ce groupe et la portée de piano qui le suit.
+Nous y parviendrons en modifiant la variable @code{basic-distance} de
+l'élément @code{staffgroup-staff-spacing} du @code{StaffGrouper}.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff \with {
+ \override StaffGrouper.
+ staffgroup-staff-spacing.basic-distance = #15
+ }
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #2
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #2
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+Excellent. Ne reste plus qu'à répondre à la dernière exigence :
+resserrer les portées du piano. Pour y parvenir, nous ajusterons à
+nouveau les propriétés du @code{StaffGrouper}, ici en jouant à la fois
+sur la distance de base (@code{basic-distance}) et le décalage
+(@code{padding}) comme ci-dessous :
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff \with {
+ \override StaffGrouper.
+ staffgroup-staff-spacing.basic-distance = #15
+ }
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #2
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #2
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff \with {
+ \override StaffGrouper.staff-staff-spacing = #'(
+ (basic-distance . 0)
+ (padding . 0))
+ }
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+Les portées sont vraiment rapprochées, mais c'est ce que veut l'éditeur.
+On pourra toujours les écarter au besoin en jouant sur les éléments
+@code{padding} ou @code{basic-distance}.
+
+Il existe bien des manières de modifier l'espacement vertical. Le point
+crucial à ne pas oublier est que l'espacement des objets au sein d'un
+regroupement -- un @code{StaffGroup}, tels @code{GrandStaff} ou
+@code{PianoStaff} -- dépend des variables d'espacement d'un
+@code{StaffGrouper} ; l'espacement de portées non regroupées (comme
+@code{Lyrics} et @code{Staff}) dépend des variables d'un
+@code{VerticalAxisGroup}. Voir
+@ruser{Variables d'espacement vertical fluctuant} et
+@ruser{Espacement vertical au sein d'un système} pour de plus amples
+détails.
@node Collisions d'objets
proche (généralement une note ou une ligne de portée) ;
@code{staff-padding} ne s'applique qu'aux objets qui sont toujours
placés au-dehors de la portée -- il contrôle l'espace minimum à insérer
-entre l'objet et la portée. Attention : par défaut,
-@code{staff-padding} concerne les objets positionnés par rapport
-à la portée et n'a aucun effet sur les objets qui sont positionnés par
-rapport à une note ; il est toutefois possible de le régler pour
-fonctionner avec ces derniers.
+entre la portée et l'objet extérieur. Attention : @code{staff-padding}
+concerne les objets positionnés par rapport à la portée et n'a aucun
+effet sur les objets qui sont positionnés par rapport à une note ; tout
+aménagement qui lui serait apporté ne provoquera pas d'eereur, mais sera
+ignoré.
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 @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.
+l'objet dans la Référence des propriétés internes. 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 @code{padding} sont exprimées en espace de portée.
Pour la plupart des objets, la valeur par défaut est aux alentours de
Voyons maintenant comment les propriétés décrites dans la section
précédente peuvent nous aider à résoudre les collisions.
+@menu
+* La propriété padding::
+* La propriété right-padding::
+* La propriété staff-padding::
+* La propriété self-alignment-X::
+* La propriété staff-position::
+* La propriété extra-offset::
+* La propriété positions::
+* La propriété force-hshift::
+@end menu
+
-@subheading la propriété padding
-@c VO padding property
+@node La propriété padding
+@unnumberedsubsubsec La propriété @code{padding}
+@translationof The padding property
@cindex décalage (padding)
@cindex résolution des chevauchements de notation
les autres objets du groupe.
-@subheading la propriété right-padding
-@c VO right-padding
+@node La propriété right-padding
+@unnumberedsubsubsec La propriété @code{right-padding}
+@translationof The right-padding property
@cindex right-padding, propriété
signe sesqui-dièse. Celui-ci est ensuite repoussé devant la tête de
note par la retouche de @code{right-padding}.
-@noindent
-
-@subheading la propriété staff-padding
-@c VO staff-padding property
+@node La propriété staff-padding
+@unnumberedsubsubsec La propriété @code{staff-padding}
+@translationof The staff-padding property
@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 qu'à une hauteur qui varie en fonction de la position de la note
-sur laquelle porte l'objet. Ce n'est pas une propriété de
-@code{DynamicText} mais de @code{DynamicLineSpanner}, car la ligne
-fictive est destinée à s'appliquer autant à @strong{toutes} les nuances,
-notamment celles qui sont créées comme des bandeaux en longueur (en
-anglais @emph{Spanners}). Tel est donc le moyen d'aligner les
-indications de nuance, comme dans cet exemple repris de la section
-précédente :
+sur une ligne fictive à une distance donnée par rapport à la portée en
+l'absence d'autre élément de notation qui les repousserait. Ce n'est
+pas une propriété de @code{DynamicText} mais de
+@code{DynamicLineSpanner}, car la ligne fictive est destinée à
+s'appliquer autant à @strong{toutes} les nuances, notamment celles qui
+sont créées comme des bandeaux en longueur (en anglais @emph{Spanners}).
+Tel est donc le moyen d'aligner les indications de nuance, comme dans
+cet exemple repris de la section précédente :
@cindex DynamicText, exemple de dérogation
@cindex extra-spacing-width, exemple d'utilisation de la propriété
@cindex staff-padding, exemple d'utilisation de la propriété
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\dynamicUp
-% Extend width by 1 unit
-\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-% Align dynamics to a base line 2 units above staff
-\override DynamicLineSpanner.staff-padding = #2
-a4\f b\mf c\mp b\p
+\override DynamicLineSpanner.staff-padding = #3
+a4\f b\mf a\p b\mp
@end lilypond
-@subheading la propriété self-alignment-X
-@c VO self-alignment-X property
+@node La propriété self-alignment-X
+@unnumberedsubsubsec La propriété @code{self-alignment-X}
+@translationof The self-alignment-X property
-L'exemple suivant montre comment résoudre une collision entre une
-indication de corde et une hampe, en alignant le coin droit sur le point
-de référence de la note parente :
+L'exemple suivant montre comment ajuster le positionnement d'une
+indication de corde relativement à une hampe, en alignant le coin
+droit sur le point de référence de la note parente :
@cindex StringNumber, exemple de dérogation
@cindex self-alignment-X, exemple d'utilisation de la propriété
@end lilypond
-@subheading la propriété staff-position
-@c VO staff-position property
+@node La propriété staff-position
+@unnumberedsubsubsec La propriété @code{staff-position}
+@translationof The staff-position property
@cindex collision d'objets à l'intérieur d'une portée
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{<<@{@dots{}@} \\ @{@dots{}@}>>}), la propriété
+construction @code{<<@{ @dots{} @} \\ @{ @dots{} @}>>}), la propriété
@code{staff-position} est réglée sur @code{-4} pour les
@code{MultiMeasureRest} ; nous avons donc besoin de la déplacer, disons,
de quatre demi-intervalles vers le bas, ce qui donne @code{-8}.
automatiquement.
-@subheading la propriété extra-offset
-@c VO extra-offset property
+@node La propriété extra-offset
+@unnumberedsubsubsec La propriété @code{extra-offset}
+@translationof The extra-offset property
@cindex positionnement des objets
@cindex positionnement des grobs
@end lilypond
-@subheading la propriété positions
-@c VO positions property
+@node La propriété positions
+@unnumberedsubsubsec La propriété @code{positions}
+@translationof The positions property
@cindex contrôle des nolets, liaisons, phrasés et ligatures
@cindex gestion manuelle des nolets, liaisons, phrasés et ligatures
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 ligature. Voici un exemple avec une horrible liaison de
-phrasé -- horrible pour avoir tenté de contourner la liaison de
-l'acciaccature.
+barres de ligature.
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4 \acciaccatura e8\( d8 c~ c d c d\)
-@end lilypond
-
-@noindent
-Nous pourrions tout simplement déplacer la liaison de phrasé au-dessus
-des notes, et ce serait la meilleure solution :
+Voici un exemple où la liaison de phrasé recouvre la liaison
+d'articulation :
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4
-\phrasingSlurUp
-\acciaccatura e8\( d8 c~ c d c d\)
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+a8 \( ( a'16 ) a \)
@end lilypond
-@noindent
-Mais si, pour une quelconque raison, cette solution n'était pas
-envisageable, l'autre solution consiste à déplacer légèrement vers le
-bas l'extrémité gauche de la liaison de phrasé, grâce à la propriété
-@code{positions}. Cela corrige en même temps la forme plutôt
-disgracieuse de la liaison.
-
@cindex PhrasingSlur, exemple de dérogation
@cindex positions, exemple d'utilisation de la propriété
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4
-\once \override PhrasingSlur.positions = #'(-4 . -3)
-\acciaccatura e8\( d8 c~ c d c d\)
+@noindent
+Nous pourrions envisager de remonter quelque peu les extrémités
+de la liaison de phrasé. Commençons par repositionner l'extrémité
+gauche à 2,5 espaces de portée au-dessus de la ligne médiane, et
+la droite à 4,5 ; LilyPond choisira la courbe dont les extrémités
+seront les plus approchantes de celle déterminées :
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\once \override PhrasingSlur.positions = #'(2.5 . 4.5)
+a8 \( ( a'16 ) a \)
@end lilypond
+C'est déjà mieux, mais ne pourrait-on pas maintenant abaisser un
+peu l'extrémité droite de la liaison d'articulation ? Vous
+constaterez qu'il n'est pas possible d'y arriver, tout simplement
+parce qu'il n'y a pas de meilleur candidat ; la propriété
+@code{positions} n'est alors d'aucune utilité. Les liaisons,
+aussi bien de tenue que d'articulation ou de phrasé, peuvent se
+positionner et se dessiner tout en finesse lorsque nécessaire --
+voir à ce sujet @ruser{Modification des liaisons}.
+
Voici un autre exemple. Comme nous pouvons le constater, les barres de
ligature chevauchent les liaisons de tenue :
{
\time 4/2
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
{
\time 4/2
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{
\override Beam.positions = #'(-1 . -1)
}
>>
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
à aucune mesure de la deuxième voix.
-@subheading la propriété force-hshift
-@c VO force-hshift property
+@node La propriété force-hshift
+@unnumberedsubsubsec La propriété @code{force-hshift}
+@translationof The force-hshift property
Maintenant, nous sommes prêts à appliquer les dernières corrections à
l'exemple de Chopin présenté à la fin de @ref{J'entends des Voix}, que
% Stem on the d2 must be down to permit merging
\stemDown
% Stem on the d2 should be invisible
- \tweak Stem.transparent ##t
\tweak Flag.transparent ##t
d2
}
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
% Stem on the d2 must be down to permit merging
\stemDown
% Stem on the d2 should be invisible
- \tweak Stem.transparent ##t
\tweak Flag.transparent ##t
d2
}
@subsection Autres utilisations des retouches
@translationof Other uses for tweaks
+@menu
+* Liaison entre plusieurs voix::
+* Rendu MIDI d'un point d'orgue::
+@end menu
+
@cindex transparent, utilisation de la propriété
@cindex création d'objet invisible
@cindex suppression d'objets
@cindex liaison de tenue avec changement de voix
-@subheading Liaison entre plusieurs voix
-@c VO Tying notes across voices
+@node Liaison entre plusieurs voix
+@unnumberedsubsubsec Liaison entre plusieurs voix
+@translationof Tying notes across voices
Voici un exemple qui montre comment créer une liaison de
prolongation entre des notes appartenant à des voix différentes. En
dont l'une avec les notes liées
@lilypond[quote,fragment,relative=2]
-<< { b8~ b8\noBeam } \\ { b[ g8] } >>
+<< { b8~ 8\noBeam } \\ { b[ g8] } >>
@end lilypond
@noindent
@lilypond[quote,fragment,relative=2,verbatim]
<<
{
- \tweak Stem.transparent ##t
\tweak Flag.transparent ##t
- b8~ b\noBeam
+ b8~ 8\noBeam
}
\\
{ b8[ g] }
@lilypond[quote,fragment,relative=2,verbatim]
<<
{
- \tweak Stem.transparent ##t
\tweak Flag.transparent ##t
\tweak Stem.length #8
- b8~ b8\noBeam
+ b8~ 8\noBeam
}
\\
{ b[ g8] }
@end lilypond
-@subheading Rendu MIDI d'un point d'orgue
-@c VO Simulating a fermata in MIDI
+@funindex \single
+@cindex affinage généré par une dérogation
+
+Nous aurions pu, pour déroger à la transparence d'un objet
+graphique, utiliser le raccourci @code{\omit} que nous avons vu
+plus haut. L'affinage constitue une opération différente en ceci
+qu'il n'affecte que les propriétés générées par une expression
+musicale unique. Nous pourrions tout à fait convertir des
+dérogations en affinages à l'aide d'un @code{\single} et ré-écrire
+l'exemple précédent de cette manière :
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+ {
+ \single \hide Stem
+ \single \hide Flag
+ \tweak Stem.length #8
+ b8~ 8\noBeam
+ }
+\\
+ { b8[ g] }
+>>
+@end lilypond
+
+Dans ce cas particulier, la différence avec un @code{\once \hide}
+n'est pas flagrante. Elle prend cependant toute son importance
+lorsque plusieurs objets de retrouvent au même instant musical --
+comme les têtes des notes d'un accord. En effet, la présence d'un
+@code{\once} sera répercutée à tous les objets, alors qu'un
+@code{\single} n'affectera, lui, qu'un seul objet, celui généré
+par l'expression musicale qui le suit directement.
+
+
+@node Rendu MIDI d'un point d'orgue
+@unnumberedsubsubsec Rendu MIDI d'un point d'orgue
+@translationof Simulating a fermata in MIDI
@cindex stencil, utilisation de la propriété
@cindex point d'orgue, rendu en MIDI
% Visible tempo marking
\tempo 4=120
a4 a a
- \once \override Score.MetronomeMark.transparent = ##t
+ \once \hide Score.MetronomeMark
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
a4\fermata |
% Visible tempo marking
\tempo 4=120
a4 a a
- \once \override Score.MetronomeMark.stencil = ##f
+ \once \omit Score.MetronomeMark
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
a4\fermata |
@node Utilisation de variables dans les retouches
@subsection Utilisation de variables dans les retouches
-@translationof Using variables for tweaks
+@translationof Using variables for layout adjustments
@cindex variables, utilisation dans les retouches
@cindex utilisation de variables dans les retouches
@lilypond[quote,verbatim,ragged-right]
mpdolce =
-#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ <>^\markup \bold \box #string #})
\relative c'' {
\tempo 4=50
@example
%%% enregistrez ceci dans un fichier nommé "definitions.ily"
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
(parser location string)
(string?)
- #@{ ^\markup \bold \box #string #@})
+ #@{ <>^\markup \bold \box #string #@})
@end example
Nous rappellerons ce fichier par une simple commande @code{\include} au
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
\relative c'' {
\tempo 4=50
@example
%%% definitions.ily
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
(parser location string)
(string?)
- #@{ ^\markup \bold \box #string #@})
+ #@{ <>^\markup \bold \box #string #@})
\layout@{
\context @{
\Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
@}
\context @{
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
\layout{
\context {
\Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context {
@example
%%% web-publish.ily
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
(parser location string)
(string?)
- #@{ ^\markup \bold \box #string #@})
+ #@{ <>^\markup \bold \box #string #@})
#(set-global-staff-size 23)
\layout@{
\context @{
\Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
@}
\context @{
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(parser location string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
#(set-global-staff-size 23)
\layout{
\context { \Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context { \Voice
Il est possible, bien sûr, de rendre cela encore plus pratique. Nous
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
+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
(b) du système d'exploitation sur lequel il tourne.
-@strong{Téléchargé depuis lilypond.org}
+@subsubsubheading Téléchargé depuis lilypond.org
@itemize @bullet
@item GNU/Linux
@end itemize
-@strong{Installé par un gestionnaire de paquetages ou compilé d'après
-les sources}
+@subsubsubheading Installé par un gestionnaire de paquetages ou compilé d'après les sources
@code{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, où
@var{PREFIX} est déterminé par votre gestionnaire de paquetages ou par