@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 47c20999a49c7c77167089761a4dd964884e53fe
+ Translation of GIT committish: ba8e0139b12ce248a00d8621104117f92bac34a6
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.18"
+@c \version "2.19.2"
@c Translators: Valentin Villenave, Jean-Charles Malahieude
@c Translation checkers: Gilles Thibault
Les contextes sont hiérarchisés :
@menu
+* Définitions de la sortie -- hiérarchie des contextes::
* Score -- le père de tous les contextes::
* Contextes de haut niveau -- les systèmes::
* Contextes de niveau intermédiaire -- les portées::
@end menu
+@node Définitions de la sortie -- hiérarchie des contextes
+@unnumberedsubsubsec Définitions de la sortie -- hiérarchie des contextes
+@translationof Output definitions - blueprints for contexts
+
+Les lignes qui suivent traitent de l'intérêt des définitions de sorties
+lorsque l'on travaille avec les contextes. Des exemples de définitions
+seront présentés plus avant -- voir
+@ref{Modification de tous les contextes d'un même type}.
+
+@cindex définition de sortie
+@cindex sortie, définitions
+@funindex \layout
+
+Alors que la musique écrite dans un fichier fait référence à des types
+ou noms de contexte, les contextes ne sont effectivement créés que
+lorsque la musique est interprétée. LilyPond interprète la musique sous
+le contrôle d'une « définition de sortie », voire différemment selon
+le cas et génère ainsi différents résultats. La définition de sortie
+appropriée pour une sortie imprimable est spécifiée à l'aide d'un
+@code{\layout}.
+
+@funindex \midi
+
+Une définition de sortie beaucoup plus simple sera utilisée pour
+produire une sortie Midi, spécifiée à l'aide d'un @code{\midi}.
+LilyPond utilise en interne plusieurs autres définitions de sortie,
+notamment dans le cadre du combinateur automatique de parties (voir
+@ref{Regroupement automatique de parties}) ou la reproduction d'extraits
+(voir @ref{Citation d'autres voix}).
+
+Les définitions de sortie ont pour objet non seulement de définir la
+relation entre les contextes, mais aussi leurs réglages par défaut. Si
+la plupart des adaptations prennent habituellement place au seind d'un
+bloc @code{\layout}, les réglages affectant le Midi ne seront effectifs
+que s'ils interviennent au sein d'un bloc @code{\midi}.
+
+
+@funindex autoBeaming
+
+Certains réglages affectent plusieurs sorties : par exemple, lorsque
+@code{autoBeaming} est désactivé dans un contexte, les ligatures sont
+considérées comme marquant un mélisme dans le but de faire correspondre
+la musique aux paroles comme indiqué dans
+@ref{Durée automatique des syllabes}. Cette correspondance est
+respectée autant à l'écrit qu'à l'oral. Des modifications apportées à
+@code{autoBeaming} par une définition de contexte au sein d'un bloc
+@code{\layout} ne seront pas reportées dans le bloc @code{\midi}
+correspondant ; paroles et musique ne seront alors plus synchrones dans
+le fichier Midi.
+
+@seealso
+Fichiers d'initialisation :
+@file{ly/engraver-init.ly},
+@file{ly/performer-init.ly}.
+
+
@node Score -- le père de tous les contextes
@unnumberedsubsubsec Score -- le père de tous les contextes
@translationof Score - the master of all contexts
toutes les portées.
Dès lors que LilyPond rencontre un bloc @code{\score @{@dots{}@}}
-ou @code{\layout @{@dots{}@}}, se crée implicitement un contexte
-@code{Score}.
+se crée implicitement un contexte @code{Score}.
@node Contextes de haut niveau -- les systèmes
@example
\new Voice = "tenor" @var{musique}
-...
+@dots{}
\new Lyrics \lyricsto "tenor" @var{paroles}
@end example
@ref{Modification d'un contexte particulier}.
@seealso
-
Manuel d'initiation :
@rlearning{Organisation du code source avec des variables}.
à nouveau pour ce contexte précédemment actif.
Une exception cependant à cette règle : en présence d'un contexte
-@code{Staff} ou dans une construction @code{<<...>>}, un seul des
+@code{Staff} ou dans une construction @code{<< @dots{} >>}, un seul des
contextes @code{Voice} inclus restera actif jusqu'à la fin du contexte
-@code{Staff} ou de la construction @code{<<...>>}, y compris s'il y
+@code{Staff} ou de la construction @code{<< @dots{} >>}, y compris s'il y
a des @qq{trous}. Le contexte alors persistant sera le premier
-rencontré dans la construction @code{@{...@}} sans tenir compte des
-éventuels @code{<<...>>} qu'elle pourrait contenir.
+rencontré dans la construction @code{@{ @dots{} @}} sans tenir compte
+des éventuels @code{<< @dots{} >>} qu'elle pourrait contenir.
Un contexte restera actif dès lors qu'il s'y passera toujours quelque
chose. Un contexte @code{Staff} restera actif si l'une des voix qu'il
@emph{etc.}
@}
@{
- @emph{..musique..}
+ @emph{@dots{}musique@dots{}}
@}
@end example
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
- } {
+ }
+ \relative c'' {
\time 3/4
c4 c c c c c
}
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
- } {
+ }
+ \relative c'' {
\time 2/4
c4 c c c c c
}
le bloc @code{\score} auquel ces modifications doivent s'appliquer -- au
moyen d'un bloc @code{\context}.
+Les réglages dévolus à la sortie MIDI viendront quant à eux se placer
+dans un bloc @code{\midi} -- voir
+@ref{Définitions de la sortie -- hiérarchie des contextes}.
+
@example
\layout @{
\context @{
la commande @code{\new} @var{type-de-contexte}.
@example
-\new Staff
-\with @{
- [réglages pour ce contexte pris individuellement]
-@} @{
-...
+\new Staff \with @{ [réglages pour ce contexte pris individuellement] @}
+@{
+ @dots{}
@}
@end example
+Dans la mesure où une telle « modification de contexte » est spécifiée
+au sein même de la musique, ses effets toucheront @b{toutes} les sorties
+(imprimable @b{et} Midi), contrairement à ce qui se passe lorsque les
+adaptations sont réalisées dans la définition d'une sortie.
+
La spécification des adaptations peut se faire de différentes manières :
@itemize
@lilypond[quote,verbatim]
\score {
\new Staff {
- \new Voice
- \with {
- \override Stem.thickness = #4.0
- }
+ \new Voice \with { \override Stem.thickness = #4.0 }
{
\relative c'' {
a4^"Hampes épaisses" a a a
a4 a a a
}
}
- \new Staff
- \with {
- fontSize = #-4
- } {
+ \new Staff \with { fontSize = #-4 }
+ {
\relative c'' {
a4^"Smaller font" a a a
a4 a a a
}
}
}
- \new Staff
- \with { \accidentalStyle dodecaphonic }
+ \new Staff \with { \accidentalStyle dodecaphonic }
{
- \new Voice
- \with { \dynamicUp }
+ \new Voice \with { \dynamicUp }
{
\relative c'' {
a4^"Nuances en surplomb" a a a
@item
en l'absence de quoi sera retenue la valeur par défaut issue du bloc
-@code{\context} approprié le plus récent dans le bloc @code{\layout},
+@code{\context} approprié le plus récent dans les blocs @code{\layout}
+ou @code{\midi},
@item
en l'absence de quoi s'appliqueront les réglages prédéfinis de LilyPond.
@ref{Contextes de bas niveau -- les voix},
@ref{La commande de fixation (set)},
@ref{La commande de dérogation (override)},
-@ref{Le bloc \layout}.
+@ref{Le bloc layout}.
@node Définition de nouveaux contextes
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
- \override Stem.transparent = ##t
- \override Flag.transparent = ##t
+ \hide Flag
\alias Voice
}
\context { \Staff
@example
\override NoteHead.style = #'slash
-\override Stem.transparent = ##t
-\override Flag.transparent = ##t
+\hide Stem
@end example
-Afin que tous ces graveurs puissent travailler de concert, on leur
-adjoint un sous-programme spécial, introduit par la commande
-@code{\type} : il s'agit de @code{Engraver_group},
+Tous ces modules doivent communiquer sous le contrôle du contexte. Les
+mécanismes permettant aux contextes de communiquer sont établis dès lors
+que le mot-clé @code{\type} précède le contexte. La plupart des
+contextes mentionnés au sein d'un bloc @code{\layout} seront de type
+@code{Engraver_group}. Certains contextes spécifiques, ainsi que ceux
+mentionnés dans les blocs @code{\midi}, reposent sur d'autres types de
+contexte. Recopier un contexte préexistant pour en modifier la
+définition lui affecte le type adéquat. Dans la mesure où notre exemple
+consiste à créer une définition de toute pièce, son type doit être
+explicitement spécifié.
@example
\type "Engraver_group"
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
- \override Stem.transparent = ##t
- \override Flag.transparent = ##t
+ \hide Flag
\alias Voice
@}
@end example
@}
@end example
-@seealso
+Pour être tout à fait complet, les modifications apportée à la
+hiérarchie des contextes devraient être répétés au niveau du bloc
+@code{\midi} de telle sorte que la sortie Midi dépende des mêmes
+relations.
+@seealso
Référence des propriétés internes :
@rinternals{Engraver_group},
@rinternals{Note_heads_engraver},
@subsection @code{\set} ou @code{\override}
@translationof set versus override
-@c TODO -- This section is probably unnecessary now.
+@c TODO -- Should't a bunch of that be explained earlier?
-@ignore
-Si les propriétés peuvent être modifiées de deux façons, par les
-commandes @code{\set} et @code{\override}, c'est qu'il y a deux types de
-propriétés.
+@funindex \set
+@funindex \override
-La propriété @code{fontSize} est une exception : c'est un raccourci, qui
-équivaudrait à saisir @w{@code{\override @dots{} #'font-size}} pour tous
-les objets textuels. Dans la mesure où il s'agit d'une manipulation
-très courante, une propriété spéciale a été créée. Elle doit être
-modifiée avec la commande @code{\set}.
+Les instructions @code{\set} et @code{\override} manipulent toutes deux
+des propriétés associées à des contextes. Dans tous les cas, ces
+propriétés tiennent compte de la hiérarchie des contextes : les
+propriétés qui n'ont pas été définies dans le contexte lui-même
+héritent des valeurs de leur contexte parent respectif.
+
+Les valeurs et durée de vie des propriétés d'un contexte sont dynamiques
+et ne sont accessibles qu'au moment où la musique est interprétée. Lors
+de la création d'un contexte, ses propriétés sont initialisées à partir
+de la définition du contexte correspondant et de ses éventuelles
+adaptations. Toute modification ultérieure ne sera obtenue que par des
+commandes d'adaptation des propriétés, libellées au sein même de la
+musique.
+
+Les définitions d'un objet graphique (@emph{graphical object} abrégé en
+@emph{grob}) constituent une catégorie spécifique de propriétés de
+contexte. Dans la mesure où leur structure, enregistrement et
+utilisation diffèrent des propriétés de contextes habituelles, on ne
+peut y accéder qu'à l'aide d'un jeu de commandes différent et font
+l'objet d'un traitement à part au sein de la documentation.
+
+Contrairement aux propriétés de contextes habituelles, les définitions
+de @emph{grob} sont subdivisées en propriétés de @emph{grob}. Un
+@emph{grob} est créé par un graveur lors de l'interprétation d'une
+expression musicale et reçoit ses propriétés initiales à partir de la
+définition de @emph{grob} en cours dans le contexte du graveur. Le
+graveur (ou tout autre « agent » de LilyPond) peut alors ajouter ou
+modifier des propriétés à cet objet, sans pour autant affecter la
+définition du @emph{grob} dans ce contexte.
+
+Ce que nous appelons « propriétés de @emph{grob} » dans le cadre
+de l'affinage par l'utilisateur sont en fait les propriétés de la
+définition d'un objet dans un contexte. Contrairement aux propriétés
+de contexte habituelles, les définitions d'un @emph{grob} doivent être
+enregistrées pour pouvoir garder trace de ses composants, les propriétés
+individuelles du @emph{grob} (ainsi que leurs sous-propriétés),
+séparément. Il sera dès lors possible de définir ces composants dans
+différents contextes et ainsi disposer d'une définition globale du
+@emph{grob} à l'instant où la création de cet objet assemblera les
+éléments relatifs aux différents contextes attachés au contexte en cours
+et à ses parents.
+
+Les définitions de @emph{grob} se manipulent à l'aide des commandes
+@code{\override} et @code{\revert}, et leur nom commence par une
+capitale (comme @samp{NoteHead}) alors que les propriétés de contexte
+ordinaires -- elles commencent par une minuscule -- se manipulent avec
+@code{\set} et @code{\unset}.
+
+@cindex tweak, relation avec @code{\override}
+@funindex \tweak
+@funindex \overrideProperty
-@end ignore
+Les instructions spéciales @code{\tweak} et @code{\overrideProperty}
+modifient les propriétés de @emph{grob} en court-circuitant totalement
+les propriétés de contexte. En fait, elles capturent les @emph{grobs}
+au moment de leur création pour y injecter directement des propriétés soit
+émanant d'un événement musical retouché, soit lorsqu'ils sont d'une
+qualité particulière.
@node Modification de listes associatives
Ce mode, activé par la commande @code{\markup}, permet d'interpréter les
saisies comme étant des @emph{markups} (annotations ou étiquettes) --
-voir @rusernamed{Text markup commands,Commandes pour le mode markup}.
+voir @ref{Commandes pour markup}.
@c silly work-around for texinfo broken-ness
@end ignore
@lilypond[verbatim,quote,relative=2]
-a~a
+a~ a
a
% increase the length of the tie
-\tweak minimum-length #5
-~a
+~ a
@end lilypond
@lilypond[verbatim,quote,relative=2]
d'articulation ou de phrasé.
@lilypond[verbatim,quote,relative=2]
-a( a)
+a( g)
a
-\tweak minimum-length #5
-( a)
+( g)
-a\( a\)
+a\( g\)
a
-\tweak minimum-length #5
-\( a\)
+\( g\)
@end lilypond
Certains objets requièrent un appel explicite à la procédure
@cindex stencil, suppression
+@funindex \omit
+
Tout objet de rendu se voit attribuer une propriété @code{stencil}.
Elle est par défaut définie par la fonction chargée de dessiner cet
objet. Lorsque cette propriété est désactivée de force -- en lui
a a a
@end lilypond
+Cette opération relativement courante fait l'objet du racourci
+@code{\omit} :
+
+@lilypond[quote,verbatim,relative=1]
+a1 a
+\omit Score.BarLine
+a a
+\undo \omit Score.BarLine
+a a a
+@end lilypond
+
@node Transparence des objets
@unnumberedsubsubsec Transparence des objets
@cindex transparent, objet
+@funindex \hide
+
Tout objet de rendu dispose d'une propriété de transparence, qui est par
défaut définie à @code{#f}. Le fait de l'activer rendra l'objet
transparent tout en préservant la place qu'il occupe.
a a
@end lilypond
+Cette opération relativement courante fait l'objet du racourci
+@code{\hide} :
+
+@lilypond[quote,verbatim,relative=2]
+a4 a
+\once \hide NoteHead
+a a
+@end lilypond
+
@node Blanchiment des objets
@unnumberedsubsubsec Blanchiment des objets
* Regroupement vertical d'objets graphiques::
* Modification des stencils::
* Modification de l'allure des éléments::
+* Modification de bandeaux avec rupture::
* Conteneurs requalifiants::
@end menu
lequel viendra s'aligner les indications de repère :
@lilypond[verbatim,quote,relative=1]
-% The rehearsal mark will be aligned to right edge of the Clef
+% The rehearsal mark will be aligned to the right edge of the Clef
\override Score.RehearsalMark.break-align-symbols = #'(clef)
\key a \major
\clef treble
\mark "↓"
e1
-% The rehearsal mark will be centered above the Time Signature
+% The rehearsal mark will be aligned to the left edge of the Time Signature
\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
\key a \major
\clef treble
@seealso
Manuel de notation :
-@ref{Text markup commands},
+@ref{Commandes pour markup},
@ref{Éléments graphiques dans du texte formaté},
@ref{La fonte Feta},
@ref{Mise en forme du texte}.
@lilypond[verbatim,quote,relative=1]
<<
- { e1~ e }
+ { e1~ 1 }
\\
{ r4 <g c,> <g c,> <g c,> }
>>
<<
{
\shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
- e1~ e
+ e1~ 1
}
\\
{ r4 <g c,> <g c,> <g c,> }
@rinternals{TieColumn}.
+@node Modification de bandeaux avec rupture
+@subsection Modification de bandeaux avec rupture
+@translationof Modifying broken spanners
+
+@menu
+* Utilisation de alterBroken::
+@end menu
+
+@node Utilisation de alterBroken
+@unnumberedsubsubsec Utilisation de @code{@bs{}alterBroken}
+@translationof Using alterBroken
+
+@cindex extenseur, modification
+@cindex bandeau, modification
+@cindex bandeau avec rupture, modification
+@cindex extension avec rupture, modification
+@funindex \alterBroken
+
+Lorsqu'un bandeau ou l'extension d'un objet rencontre un saut de ligne
+ou une rupture, chacun de ses tronçons hérite des attributs de l'objet
+originel. Par voie de conséquence, la modification d'une extension avec
+rupture produira les mêmes effets sur chacun des segments. Dans
+l'exemple ci-dessous, la modification apportée à @code{thickness}
+s'applique aussi bien avant qu'après le saut de ligne.
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+r2
+\once\override Slur.thickness = 10
+c8( d e f
+\break
+g8 f e d) r2
+@end lilypond
+
+La commande @code{\alterBroken} permet de modifier indépendamment
+l'apparence de chacune des parties d'un bandeau. Selon le cas, cette
+commande génèrera soit un @code{\override}, soit un @code{\tweak} qui
+s'appliquera à la propriété du bandeau.
+
+La commande @code{\alterBroken} répond à la syntaxe :
+
+@example
+[-]@code{\alterBroken} @var{propriété} @var{valeurs} @var{élément}
+@end example
+
+L'argument @var{valeurs} est constitué d'une liste de valeurs, une pour
+chaque tronçon. Lorsque @var{élément} est un nom d'objet graphique,
+tels @code{Slur} ou @code{Staff.PianoPedalBracket}, il en résulte un
+@code{\override} du type de @emph{grob} spécifié. Lorsque @var{élément}
+est une expression musicale comme « ( » ou « [ », en résulte cette même
+expression musicale à laquelle s'applique un @code{\tweak}.
+@c closing ) and ]
+
+Le tiret introduisant la commande @code{\alterBroken} est impératif dans
+le cadre d'un @code{\tweak} ; il est superflu pour un @code{\override}.
+
+Dans sa variante @code{\override}, la commande @code{\alterBroken} peut
+se préfixer d'un @code{\once} ou d'un @code{\temporary} qui seront
+annulés par un @code{\revert} suivi de la @var{propriété}.
+
+Le code ci-dessous applique un @code{\override} indépendant à chacun
+des segments du phrasé de l'exemple précédent :
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+r2
+\alterBroken thickness #'(10 1) Slur
+c8( d e f
+\break
+g8 f e d) r2
+@end lilypond
+
+La commande @code{\alterBroken} peut s'utiliser avec tout objet étendu,
+y compris @code{Tie}, @code{PhrasingSlur}, @code{Beam} et
+@code{TextSpanner}. Par exemple, un éditeur préparant une édition
+critique pourrait faire ressortir l'absence d'une partie de liaison de
+phrasé dans l'une des sources, en optant pour un tracé pointillé du
+seul segment ajouté. L'exemple ci-dessous illustre la manière de
+procéder, ici avec la variante @code{\tweak} de la commande :
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+% The empty list is conveniently used below, because it is the
+% default setting of dash-definition, resulting in a solid curve.
+c2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e
+\break
+g2 e\)
+@end lilypond
+
+Il est important de considérer que @code{\alterBroken} affectera à
+chaque portion d'un bandeau interrompu la valeur correspondante de
+@var{valeurs}. Si d'aventure il y a moins de valeurs que de tronçons,
+toute portion additionnelle se verra assigner une liste vide. Ceci peut
+conduire à des résultats inattendus dans le cas où la propriété de rendu
+ne bascule pas sur une liste vide par défaut. En pareil cas, chaque
+segment devrait se voir assigner une valeur appropriée.
+
+
+@knownissues
+Les sauts de ligne peuvent intervenir à différents endroits pour
+répondre à des modifications de mise en forme. Les réglages adoptés par
+@code{\alterBroken} peuvent devenir inadaptés si le bandeau n'est plus
+rompu ou est découpé en plus de segments que prévu. L'introduction
+explicite d'un @code{\break} peut alors pallier ces situations.
+
+La commande @code{\alterBroken} est inopérante sur les propriétés d'un
+bandeau qui sont traitées avant la procédure de saut de ligne, comme
+@code{direction}.
+
+@seealso
+Manuel d'extension :
+@rextend{Retouches complexes}.
+
+
@node Conteneurs requalifiants
@subsection Conteneurs requalifiants
@translationof Unpure-pure containers
@example
fonction =
#(define-music-function
- (parser location @var{arg1} @var{arg2} @dots{})
- (@var{type1?} @var{type2?} @dots{})
+ (parser location @var{arg1} @var{arg2}@dots{})
+ (@var{type1?} @var{type2?}@dots{})
#@{
@var{@dots{}musique@dots{}}
#@})
\once \override TextScript.padding = #padding
#})
-\relative c''' {
+\relative c'' {
c4^"piu mosso" b a b
\padText #1.8
- c4^"piu mosso" d e f
+ c4^"piu mosso" b a b
\padText #2.6
- c4^"piu mosso" fis a g
+ c4^"piu mosso" b a b
}
@end lilypond