@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 58aaa226bb22be92f59fec8da680d135666222cc
+ Translation of GIT committish: e10b1a07f8f70a23a141d869d9bf67a93ecde821
- 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..
+ 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.11"
+@c \version "2.19.22"
@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
@subsection Introduction aux retouches
@translationof Introduction to tweaks
-LilyPond regroupe sous le terme de @qq{retouches} (@emph{tweaks} en
+LilyPond regroupe sous le terme de « retouches » (@emph{tweaks} en
anglais) les différents moyens dont dispose l'utilisateur pour
intervenir sur l'interprétation du fichier d'entrée et pour modifier
l'apparence du fichier de sortie. Certaines retouches sont très
commencer, présenter certains termes qui servent à décrire ces
opérations internes et ces structures.
-Le terme @qq{Objet} est un terme générique qui fait référence à
+Le terme « Objet » est un terme générique qui fait référence à
une multitude de structures internes mises en place par LilyPond
durant la compilation d'un fichier d'entrée. Ainsi, quand une
commande du type @code{\new Staff} apparaît, un nouvel objet du type
Certains types d'objet portent des noms spécifiques. Les objets qui se
rapportent à des éléments de notation sur le fichier de sortie, comme
les notes, les hampes, les liaisons de phrasé ou de prolongation, les
-doigtés, les clefs, etc. sont appelés @qq{Objets de rendu} ; ils sont
-aussi connus sous le nom d'@qq{Objets graphiques} (en anglais :
+doigtés, les clefs, etc. sont appelés « Objets de rendu » ; ils sont
+aussi connus sous le nom « d'Objets graphiques » (en anglais :
@emph{Graphical objects} ou @emph{Grobs} pour faire court). Ce sont
bien des objets au sens générique ci-dessus et, en tant que tels, ils
reçoivent des propriétés qui leur sont associées, comme leur position,
-leur taille, leur couleur etc.
+leur taille, leur couleur, etc.
Certains objets de rendu, comme les liaisons de phrasé, les soufflets
de crescendo, les marques d'octaviation et beaucoup d'autres
avec une forme étendue sont appelés des bandeaux (@emph{Spanners} en
anglais).
-Il reste à expliquer ce que sont les @qq{interfaces}. De nombreux
+Les bandeaux ne peuvent être retouchés après leur création. Ceci
+inclut les @code{StaffSymbol} et @code{LedgerLineSpanner} qui se
+déroulent tout au long de la partition -- à moins qu'ils n'aient été
+rompus par une commande @code{\stopStaff} puis créés de nouveau à l'aide
+de la commande @code{\startStaff}.
+
+De plus existent certains @emph{grobs} que l'on peut qualifier
+« d'astraits ». Ils n'ont pas pour fonction intrinsèque d'imprimer
+quelque chose, mais plutôt de collecter, positionner et gérer d'autres
+objets. Citons, parmi les plus courants, @code{DynamicLineSpanner},
+@code{BreakAlignment}, @code{NoteColumn}, @code{VerticalAxisGroup},
+@code{NonMusicalPaperColumn}. Nous verrons plus avant comment les
+utiliser.
+
+Il reste à expliquer ce que sont les « interfaces ». De nombreux
objets, qui peuvent être très différents les uns des autres, ont pour
point commun de devoir être compilés simultanément. Par exemple, tous
les @emph{grobs} ont une couleur, une taille, une position, etc. et
@cindex objets, conventions de nommage
@cindex propriétés, conventions de nommage
-Nous avons eu un aperçu, dans @ref{Contextes et graveurs}, de
-la façon de nommer les objets. Voici maintenant une liste de
-référence des types d'objets et de propriétés les plus courants,
-avec leurs conventions de nommage et quelques exemples
-de cas concrets. La lettre @var{A} représente n'importe quel
-caractère alphabétique majuscule, et les lettres @var{aaa}
-un nombre indéterminé de caractères alphabétiques minuscules.
-Les autres caractères sont à prendre tels qu'ils se présentent.
+Nous avons eu un aperçu, dans @ref{Contextes et graveurs}, de la façon
+de nommer les objets. Voici maintenant une liste de référence des types
+d'objets et de propriétés les plus courants, avec leurs conventions de
+nommage et quelques exemples de cas concrets. La lettre @var{A}
+représente n'importe quel caractère alphabétique majuscule, et les
+lettres @var{aaa} un nombre indéterminé de caractères alphabétiques
+minuscules. Les autres caractères sont à prendre tels qu'ils se
+présentent.
@multitable @columnfractions .33 .33 .33
@headitem Type d'objet/propriété
@tab direction, beam-thickness
@end multitable
-Comme nous le verrons bientôt, les propriétés des différents
-types d'objet sont modifiées par des commandes différentes, si bien
-qu'il est bon de savoir reconnaître le type d'un objet ou d'une
-propriété en fonction de son nom.
+Comme nous le verrons bientôt, les propriétés des différents types
+d'objet sont modifiées par des commandes différentes, si bien qu'il est
+bon de savoir reconnaître le type d'un objet ou d'une propriété en
+fonction de son nom.
+
+@seealso
+Manuel de notation :
+@ruser{Modification de propriétés}.
@node Méthodes de retouche
@cindex méthodes de retouche
@menu
-* La commande \override::
-* La commande \revert::
-* Le préfixe \once::
-* La commande \overrideProperty::
-* La commande \tweak::
+* La commande override::
+* La commande revert::
+* Le préfixe once::
+* La commande overrideProperty::
+* La commande tweak::
+* Le préfixe single::
@end menu
-@node La commande \override
-@unnumberedsubsubsec La commande @code{\override}
-@translationof The \override command
+@node La commande override
+@unnumberedsubsubsec La commande @code{@bs{}override}
+@translationof The override command
@cindex override, commande
@cindex override, syntaxe
l'objet @var{ObjetDeRendu}, appartenant lui-même au contexte
@var{Contexte}, une valeur @var{valeur}.
-Le contexte @var{Contexte} peut être omis (c'est généralement
-le cas) quand il n'y a pas d'ambiguïté et qu'il s'agit d'un contexte
-de très bas niveau, comme @code{Voice}, @code{ChordNames} ou
-@code{Lyrics}. Dans les exemples qui suivent, le contexte sera très
-souvent omis. Nous verrons plus tard dans quelles circonstances il doit
-impérativement être indiqué.
+Le contexte @var{Contexte} peut être omis (c'est généralement le cas)
+quand il n'y a pas d'ambiguïté et qu'il s'agit d'un contexte de très bas
+niveau, comme @code{Voice}, @code{ChordNames} ou @code{Lyrics}. Dans les
+exemples qui suivent, le contexte sera très souvent omis. Nous verrons
+plus tard dans quelles circonstances il doit impérativement être
+indiqué.
Les sections ci-dessous traitent largement des propriétés et de leurs
valeurs -- voir @ref{Types de propriétés} -- mais, pour illustrer la
n'employer que quelques propriétés et valeurs simples, facilement
compréhensibles.
-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 :
+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 :
@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead.color = #red
-e4 f |
-\override NoteHead.color = #green
-g4 a b c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \override NoteHead.color = #green
+ g4 a b c |
+}
@end lilypond
-@node La commande \revert
-@unnumberedsubsubsec La commande @code{\revert}
-@translationof The \revert command
+@node La commande revert
+@unnumberedsubsubsec La commande @code{@bs{}revert}
+@translationof The revert command
@cindex revert, commande
Une fois qu'elle a été modifiée, la propriété conserve sa nouvelle
valeur jusqu'à ce qu'elle soit à nouveau modifiée ou qu'elle rencontre
-la commande @code{\revert}. La commande @code{\revert} obéit à
-la syntaxe ci-dessous et ramène la valeur de la propriété à sa valeur
-d'origine. Attention : dans le cas où plusieurs @code{\override}
-ont été employés, il ne s'agit pas de la valeur précédente mais bien de
-la valeur par défaut.
+la commande @code{\revert}. La commande @code{\revert} obéit à la
+syntaxe ci-dessous et ramène la valeur de la propriété à sa valeur
+d'origine. Attention : dans le cas où plusieurs @code{\override} ont
+été employés, il ne s'agit pas de la valeur précédente mais bien de la
+valeur par défaut.
@example
\revert @var{Contexte}.@var{ObjetDeRendu}.@var{propriété-de-rendu}
Tout comme pour la commande @code{\override}, la mention du
@var{Contexte} est souvent facultative. Elle sera omise dans de
-nombreux exemples ci-dessous. Voici un exemple qui ramène la
-couleur des deux dernières notes à leur valeur par défaut :
+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 d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
-@lilypond[quote,verbatim,relative=1]
-c4 d
-\override NoteHead.color = #red
-e4 f |
-\override NoteHead.color = #green
-g4 a
-\revert NoteHead.color
-b4 c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \override NoteHead.color = #green
+ g4 a
+ \revert NoteHead.color
+ b4 c |
+}
@end lilypond
-@node Le préfixe \once
-@unnumberedsubsubsec Le préfixe @code{\once}
-@translationof The \once prefix
+@node Le préfixe once
+@unnumberedsubsubsec Le préfixe @code{@bs{}once}
+@translationof The once prefix
@funindex \once
@funindex once
-Les commandes @code{\override} et @code{\set} peuvent supporter
-toutes les deux le préfixe @code{\once}. Celui-ci a pour fonction de
-n'appliquer la commande @code{\override} ou @code{\set} qu'à
-l'instant musical en cours, avant que la propriété ne reprenne
-sa valeur antérieure -- qui n'est pas forcément la valeur par défaut
-lorsqu'un autre @code{\override} est toujours effectif. Toujours à
+Les commandes @code{\override}, @code{\revert}, @code{\set} et
+@code{\unset} peuvent supporter le préfixe @code{\once}. Celui-ci a
+pour fonction de n'appliquer la commande considérée qu'à l'instant
+musical en cours, avant que la propriété ne reprenne sa valeur
+antérieure -- qui n'est pas forcément la valeur par défaut lorsqu'un
+autre @code{\override} ou @code{\set} est toujours effectif. Toujours à
partir du même exemple, il est possible de ne changer la couleur que
d'une seule note :
@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead.color = #red
-e4 f |
-\once \override NoteHead.color = #green
-g4 a
-\revert NoteHead.color
-b c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \once \override NoteHead.color = #green
+ g4 a
+ \once \revert NoteHead.color
+ b c |
+ \revert NoteHead.color
+ f2 c |
+}
@end lilypond
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 |
+@lilypond[quote,verbatim]
+\relative {
+ c'4( d)
+ \once \slurDashed
+ e4( f) |
+ g4( a)
+ \once \hideNotes
+ b( c) |
+}
@end lilypond
-Les commandes prédéfinies de la forme @code{\...Neutral},
-@code{\...Off} et @code{\un...} 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{\overrideProperty}
-@translationof The \overrideProperty command
+@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
-@node La commande \tweak
-@unnumberedsubsubsec La commande @code{\tweak}
-@translationof The \tweak command
+@node La commande tweak
+@unnumberedsubsubsec La commande @code{@bs{}tweak}
+@translationof The tweak command
@cindex tweak, commande
@cindex font-size, exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-<c e g>4
-\once \override NoteHead.font-size = #-3
-<c e g>4
-<c e g>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ <c' e g>4
+ \once \override NoteHead.font-size = #-3
+ <c e g>4
+ <c e g>4
+}
@end lilypond
Nous voyons que @code{\override} modifie @strong{toutes} les têtes
@cindex font-size, exemple d'utilisation de la propriété
@cindex @code{\tweak}, exemple
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-<c e g>4
-<c \tweak font-size #-3 e g>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ <c' e g>4
+ <c \tweak font-size #-3 e g>4
+}
@end lilypond
Vous noterez que la syntaxe de @code{\tweak} est différente de
@cindex couleur, exemple d'utilisation de la propriété
@cindex @code{\tweak}, exemple
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4^"Black"
+@lilypond[quote,fragment,ragged-right,verbatim]
+a'4^"Black"
-\tweak color #red ^"Red"
-\tweak color #green _"Green"
@end lilypond
explicitement l'objet de rendu, si tant est que LilyPond puisse remonter
jusqu'à l'événement originel :
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental.color #red cis4
- \tweak Accidental.color #green es
- g>
+@lilypond[quote,fragment,ragged-right,verbatim]
+<\tweak Accidental.color #red cis''4
+ \tweak Accidental.color #green es''
+ g''>
@end lilypond
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
+@cindex n-olets imbriqués
@cindex triolets imbriqués
-@cindex crochet de nolet
-@cindex nolet, crochet
+@cindex crochet de n-olet
+@cindex n-olet, crochet
@cindex triolet, crochet
@funindex TupletBracket
-Quand plusieurs nolets sont imbriqués et commencent au même instant
+Quand plusieurs n-olets sont imbriqués et commencent au même instant
musical, c'est encore la commande @code{\tweak} qui est utilisée pour
changer l'apparence de l'un d'entre eux. Dans l'exemple suivant, le
-long crochet de nolet et le premier des trois crochets courts commencent
+long crochet de n-olet et le premier des trois crochets courts commencent
au même instant musical ; une commande @code{\override} s'appliquerait
donc à la fois aux deux. En revanche, @code{\tweak} permet de les
dissocier. La première commande @code{\tweak} indique que le long
crochet doit être placé au-dessus des notes, et la seconde indique que
-le coefficient de nolet doit être imprimé en rouge sur le premier
+le coefficient de n-olet doit être imprimé en rouge sur le premier
crochet de triolet court.
@cindex @code{\tweak}, exemple
@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
-\tuplet 3/4 {
- \tweak color #red
- \tuplet 3/2 { c8[ c c] }
- \tuplet 3/2 { c8[ c c] }
- \tuplet 3/2 { c8[ c c] }
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ \tweak direction #up
+ \tuplet 3/4 {
+ \tweak color #red
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ }
}
@end lilypond
-Si les nolets imbriqués ne commencent pas au même moment,
+Si les n-olets imbriqués ne commencent pas au même moment,
leur apparence peut alors être modifiée de la façon habituelle,
avec la commande @code{\override} :
@cindex transparence, exemple d'utilisation de la propriété
@cindex TupletNumber, exemple de dérogation
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\tuplet 3/2 { c8[ c c] }
-\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
-\tuplet 3/2 {
- c8[ c]
- c8[ c]
- \once \override TupletNumber.transparent = ##t
- \tuplet 3/2 { c8[ c c] }
- \tuplet 3/2 { c8[ c c] }
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \tuplet 3/2 { c'8[ c c] }
+ \once \override TupletNumber.text = #tuplet-number::calc-fraction-text
+ \tuplet 3/2 {
+ c8[ c]
+ c8[ c]
+ \once \override TupletNumber.transparent = ##t
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ }
}
@end lilypond
@ruser{La commande d'affinage (@emph{tweak})}.
+@node Le préfixe single
+@unnumberedsubsubsec Le préfixe @code{@bs{}single}
+@translationof The single prefix
+
+@funindex \single
+@funindex single
+
+@cindex tweak généré par override
+
+Supposons que nous voulions mettre en exergue certaines têtes de note --
+plus grosses et en rouge -- et, pour nous simplifier la vie, que nous
+avons réalisé un fonction à ce effet :
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+ \override NoteHead.color = #red
+ \override NoteHead.font-size = 2
+}
+\relative {
+ c''4 a \once \emphNoteHead f d |
+}
+@end lilypond
+
+Le préfixe @code{\once} fonctionne à merveille dans le cas d'une note
+isolée ou de l'intégralité d'un accord, mais ne permet pas de souligner
+individuellement l'une des notes d'un accord. Nous avons vu comment un
+@code{\tweak} permet d'y arriver -- voir @ref{La commande tweak}. Un
+@code{\tweak} ne peut toutefois pas s'utiliser dans une fonction ; un
+@code{\single} permet d'appliquer la fonction une seule fois :
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+ \override NoteHead.color = #red
+ \override NoteHead.font-size = 2
+}
+\relative {
+ <c'' a \single \emphNoteHead f d>4
+}
+@end lilypond
+
+En résumé, l'instruction @code{\single} convertit les instructions
+@code{\override} en @code{\tweak} de telle sorte que lorsque plusieurs
+objets se trouvent en un même point du temps musical, comme la tête des
+notes formant un accord, @code{\single} n'en affectera qu'une seule,
+celle générée par l'expression musicale qui vient juste après,
+contrairement à un @code{\once} qui en affectera tous les objets.
+
+Cette utilisation de @code{\single} permet d'appliquer individuellement
+n'importe quel raccourci de fonction contenant des @code{\override} aux
+notes d'un accord. Néanmoins, l'instruction @code{\single} ne permet
+pas de convertir des @code{\revert}, @code{\set} ou @code{\unset} en
+@code{\tweak}.
+
+@seealso
+Manuel d'initiation :
+@ref{La commande tweak},
+@ref{Utilisation de variables dans les retouches}.
+
+
@node Le manuel de référence des propriétés internes
@section Le manuel de référence des propriétés internes
@translationof The Internals Reference manual
@c Mozart, Die Zauberflöte Nr.7 Duett
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8 bes[( g]) g |
+ \relative {
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
Admettons que nous voulions rendre les traits de liaison plus épais.
Est-ce possible ? Une liaison est assurément un objet de rendu, si
-bien que la question est @qq{Existe-t-il une propriété attachée aux
-liaisons et qui en contrôle l'épaisseur ?} Pour y répondre, nous
+bien que la question est « Existe-t-il une propriété attachée aux
+liaisons et qui en contrôle l'épaisseur ? » Pour y répondre, nous
consultons la Référence des propriétés internes (ou RPI pour faire
court).
RPI correspondant à votre version du programme. Allez sur la page
Documentation et cliquez sur Référence des propriétés internes.
Pour l'apprentissage, mieux vaut utiliser la version HTML standard,
-et non la @qq{page unique en anglais} ou le PDF. Durant la lecture
+et non la « page unique en anglais » ou le PDF. Durant la lecture
des prochains paragraphes, il vous est conseillé de vous y reporter
réellement afin que les explications prennent tout leur sens.
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{À
+La dernière question est : « Où placer cette commande ? »
+Tant qu'on n'est pas sûr de soi, la meilleure réponse est « À
l'intérieur de l'expression musicale, avant la première liaison et
-proche d'elle.} Essayons :
+proche d'elle. » Essayons :
@cindex Slur, exemple de dérogation
@cindex thickness, exemple d'utilisation de la propriété
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
+ \relative {
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur.thickness = #5.0
- r4 bes8 bes[( g]) g |
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
contexte Voix, dans la mesure où elles sont étroitement liées à une
ligne mélodique, mais comment en être sûr ? Pour répondre à cette
question, revenons en haut de la page de la RPI consacrée aux liaisons ;
-il est écrit : @qq{Les objets Liaison sont créés par le graveur
-Slur_engraver}. Ainsi les liaisons seront créées dans n'importe quel
+il est écrit : « Les objets Liaison sont créés par le graveur
+Slur_engraver. » Ainsi les liaisons seront créées dans n'importe quel
contexte où se trouve le @code{Slur_engraver}. Suivons le lien vers la
page @code{Slur_engraver}. Tout en bas, on lit que le
@code{Slur_engraver} est un élément appartenant à sept contextes Voix,
@cindex Liaison, exemple de dérogation
@cindex Épaisseur, exemple d'utilisation de la propriété
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Increase thickness of immediately following slur only
\once \override Slur.thickness = #5.0
bes8[( g]) g |
@cindex thickness, exemple d'utilisation de la propriété
@cindex épaisseur, exemple d'utilisation
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Increase thickness of immediately following slur only
\once \override Slur.thickness = #5.0
bes[( g]) g |
@cindex liaison, exemple de dérogation
@cindex épaisseur, exemple d'utilisation
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur.thickness = #5.0
bes[( g]) g |
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 @qq{Tous les objets de rendu}, et
+page de la RPI qui contient la liste « 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
Vous remarquerez que @code{font-series} et @code{font-size} figurent
aussi dans la liste. La question qui ne manque pas de se poser
-est : @qq{Comment se fait-il que les propriétés @code{font-series}
+est : « Comment se fait-il que les propriétés @code{font-series}
et @code{font-size} se retrouvent à la fois dans @code{LyricText} et
dans l'interface @code{font-interface} alors que ce n'est pas le cas
-pour @code{font-shape} ?} La réponse est que lorsqu'un objet
+pour @code{font-shape} ? » La réponse est que lorsqu'un objet
@code{LyricText} est créé, les valeurs globales par défaut de
@code{font-series} et @code{font-size} sont modifiées, mais pas celles
de @code{font-shape}. Les possibilités de modification dans
@cindex LyricText, exemple de dérogation
@cindex @code{\addlyrics}, exemple
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8 bes[( g]) g |
+ \relative {
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
@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
+ @tab Deux nombres séparées par « espace point espace », encadrés
par des parenthèses et précédés par une apostrophe
@tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
@item Symbole
@cindex BarLine, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override BarLine.stencil = ##f
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
Les barres de mesure sont encore là ! Pourquoi ? Retournons
à la RPI et regardons de nouveau la page qui traite des propriétés de
-@code{BarLine}. En haut de la page, il est précisé que @qq{Les objets
-BarLine sont créés par le graveur Bar_engraver}. Allons à la page de
+@code{BarLine}. En haut de la page, il est précisé que « Les objets
+BarLine sont créés par le graveur Bar_engraver ». Allons à la page de
@code{Bar_engraver}. Tout en bas se trouve la liste des contextes dans
lesquels fonctionne ce graveur. Tous sont du type @code{Staff}, de
sorte que, si la commande @code{\override} n'a pas fonctionné comme
@cindex BarLine, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.stencil = ##f
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
-- à cet effet :
@funindex \omit
+@funindex omit
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\omit Staff.BarLine
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@code{point-stencil} qui, quant à elle, attribue à l'objet une taille à
zéro :
-@lilypond[quote,verbatim,relative=2]
-{
- c4 c
+@lilypond[quote,verbatim]
+\relative {
+ c''4 c
\once \override NoteHead.stencil = #point-stencil
c4 c
}
@cindex BarLine, exemple de dérogation
@cindex break-visibility exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.break-visibility = #'#(#f #f #f)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
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 @qq{Tous les objets de rendu} de la RPI, nous
+retour sur la page « 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
@cindex TimeSignature, exemple de dérogation
@cindex transparent, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.TimeSignature.transparent = ##t
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@funindex \hide
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\hide Staff.TimeSignature
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex TimeSignature, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.TimeSignature.stencil = ##f
- c4 b8 c d16 c d8 |
+ \omit Staff.TimeSignature.stencil
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.color = #white
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
-- 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
+aussi, dans la « 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 BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.color = #(x11-color 'white)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.color = #(rgb-color 1 1 1)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex color, exemple d'utilisation de la propriété
@cindex x11-color, exemple d'utilisation
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.StaffSymbol.color = #(x11-color 'grey30)
\override Staff.TimeSignature.color = #(x11-color 'grey60)
\override Voice.NoteHead.color = #(x11-color 'grey85)
\override Voice.Stem.color = #(x11-color 'grey85)
\override Staff.BarLine.color = #(x11-color 'grey10)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex TimeSignature, exemple de dérogation
@funindex \omit
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex Clef, exemple de dérogation
@cindex TimeSignature, exemple de dérogation
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
}
@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 :
+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]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex TimeSignature, exemple de dérogation
@cindex fontSize, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex écartement des lignes, modification
Dans LilyPond, les écartements et longueurs sont généralement mesurés en
-@qq{intervalles de lignes} (@emph{staff-spaces} en anglais),
+« 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.
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
+« épaisseur de ligne » (@code{line-thickness}). Par exemple, les
lignes de (de)crescendo présentent par défaut une épaisseur d'une
unité de @code{line-thickness}, alors que l'épaisseur d'une hampe
est de 1,3. Toutefois, certaines propriétés d'épaisseur sont
@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]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
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 @qq{objets de la portée} (@emph{within-staff
-objects} en anglais) et les @qq{objets extérieurs à la portée}
+appelle respectivement les « objets de la portée » (@emph{within-staff
+objects} en anglais) et les « 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
@cindex markup, exemple
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-c2^"Text1"
-c2^"Text2" |
-c2^"Text3"
-c2^"Text4" |
+@lilypond[quote,fragment,ragged-right,verbatim]
+c''2^"Text1"
+c''2^"Text2" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
Les portées aussi sont positionnées, par défaut, le plus près possible
@lilypond[quote,ragged-right,verbatim]
<<
\new Staff {
- \relative c' { c4 a, }
+ \relative { c'4 a, }
}
\new Staff {
- \relative c'''' { c4 a, }
+ \relative { c''''4 a, }
}
>>
@end lilypond
@cindex center
@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
-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
+L'exemple ci-dessous montre dans la première mesure le positionnement
+par défaut des liaisons -- celles des notes les plus hautes en surplomb
+des têtes et celles des notes les plus basses au-dessous ; viennent
+ensuite une mesure avec les liaisons forcées vers le bas, puis une
+mesure avec les liaisons forcées vers le haut, et pour finir une mesure
+où elles adoptent de nouveau le comportement par défaut.
+
+@cindex Slur, exemple de dérogation
@cindex direction, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4 g c a |
-\override Stem.direction = #DOWN
-a4 g c a |
-\override Stem.direction = #UP
-a4 g c a |
-\revert Stem.direction
-a4 g c a |
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+\override Slur.direction = #DOWN
+a'4( g') c''( a') |
+\override Slur.direction = #UP
+a'4( g') c''( a') |
+\revert Slur.direction
+a'4( g') c''( a') |
@end lilypond
Nous utilisons ici les directions @code{DOWN} et @code{UP}. Elles
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 @qq{centré} pour d'autres objets. Il
+pour les liaisons, et comme un « centré » pour d'autres objets. Il
existe une direction, @code{CENTER}, qui correspond à la
valeur @code{0}.
@item @code{\tupletDown}
@tab @code{\tupletUp}
@tab @code{\tupletNeutral}
- @tab Les nolets sont au-dessous/au-dessus des notes
+ @tab Les n-olets sont au-dessous/au-dessus des notes
@end multitable
Les variantes @code{\xxxNeutral} et @code{\xxxNormal} de ces
à base de @code{\override}) à une seule note, il faut les faire
précéder d'un @code{\once}, comme pour toute dérogation.
+Dans le cas où un seul objet de rendu doit déroger à la règle, LilyPond
+dispose des indicateurs de positionnement @code{^} et @code{_} :
+
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+a'4^( g') c''_( a') |
+@end lilypond
+
@node Doigtés
@unnumberedsubsubsec Doigtés
@cindex doigtés, exemple de dérogation
@cindex direction, exemple d'utilisation de la propriété
-@lilypond[quote,verbatim,relative=2]
-c4-5 a-3 f-1 c'-5 |
-\override Fingering.direction = #DOWN
-c4-5 a-3 f-1 c'-5 |
-\override Fingering.direction = #UP
-c4-5 a-3 f-1 c'-5 |
+@lilypond[quote,verbatim]
+\relative {
+ c''4-5 a-3 f-1 c'-5 |
+ \override Fingering.direction = #DOWN
+ c4-5 a-3 f-1 c'-5 |
+ \override Fingering.direction = #UP
+ c4-5 a-3 f-1 c'-5 |
+}
@end lilypond
Le fait d'intervenir sur la propriété @code{direction} n'est sûrement
@cindex doigtés, exemple
-@lilypond[quote,verbatim,relative=2]
-c4-5 a-3 f-1 c'-5 |
-c4_5 a_3 f_1 c'_5 |
-c4^5 a^3 f^1 c'^5 |
+@lilypond[quote,verbatim]
+\relative {
+ c''4-5 a-3 f-1 c'-5 |
+ c4_5 a_3 f_1 c'_5 |
+ c4^5 a^3 f^1 c'^5 |
+}
@end lilypond
La propriété @code{direction} ne fonctionne pas pour les accords alors
@cindex doigtés, exemple
-@lilypond[quote,verbatim,relative=2]
-<c-5 g-3>4
-<c-5 g-3 e-2>4
-<c-5 g-3 e-2 c-1>4
+@lilypond[quote,verbatim]
+\relative {
+ <c''-5 g-3>4
+ <c-5 g-3 e-2>4
+ <c-5 g-3 e-2 c-1>4
+}
@end lilypond
@noindent
@cindex doigtés, exemple
-@lilypond[quote,verbatim,relative=2]
-<c-5 g-3 e-2 c-1>4
-<c^5 g_3 e_2 c_1>4
-<c^5 g^3 e^2 c_1>4
+@lilypond[quote,verbatim]
+\relative {
+ <c''-5 g-3 e-2 c-1>4
+ <c^5 g_3 e_2 c_1>4
+ <c^5 g^3 e^2 c_1>4
+}
@end lilypond
On peut aller encore plus loin dans le positionnement des doigtés pour
@cindex @code{\set}, exemple d'utilisation
@cindex fingeringOrientations, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(up left down)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(up left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(right)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \set fingeringOrientations = #'(left)
+ <f'-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(up left down)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(up left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(right)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+}
@end lilypond
@noindent
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 @w{@code{-7}} :
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering.font-size = #-7
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(up left down)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(up left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(right)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
+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 @w{@code{-7}} :
+
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \override Fingering.font-size = #-7
+ \set fingeringOrientations = #'(left)
+ <f'-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(up left down)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(up left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(right)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+}
@end lilypond
@menu
* La propriété outside-staff-priority::
-* La commande \textLengthOn::
+* La commande textLengthOn::
* Positionnement des nuances::
* Dimensionnement des objets graphiques::
@end menu
début du bandeau qui constitue une ligne de base susceptible de contenir
plusieurs soufflets ou indications de nuance.
-@multitable @columnfractions .3 .3 .3
+@multitable @columnfractions .3 .15 .45
@headitem Objet de rendu
@tab Priorité
@tab Contrôle la position de :
@item @code{MetronomeMark}
@tab @code{1000}
@tab Indication métronomique
+@item @code{SostenutoPedalLineSpanner}
+ @tab @code{1000}
+ @tab Indication de pédale
+@item @code{SustainPedalLineSpanner}
+ @tab @code{1000}
+ @tab
+@item @code{UnaCordaPedalLineSpanner}
+ @tab @code{1000}
+ @tab
+@item @code{MeasureCounter}
+ @tab @code{750}
+ @tab Numéro de mesure
@item @code{VoltaBracketSpanner}
@tab @code{600}
@tab Bandeau de répétition
+@item @code{InstrumentSwitch}
+ @tab @code{500}
+ @tab Texte de changement d'instrument
@item @code{TextScript}
@tab @code{450}
@tab Texte des @emph{markup} (ou étiquettes)
@item @code{MultiMeasureRestText}
@tab @code{450}
- @tab Texte sur les silences qui couvrent des mesures entières
+ @tab Texte sur les silences multimesures
+@item @code{CombineTextScript}
+ @tab @code{450}
+ @tab Texte de parties combinées
@item @code{OttavaBracket}
@tab @code{400}
@tab Indication d'octaviation
@item @code{TrillSpanner}
@tab @code{50}
@tab Bandeau de trille
+@item @code{AccidentalSuggestion}
+ @tab @code{0}
+ @tab Altération suggérée
@end multitable
Voici un exemple qui montre le placement par défaut de certains
@cindex TextSpanner, exemple de dérogation
@cindex bound-details, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim]
% Set details for later Text Spanner
\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
\dynamicUp
% Start Ottava Bracket
\ottava #1
-c'4 \startTextSpan
+c''4 \startTextSpan
% Add Dynamic Text and hairpin
-c4\pp\<
-c4
+c''4\pp\<
+c''4
% Add Text Script
-c4^Text |
-c4 c
+c''4^Text |
+c''4 c''
% Add Dynamic Text and terminate hairpin
-c4\ff c \stopTextSpan |
+c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
-c,4 c c c |
+c'4 c' c' c' |
@end lilypond
Cet exemple montre comment créer des extensions de texte (@emph{Text
@cindex TextSpanner, exemple de dérogation
@cindex bound-details, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim]
% Set details for later Text Spanner
\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
\once \override Staff.OttavaBracket.outside-staff-priority = #340
% Start Ottava Bracket
\ottava #1
-c'4 \startTextSpan
+c''4 \startTextSpan
% Add Dynamic Text
-c4\pp
+c''4\pp
% Add Dynamic Line Spanner
-c4\<
+c''4\<
% Add Text Script
-c4^Text |
-c4 c
+c''4^Text |
+c''4 c''
% Add Dynamic Text
-c4\ff c \stopTextSpan |
+c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
-c,4 c c c |
+c'4 c' c' c' |
@end lilypond
N'oublions pas que certains objets, tels les numéros de mesure,
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 à
+à @code{'inside} dans le but de « 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
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
-c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur.outside-staff-priority = #500
-c4( c^\markup { \tiny \sharp } d4.) c8 |
+@lilypond[quote,verbatim]
+\relative c'' {
+ c4( c^\markup { \tiny \sharp } d4.) c8 |
+ c4(
+ \once \override TextScript.avoid-slur = #'inside
+ \once \override TextScript.outside-staff-priority = ##f
+ c4^\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
-placer @qq{Text3} au-dessus de @qq{Text4} dans l'exemple de la section
+placer « Text3 » au-dessus de « Text4 » dans l'exemple de la section
@ref{Comportement automatique}, plus haut. Il nous suffit pour cela de
regarder dans la Référence des propriétés internes ou dans le tableau
plus haut la priorité de @code{TextScript}, et d'augmenter la priorité
-de @qq{Text3} jusqu'à une valeur très haute :
+de « Text3 » jusqu'à une valeur très haute :
@cindex TextScript, exemple de dérogation
@cindex outside-staff-priority, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-c2^"Text1"
-c2^"Text2" |
+@lilypond[quote,fragment,ragged-right,verbatim]
+c''2^"Text1"
+c''2^"Text2" |
\once \override TextScript.outside-staff-priority = #500
-c2^"Text3"
-c2^"Text4" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
-S'il est vrai que cela place @qq{Text3} au-dessus de @qq{Text4}, ça le
-place aussi plus haut que @qq{Text2} tandis que @qq{Text4} dégringole.
+S'il est vrai que cela place « Text3 » au-dessus de « Text4 », ça le
+place aussi plus haut que « Text2 » tandis que « Text4 » dégringole.
Ce n'est peut-être pas si bien que ça. En fait, ce que nous aimerions
faire, c'est placer toutes les annotations à égale distance de la
portée. Pour cela, nous avons besoin d'espacer horizontalement les
commande @code{textLengthOn}.
-@node La commande \textLengthOn
-@unnumberedsubsubsec La commande @code{\textLengthOn}
-@translationof The \textLengthOn command
+@node La commande textLengthOn
+@unnumberedsubsubsec La commande @code{@bs{}textLengthOn}
+@translationof The textLengthOn command
@cindex notes, répartition selon le texte
@code{\textLengthOn} inverse ce comportement, faisant en sorte que les
notes soient espacées autant qu'il le faut pour s'adapter au texte :
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim]
\textLengthOn % Cause notes to space out to accommodate text
-c2^"Text1"
-c2^"Text2" |
-c2^"Text3"
-c2^"Text4" |
+c''2^"Text1"
+c''2^"Text2" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
La commande qui permet de revenir au comportement par défaut est
@cindex TextScript, exemple de dérogation
@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
-c2^"Tex" c'' |
-R1 |
-
-% This is too long to fit, so it is displaced upwards
-c,,2^"Text" c'' |
-R1 |
-
-% Turn off collision avoidance
-\once \override TextScript.outside-staff-priority = ##f
-c,,2^"Long Text " c'' |
-R1 |
-
-% Turn off collision avoidance
-\once \override TextScript.outside-staff-priority = ##f
-\textLengthOn % and turn on textLengthOn
-c,,2^"Long Text " % Spaces at end are honored
-c''2 |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ % This markup is short enough to fit without collision
+ c''2^"Tex" c'' |
+ R1 |
+
+ % This is too long to fit, so it is displaced upwards
+ c,,2^"Text" c'' |
+ R1 |
+
+ % Turn off collision avoidance
+ \once \override TextScript.outside-staff-priority = ##f
+ c,,2^"Long Text " c'' |
+ R1 |
+
+ % Turn off collision avoidance
+ \once \override TextScript.outside-staff-priority = ##f
+ \textLengthOn % and turn on textLengthOn
+ c,,2^"Long Text " % Spaces at end are honored
+ c''2 |
+}
@end lilypond
la portée comme les liaisons de phrasé ou les numéros de mesure. Cela
peut donner d'assez bons résultats, comme le montre cet exemple :
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\clef "bass"
-\key aes \major
-\time 9/8
-\dynamicUp
-bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
-ees,2.~\)\mf ees4 r8 |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \clef "bass"
+ \key aes \major
+ \time 9/8
+ \dynamicUp
+ bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
+ ees,2.~\)\mf ees4 r8 |
+}
@end lilypond
De toute façon, si les notes et les nuances qui leur sont liées sont
déplaçant davantage les nuances suivantes, mais le résultat peut ne
pas être très satisfaisant, comme le montre cet exemple artificiel :
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim,fragment]
\dynamicUp
-a4\f b\mf c\mp b\p
+\relative { a'4\f b\mf a\mp b\p }
@end lilypond
@noindent
-Si une telle situation devait survenir dans de la musique @qq{réelle},
+Si une telle situation devait survenir dans de la musique « réelle »,
il serait préférable d'espacer un peu plus les notes, de façon que les
indications de nuance puissent toutes se situer à la même distance de la
portée. S'il est possible de faire cela pour les textes de
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]
+@lilypond[quote,ragged-right,verbatim,fragment]
\dynamicUp
% Extend width by 1 staff space
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-a4\f b\mf c\mp b\p
+\relative { a'4\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
plus haut à propos des objets de portée (voir
@ref{Objets inclus dans la portée}).
Les queues de note, les liaisons de phrasé et de prolongation, les
-crochets, les nuances et les nolets peuvent facilement être
+crochets, les nuances et les n-olets peuvent facilement être
repositionnés de cette manière. En contrepartie, vous n'avez le choix
qu'entre deux positions, sans personnalisation possible.
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
les liaisons et les notes de différentes voix.
+@item
+@code{horizontal-shift}
+
+@cindex horizontal-shift, propriété
+@cindex notes, empilement
+@cindex empilement de notes
+@cindex notes, collisions
+@cindex collisions de notes
+@cindex shift, commandes
+@funindex \shiftOff
+@funindex shiftOff
+@funindex \shiftOn
+@funindex shiftOn
+@funindex \shiftOnn
+@funindex shiftOnn
+@funindex \shiftOnnn
+@funindex shiftOnnn
+
+Au sein d'une même voix, toutes les notes intervenant au même instant
+musical sont regroupées dans un empilement (une colonne) et est créé un
+objet @code{NoteColumn} afin de contrôler le positionnement horizontal
+de ce groupe de notes -- voir « Empilement de notes » dans
+@ref{Instanciation explicite des voix}. Si, et seulement si deux ou
+plusieurs empilements au sein d'un même contexte de portée ont une
+orientation de hampe identique et se produisent au même instant musical,
+les valeurs de leurs propriétés @code{horizontal-shift} permettront de
+les ordonner, les empilements de rang supérieur étant progressivement
+décalés pour éviter les chevauchements des têtes. Cette propriété est
+déterminée par les commandes @code{\voiceXXX} et peut se voir aménagée
+par une commande @code{\override} ou, plus habituellemnt, par les
+commandes @code{\shiftOn}. Notez bien que cette propriété ne fait
+qu'affecter un rang aux empilements pour leur décalage ; elle ne
+détermine en rien la magnitude du décalage, qui sera augmentera
+progressivement et selon un pas proprotionnel à la largeur des têtes de
+chaque rang. Le pas, généralement de la moitié de la largeur d'une
+tête, peut aller jusqu'à la pleine largeur de tête en cas de groupes
+resserrés.
+
@item
@code{force-hshift}
@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 (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 de déplacer un empilement selon l'unité appropriée aux colonnes
+permet de déplacer un empilement dans le cas de chevauchement
+d'empilements. Notez bien qu'elle sera sans effet en l'absence de
+chevauchement. Elle s'exprime en unité appropriée aux colonnes
de notes, à savoir la largeur des têtes de note de la première voix.
Son utilisation est réservée à des situations complexes dans lesquelles
les commandes habituelles @code{\shiftOn}
@cindex positions, propriété
Cette propriété est très utile pour ajuster manuellement l'inclinaison
-et la hauteur des barres de ligature, des liaisons et des nolets. Elle
+et la hauteur des barres de ligature, des liaisons et des n-olets. Elle
est suivie de deux nombres qui donnent la position des extrémités gauche
et droite 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 toutefois au fait que les liaisons et phrasés ne peuvent pas
être repositionnés n'importe où. LilyPond commence par dresser la liste
des emplacements possibles pour les liaisons et choisit par défaut la
-liaison qui @qq{semble la meilleure}. Si la propriété @code{positions}
+liaison qui « semble la meilleure ». Si la propriété @code{positions}
a été retouchée, la liaison la plus proche de la position demandée sera
retenue dans la liste.
@end table
@item Doigté @tab @code{Fingering}
@item Liaisons de phrasé @tab @code{Slur}
@item Liaisons de prolongation @tab @code{Tie}
-@item Nolets @tab @code{TupletBracket}
+@item N-olets @tab @code{TupletBracket}
@item Nuances (verticalement) @tab @code{DynamicLineSpanner}
@item Nuances (horizontalement) @tab @code{DynamicText}
@item Reprises / marques de texte @tab @code{RehearsalMark}
@cindex chevauchement de notation
En jouant sur la propriété @code{padding} (littéralement
-@qq{rembourrage}), on augmente (ou on diminue) la distance entre
+« rembourrage »), on augmente (ou on diminue) la distance entre
des symboles qui sont imprimés au-dessus ou en dessous des notes.
@cindex Script, exemple de dérogation
@cindex padding, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,relative=1,verbatim]
-c2\fermata
+@lilypond[quote,fragment,verbatim]
+c'2\fermata
\override Script.padding = #3
b2\fermata
@end lilypond
@cindex MetronomeMark, exemple de dérogation
@cindex padding, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,fragment,verbatim]
% This will not work, see below:
\override MetronomeMark.padding = #3
\tempo 4=120
-c1 |
+c'1 |
% This works:
\override Score.MetronomeMark.padding = #3
\tempo 4=80
-d1 |
+d'1 |
@end lilypond
Vous remarquerez dans le second exemple à quel point il est important de
@lilypond[quote,ragged-right,verbatim]
sesquisharp = \markup { \sesquisharp }
-\relative c'' {
- c4
+\relative {
+ c''4
% This prints a sesquisharp but the spacing is too small
\once \override Accidental.stencil = #ly:text-interface::print
\once \override Accidental.text = #sesquisharp
@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 DynamicLineSpanner, exemple de dérogation
@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
+@lilypond[quote,fragment,ragged-right,verbatim]
+\override DynamicLineSpanner.staff-padding = #3
+\relative { a'4\f b\mf a\p b\mp }
@end lilypond
@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é
-@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+@lilypond[quote,fragment,ragged-right,verbatim]
\voiceOne
-<a\2>
+<a''\2>
\once \override StringNumber.self-alignment-X = #RIGHT
-<a\2>
+<a''\2>
@end lilypond
des notes et silences simultanés. Voici un exemple de collision de ce
type :
-@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
-<< { c4 c c c } \\ { R1 } >>
+@lilypond[quote,verbatim,ragged-right]
+<< \relative { c'4 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{<<@{@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}.
@cindex MultiMeasureRest, exemple de dérogation
@cindex staff-position, exemple d'utilisation de la propriété
-@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+@lilypond[quote,verbatim,ragged-right]
<<
- { c4 c c c }
+ \relative { c'4 c c c }
\\
\override MultiMeasureRest.staff-position = #-8
{ R1 }
@cindex Fingering, exemple de dérogation
@cindex extra-offset, exemple d'utilisation de la propriété
-@lilypond[quote,fragment,relative=1,verbatim]
-\stemUp
-f4-5
+@lilypond[quote,fragment,verbatim]
+f'4-5
\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
-f4-5
+f'4-5
@end lilypond
@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
-@cindex ligatures de nolet, gestion manuelle
+@cindex contrôle des n-olets, liaisons, phrasés et ligatures
+@cindex gestion manuelle des n-olets, liaisons, phrasés et ligatures
+@cindex ligatures de n-olet, 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
+position et l'inclinaison des n-olets, coulés, liaisons de phrasé et
barres de ligature.
Voici un exemple où la liaison de phrasé recouvre la liaison
d'articulation :
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-a8 \( ( a'16 ) a \)
+@lilypond[quote,verbatim,ragged-right]
+\relative { a'8 \( ( a'16 ) a \) }
@end lilypond
@cindex PhrasingSlur, exemple de dérogation
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]
+@lilypond[quote,verbatim,fragment,ragged-right]
\once \override PhrasingSlur.positions = #'(2.5 . 4.5)
-a8 \( ( a'16 ) a \)
+a'8 \( ( a''16 ) a'' \)
@end lilypond
C'est déjà mieux, mais ne pourrait-on pas maintenant abaisser un
Voici un autre exemple. Comme nous pouvons le constater, les barres de
ligature chevauchent les liaisons de tenue :
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
{
\time 4/2
<<
- { c'1 ~ c'2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ \relative {
+ e''8 e e e
+ e e e e
+ f2 g
+ }
>>
<<
- { c'1 ~ c'2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ \relative {
+ e''8 e e e
+ e e e e
+ f2 g
+ }
>>
}
@end lilypond
{
\time 4/2
<<
- { c'1 ~ c'2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- {
+ \relative {
\override Beam.positions = #'(-1 . -1)
- e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g''
+ e''8 e e e
+ e e e e
+ f2 g
}
>>
<<
- { c'1 ~ c'2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ \relative {
+ e''8 e e e
+ e e e e
+ f2 g
+ \revert Beam.positions
+ }
>>
}
@end lilypond
@noindent
-Vous remarquerez que la retouche continue de s'appliquer au
-second bloc de croches de la première voix mais qu'il ne s'applique
-à aucune mesure de la deuxième voix.
+Vous remarquerez que la retouche continue de s'appliquer au second bloc
+de croches de la deuxième voix mais qu'il ne s'applique à aucune des
+ligatures de la première voix, même dans la seconde mesure. Dès que la
+dérogation ne doit plus s'appliquer, il suffit de l'annuler comme
+indiqué ici.
@node La propriété force-hshift
nous avions laissé dans cet état :
@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 }
+ { c''2 aes4. bes8 }
\\
{ <ees, c>2 des }
\\
@noindent
La note intermédiaire du premier accord, le la bémol à la quatrième
-voix, doit rester dans le même empilement que la note haute. Pour y
-remédier, nous réglons le @code{force-hshift} -- qui est une propriété
-de @code{NoteColumn} -- de cette note sur zéro.
+voix, doit rester dans le même empilement que la note haute, ce
+pourquoi nous utilisons un @code{\shiftOff}
Quant au second accord, il serait préférable que le fa s'aligne avec le
la et que la note la plus basse se positionne un peu plus sur la droite
pour éviter que les hampes se chevauchent. Pour cela, nous réglons le
@code{force-hshift} au niveau du @code{NoteColumn} du ré bémol de telle
sorte qu'il se déplace de la moitié d'un espace de portée vers la
-droite.
+droite et le @code{force-hshift} du fa sur zéro. Vous noterez la
+présence du @code{\once} qui évite la propagation de ces réglages
+au-delà de cet instantn musical particulier -- bien que la présence du
+@code{\once} et du second @code{\override} de la quatrième voix ne
+soient pas indispensables dans ce court extrait, ce ne serait pas
+montrer l'exemple que de les omettre.
Et voici le résultat final :
@cindex force-hshift, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 }
+ { c''2 aes4. bes8 }
\\
- {
- <ees, c>2
- \once \override NoteColumn.force-hshift = #0.5
- des2
- }
+ { <ees, c>2 \once \override NoteColumn.force-hshift = #0.5 des }
\\
\\
- {
- \override NoteColumn.force-hshift = #0
- aes'2 f4 fes
- }
+ { \once \shiftOff aes'2 \once \shiftOff f4 fes }
>> |
<c ees aes c>1 |
}
@c This example should not be indexed
@c line-width ensures no break
@lilypond[quote,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
<<
{ c,8 d fis bes a }
\new Voice {
% 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
}
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@ref{J'entends des Voix} et @ref{Instanciation explicite des voix}.
Nous opterons ici pour une déclaration explicite des voix du passage
polyphonique, puisque LilyPond est alors plus performant en matière
-d'évitement des collisions.
+d'évitement des collisions.
Commençons par saisir les notes comme appartenant à deux variables,
mettons en place l'ossature des portées dans un bloc @code{\Score} et
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4. g8 |
+ r2 c''4. g8 |
bes1~ |
\time 6/4
bes2. r8
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2 |
+lhMusic = \relative {
+ r2 <c' g ees>2 |
<d g, d>1 |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
bes1~ |
\time 6/4
bes2. r8
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1) |
r2. d,,4 r4 r |
r4
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
-@qq{arpège} et @qq{barre de mesure} dans l'index, on voit aisément qu'il
+« arpège » et « 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 facile ! Nous devons ensuite corriger la collision entre
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@end lilypond
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 @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 @qq{fusionnement de notes}
-dans l'index nous renvoie au chapitre @ruser{Résolution des collisions},
-et plus précisément aux commandes permettant de fusionner des notes en
-fonction de leur type et selon qu'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
+Dans le Tutoriel, il est indiqué comment insérer une indication de tempo
+à l'aide de la commande @code{\tempo} ; pas de problème, du coup, pour
+ajouter « Moderato ». 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 « fusionnement de notes » dans l'index nous
+renvoie au chapitre @ruser{Résolution des collisions}, et plus
+précisément aux commandes permettant de fusionner des notes en fonction
+de leur type et selon qu'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
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Start polyphonic section of four voices
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Start polyphonic section of four voices
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Start polyphonic section of four voices
% 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
}
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
* 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 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
@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
-temps normal, seules deux notes appartenant à une même voix
-peuvent être ainsi liées. La solution consiste à utiliser deux voix,
-dont l'une avec les notes liées
+Voici un exemple qui montre comment créer une liaison de prolongation
+entre des notes appartenant à des voix différentes. En temps normal,
+seules deux notes appartenant à une même voix peuvent être ainsi liées.
+La solution consiste à utiliser deux voix, dont l'une avec les notes
+liées
-@lilypond[quote,fragment,relative=2]
-<< { b8~ b8\noBeam } \\ { b[ g8] } >>
+@lilypond[quote]
+<< { b'8~ 8\noBeam } \\ { b'8[ g'] } >>
@end lilypond
@noindent
-et à rendre transparente la première hampe de cette voix ;
-on a alors l'impression que la liaison couvre les deux voix.
+et à supprimer la première hampe ascendante et le crochet dans cette
+voix ; on a alors l'impression que la liaison couvre les deux voix.
-@cindex Stem, exemple de dérogation
-@cindex transparent, exemple d'utilisation de la propriété
+@cindex Stem, exemple de suppression
+@cindex Flag, exemple de suppression
+@cindex @code{\omit}, exemple d'utilisation
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
- {
- \tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
- b8~ b\noBeam
- }
-\\
- { b8[ g] }
->>
-@end lilypond
-
-Pour être sûr que la hampe que nous avons rendue transparente
-n'empiète pas trop sur le trait de liaison, nous pouvons l'allonger en
-réglant la longueur (@code{length}) sur @code{8},
-
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
- {
- \tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
- \tweak Stem.length #8
- b8~ b8\noBeam
- }
-\\
- { b[ g8] }
->>
-@end lilypond
-
-
-@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 :
+@funindex \omit
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,fragment,verbatim]
<<
{
- \single \hide Stem
- \single \hide Flag
- \tweak Stem.length #8
- b8~ b\noBeam
+ \once \omit Stem
+ \once \omit Flag
+ b'8~ 8\noBeam
}
\\
- { b8[ g] }
+ { b'[ g8] }
>>
@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.
+@seealso
+Manuel d'initiation :
+@ref{Le préfixe once},
+@ref{La propriété stencil}.
@node Rendu MIDI d'un point d'orgue
@unnumberedsubsubsec Rendu MIDI d'un point d'orgue
@lilypond[quote,verbatim,ragged-right]
\score {
- \relative c'' {
+ \relative {
% Visible tempo marking
\tempo 4=120
- a4 a a
+ a'4 a a
\once \hide Score.MetronomeMark
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
@lilypond[quote,verbatim,ragged-right]
\score {
- \relative c'' {
+ \relative {
% Visible tempo marking
\tempo 4=120
- a4 a a
+ a'4 a a
\once \omit Score.MetronomeMark
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
global = { \key c \major \time 4/4 \partial 4 }
-SopranoMusic = \relative c' { c4 | e4. e8 g4 g | a4 a g }
-AltoMusic = \relative c' { c4 | c4. c8 e4 e | f4 f e }
-TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
-BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
+SopranoMusic = \relative { c'4 | e4. e8 g4 g | a4 a g }
+AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e }
+TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 }
VerseOne = \lyrics {
E -- | ter -- nal \emphasize Fa -- ther, | \normal strong to save,
@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)
(string?)
#{ <>^\markup \bold \box #string #})
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
@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)
(string?)
#@{ <>^\markup \bold \box #string #@})
@end example
@example
\include "definitions.ily"
-\relative c'' @{
+\relative @{
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
@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)
(string?)
#{ <>^\markup \bold \box #string #})
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
rapprocher des têtes de note. Déplaçons l'indication métronomique
au-dessus de la clef, au lieu de la laisser au-dessus de la première
note. Et pour finir, mon professeur de composition déteste les
-chiffrages de mesure en @qq{C}, nous allons donc le transformer en
-@qq{4/4}.
+chiffrages de mesure en « C », nous allons donc le transformer en
+« 4/4 ».
Cependant, ne changez pas le fichier @file{musique.ly}. Remplacez le
fichier @file{definitions.ily} par ceci :
@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)
(string?)
#@{ <>^\markup \bold \box #string #@})
@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)
(string?)
#{ <>^\markup \bold \box #string #})
}
}
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
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
+chiffrages de mesure en « C », mais moi je les aime bien. Copions
l'actuel @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
@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)
(string?)
#@{ <>^\markup \bold \box #string #@})
@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)
(string?)
#{ <>^\markup \bold \box #string #})
}
}
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
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
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
+fichiers de « feuille de style » pour mes projets. Je commence
chaque fichier de musique par @code{\include "../global.ily"} qui
contient :
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 @qq{Afficher le contenu du paquet}.
+et sélectionner « Afficher le contenu du paquet ».
@item Windows
Nous ouvrons @file{ly/property-init.ly} dans un éditeur de texte --
celui que vous avez l'habitude d'utiliser pour les fichiers @file{.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
+les commandes standard prédéfinies de LilyPond, comme @code{\tieUp} 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}
((0) (x11-color 'violet )) ; for B
)))
-\relative c' {
+\relative {
% Arrange to obtain color from color-notehead procedure
\override NoteHead.color = #color-notehead
a2 b | c2 d | e2 f | g2 a |