X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Ffr%2Fnotation%2Fchanging-defaults.itely;h=94a8f38739f66e37b46935a4c2a49c2b0864f9b6;hb=e7aa6c445f463844dbaa52d38ea4aac2882b5601;hp=5524939594b3097a930d5635cb3ed7742bf955d3;hpb=dbfa425afb99a710c6442e18598066a1e623919c;p=lilypond.git diff --git a/Documentation/fr/notation/changing-defaults.itely b/Documentation/fr/notation/changing-defaults.itely index 5524939594..94a8f38739 100644 --- a/Documentation/fr/notation/changing-defaults.itely +++ b/Documentation/fr/notation/changing-defaults.itely @@ -1,13 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- + @ignore - Translation of GIT committish: 44c3a53cb34d08a57838ae56c407216277e4c3f0 + Translation of GIT committish: d46572826e777ed3e9fa4656535a6e9000f2ed9e When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.6" +@c \version "2.19.2" @c Translators: Valentin Villenave, Jean-Charles Malahieude @c Translation checkers: Gilles Thibault @@ -119,6 +120,7 @@ remaining ones without further explanation and with links to the IR. 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:: @@ -126,6 +128,62 @@ Les contextes sont hiérarchisés : @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 @@ -138,8 +196,7 @@ tonalité ; c'est donc là qu'il faut s'assurer que les différents 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 @@ -185,7 +242,7 @@ plusieurs contextes @code{Voice}. De même nature qu'un @code{Staff}, mais destiné à n'imprimer que du rythme. Quelle que soit la hauteur, les notes seront imprimées sur une -même et unique ligne. +même et unique ligne ; la sortie MIDI rendra les hauteurs saisies. @strong{@emph{TabStaff}} @@ -212,9 +269,11 @@ particulièrement adapté au style mensural de musique ancienne. @unnumberedsubsubsec Contextes de bas niveau -- les voix @translationof Bottom-level contexts - voices -Les contextes de niveau @qq{voix} initialisent un certain nombre de -propriétés et activent les graveurs appropriés. S'agissant de contextes -du plus bas niveau, ils ne sauraient contenir d'autre contexte. +Les contextes de niveau « voix » initialisent un certain nombre de +propriétés et activent les graveurs appropriés. Un contexte de bas +niveau est un contexte n'ayant aucun contexte enfant -- ou +@code{defaultchild}. Bien qu'ils puissent accepter ou contenir des +sous-contextes, ceux-ci devront être libellés et créés explicitement. @strong{@emph{Voice}} @@ -477,7 +536,7 @@ sont associées à de la musique : @example \new Voice = "tenor" @var{musique} -... +@dots{} \new Lyrics \lyricsto "tenor" @var{paroles} @end example @@ -494,7 +553,6 @@ un bloc @code{\with} -- voir @ref{Modification d'un contexte particulier}. @seealso - Manuel d'initiation : @rlearning{Organisation du code source avec des variables}. @@ -521,12 +579,12 @@ l'aide de la commande @code{\lyricsto} ou si des événements surviennent à 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 @@ -705,7 +763,7 @@ graveurs : @emph{etc.} @} @{ - @emph{..musique..} + @emph{@dots{}musique@dots{}} @} @end example @@ -753,14 +811,16 @@ peut désormais avoir sa propre métrique. \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 } @@ -849,6 +909,10 @@ indépendamment de la musique dans un bloc @code{\layout} -- placé dans 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 @{ @@ -1001,14 +1065,17 @@ prédéfinis par LilyPond, modifiés le cas échéant par un bloc 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 @@ -1020,10 +1087,7 @@ contexte : @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 @@ -1046,10 +1110,8 @@ en définissant directement une propriété de contexte : 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 @@ -1074,11 +1136,9 @@ en définissant directement une propriété de contexte : } } } - \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 @@ -1112,7 +1172,8 @@ contexte, @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. @@ -1127,7 +1188,7 @@ Manuel de notation : @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 @@ -1171,8 +1232,7 @@ jazz. \consists "Pitch_squash_engraver" squashedPosition = #0 \override NoteHead.style = #'slash - \override Stem.transparent = ##t - \override Flag.transparent = ##t + \hide Flag \alias Voice } \context { \Staff @@ -1205,49 +1265,56 @@ Tout d'abord, il convient de donner un nom à notre nouveau contexte : \name ImproVoice @end example -Comme il est très semblable à @code{Voice}, nous souhaitons que -toutes les commandes associées au @code{Voice} déjà existant restent -valables. D'où nécessité de la commande @code{\alias}, qui va -l'associer au contexte @code{Voice} : +Comme il est très semblable à un contexte @code{Voice}, nous +souhaitons que toutes les commandes associées au @code{Voice} déjà +existant restent valables. D'où nécessité de la commande +@code{\alias}, qui va l'associer au contexte @code{Voice} : @example \alias Voice @end example Ce contexte doit pouvoir imprimer des notes et des indications -textuelles ; on ajoute donc les graveurs appropriés : +textuelles ; on ajoute donc les graveurs appropriés ainsi que celui +dévolu au regroupement sous forme de colonne des notes, hampes et +silences qui interviennent au même moment musical : @example \consists "Note_heads_engraver" \consists "Text_engraver" +\consists "Rhythmic_column_engraver" @end example -Cependant, on veut que les notes s'affichent toutes au centre de -la portée : +Toutes les notes devraient s'afficher au centre de la portée : @example \consists "Pitch_squash_engraver" squashedPosition = #0 @end example -Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes -créées par le @rinternals{Note_heads_engraver}, et les « écrase » pour -qu'elles aient toutes la même position verticale, définie par -@code{squashedPosition} : ici il s'agit de la valeur @code{0}, -c'est-à-dire la ligne du milieu. +Le graveur @code{Pitch_squash_engraver} intercepte les notes créées par +le @code{Note_heads_engraver}, et les « écrase » pour qu'elles aient +toutes la même position verticale, définie par @code{squashedPosition} : +ici il s'agit de la valeur @code{0}, c'est-à-dire la ligne du milieu. On veut que les notes aient la forme d'une barre oblique, sans aucune hampe : @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" @@ -1261,11 +1328,11 @@ Récapitulons ; on se retrouve avec le bloc suivant : \type "Engraver_group" \consists "Note_heads_engraver" \consists "Text_engraver" + \consists "Rhythmic_column_engraver" \consists "Pitch_squash_engraver" squashedPosition = #0 \override NoteHead.style = #'slash - \override Stem.transparent = ##t - \override Flag.transparent = ##t + \hide Flag \alias Voice @} @end example @@ -1275,7 +1342,7 @@ Récapitulons ; on se retrouve avec le bloc suivant : Ce n'est pas tout. En effet, on veut intégrer le nouveau contexte @code{ImproVoice} dans la hiérarchie des contextes. Tout comme le contexte @code{Voice}, sa place est au sein du contexte @code{Staff}. -Nous allons donc modifier le contexte @code{Staff}, +Nous allons donc modifier la définition du contexte @code{Staff}, au moyen de la commande @code{\accepts} : @example @@ -1320,6 +1387,19 @@ On peut alors saisir la musique, comme dans l'exemple plus haut : @} @end example +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}, +@rinternals{Text_engraver}, +@rinternals{Rhythmic_column_engraver}, +@rinternals{Pitch_squash_engraver}. + @node Ordonnancement des contextes @subsection Ordonnancement des contextes @@ -1339,33 +1419,43 @@ la « liste d'agréments » du contexte englobant se retrouveront en dessous de celui-ci au lieu d'y être imbriqués. La liste des « agréments » d'un contexte se gère à l'aide des -instructions @code{\accepts} et @code{\denies} -- @code{\accepts} pour +instructions @code{\accepts} ou @code{\denies} -- @code{\accepts} pour ajouter un contexte à la liste, et @code{\denies} pour retirer -l'agrément. Il est par exemple peu conventionnel que les accords nommés -apparaissent dans un contexte @code{Staff} ; autrement dit, le contexte -@code{ChordNames} ne fait pas partie de la « liste d'agréments » du -contexte @code{Staff} par défaut. Néanmoins, et s'il devait en être -ainsi, vous pourriez le spécifier. +l'agrément. + +Par exemple, on ne trouve normalement pas de portées regroupées par un +crochet au sein d'un groupe matérialisé par une accolade et des barres +d'un seul tenant ; un @code{GrandStaff} n'accepte donc pas, par défaut, +d'englober un @code{StaffGroup}. @lilypond[verbatim,quote] \score { - \new Staff { - c' d' e' f' - \chords { d1:m7 b1:min7.5- } - } + \new GrandStaff << + \new StaffGroup << + \new Staff { c'1 } + \new Staff { d'1 } + >> + \new Staff { \set Staff.instrumentName = bottom f'1 } + >> } @end lilypond +Néanmoins, et grâce à une instruction @code{\accepts}, un +@code{StaffGroup} peut se voir ajouté au contexte @code{GrandStaff} : + @lilypond[verbatim,quote] \score { - \new Staff { - c' d' e' f' - \chords { d1:m7 b1:min7.5- } - } + \new GrandStaff << + \new StaffGroup << + \new Staff { c'1 } + \new Staff { d'1 } + >> + \new Staff { \set Staff.instrumentName = bottom f'1 } + >> \layout { \context { - \Staff - \accepts "ChordNames" + \GrandStaff + \accepts "StaffGroup" } } } @@ -1377,10 +1467,25 @@ C'est par exemple le cas du contexte @code{VaticanaStaff}, réplique du contexte @code{Staff} au sein duquel le contexte @code{VaticanaVoice} se substitue au contexte @code{Voice} dans la « liste d'agrément ». +@cindex contextes implicites +@cindex implicites, contextes +@funindex \defaultchild + Gardez à l'esprit que, face à une instruction qui ne s'appliquerait à aucun contexte déjà existant, LilyPond créera un nouveau contexte -implicite. Ceci peut engendrer une nouvelle portée ou une autre -partition. +implicite. + +Lors de la définition d'un contexte, les types de contextes +sous-jascents susceptibles d'être créés implicitement sont spécifiés à +l'aide d'une commande @code{\defaultchild}. Un certain nombre +d'événements musicaux requièrent un contexte de plus bas niveau ; face à +un tel événement, LilyPond crée autant de « sous-contextes » que +nécessaire, jusqu'au contexte ne comportant aucun @emph{defaultchild}. + +La création implicite de contexte peut donc finir par engendrer de +manière intempestive une nouvelle portée ou une autre partition. +L'utilisation d'une instruction @code{\new} pour créer explicitement des +contextes permet d'éviter ces problèmes. @cindex alignAboveContext @cindex alignBelowContext @@ -2487,20 +2592,69 @@ pour la première rencontrée dans le fichier source. @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 @@ -2712,7 +2866,7 @@ précédemment saisie. 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 @@ -3037,11 +3191,11 @@ Cette propriété est sans effet sur : @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] @@ -3065,15 +3219,15 @@ Cette propriété permet aussi de jouer sur l'envergure d'une liaison 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 @@ -3319,6 +3473,8 @@ certains objets ; elles sont couvertes par une rubrique spécifique. @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 @@ -3334,6 +3490,17 @@ a a 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 @@ -3341,6 +3508,8 @@ a a a @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. @@ -3351,6 +3520,15 @@ a4 a 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 @@ -3477,7 +3655,7 @@ ces réglages par défaut. @item @code{KeySignature} @tab @code{Staff} @tab @code{begin-of-line-visible} @c omit LeftEdge until it can be explained -td @c @item @code{LeftEdge} @tab @code{Score} @tab @code{center-invisible} -@item @code{OctavateEight} @tab @code{Staff} @tab @code{begin-of-line-visible} +@item @code{ClefModifier} @tab @code{Staff} @tab @code{begin-of-line-visible} @item @code{RehearsalMark} @tab @code{Score} @tab @code{end-of-line-invisible} @item @code{TimeSignature} @tab @code{Staff} @tab @code{all-visible} @@ -3511,7 +3689,7 @@ ligne, à moins d'être différent de 1. aucune. Vous devrez utiliser @code{begin-of-line-invisible} pour les voir et @code{all-invisible} pour les masquer. @item Armure -- voir ci-après. -@item Indication d'octaviation -- voir ci-après. +@item Modificateur de clef -- voir ci-après. @end itemize @@ -3519,7 +3697,7 @@ voir et @code{all-invisible} pour les masquer. @unnumberedsubsubsec Considérations spécifiques @translationof Special considerations -@strong{@emph{Visibilité après changement explicite}} +@subsubsubheading Visibilité après changement explicite @cindex armure, visibilité après changement explicite @cindex explicitKeySignatureVisibility @@ -3571,7 +3749,7 @@ f4 g a b f4 g a b @end lilypond -@strong{@emph{Visibilité des altérations de précaution}} +@subsubsubheading Visibilité des altérations de précaution L'impression d'altérations de précaution au moment d'un changement explicite de tonalité sera annulée dès lors que vous aurez désactivé la @@ -3594,7 +3772,7 @@ permettront d'indiquer le changement de tonalité. @c TODO Add visibility of cautionary accidentals before notes -@strong{@emph{Barres de mesure automatiques}} +@subsubsubheading Barres de mesure automatiques @cindex automaticBars @cindex barres de mesure, suppression @@ -3612,21 +3790,23 @@ intervenir qu'à l'occasion d'un @code{\bar} explicite. @c TODO Add example -@strong{@emph{Clefs octaviées}} +@subsubsubheading Clefs transposées -@cindex octaviation, visibilité de la clef -@cindex visibilité d'un clef octaviée -@cindex clef, visibilité de l'octaviation +@cindex octaviation +@cindex clef transposée, visibilité +@cindex visibilité d'une clef transposée +@cindex clef, visibilité de la transposition -L'indication d'octaviation d'une clef est produite par l'objet de rendu -@code{OctavateEight}. Sa visibilité étant gérée par héritage direct de -l'objet @code{Clef}, nul n'est besoin de forcer un quelconque -@code{break-visibility} au niveau des objets @code{OctavateEight} pour -éliminer une indication d'octaviation lorsque la clef est invisible. +L'indication de transposition d'une clef est produite par l'objet +de rendu @code{ClefModifier}. Sa visibilité étant gérée par +héritage direct de l'objet @code{Clef}, nul n'est besoin de forcer +un quelconque @code{break-visibility} au niveau des objets +@code{ClefModifier} pour éliminer une indication de transposition +lorsque la clef est invisible. Lors d'un changement explicite de clef, la propriété @code{explicitClefVisibility} gère à la fois le symbole de la clef et -l'indication d'octaviation qui lui est attachée. +l'indication de transposition qui lui est attachée. @seealso Manuel d'initiation : @@ -3765,6 +3945,7 @@ approches permettant de fignoler l'apparence d'une partition. * Regroupement vertical d'objets graphiques:: * Modification des stencils:: * Modification de l'allure des éléments:: +* Modification de bandeaux avec rupture:: * Conteneurs requalifiants:: @end menu @@ -4019,7 +4200,7 @@ example shows the difference: @ignore -@c unnumberedsubsubsec Utilisation de @code{centered-on-parent} +@unnumberedsubsubsec Utilisation de @code{centered-on-parent} @c Cannot document as they do not seem to operate consistently on all objects -td @c TODO investigate further @@ -4042,17 +4223,17 @@ nous citerons @code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar}, @code{left-edge}, @code{key-cancellation}, @code{key-signature}, et @code{time-signature}. -Ces indications et numéros de mesure sont par défaut centrés -horizontalement au-dessus de l'objet : +Chaque objet possède son propre point de référence par défaut, sur +lequel viendra s'aligner les indications de repère : @lilypond[verbatim,quote,relative=1] -% The rehearsal mark will be centered above 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 @@ -4079,13 +4260,13 @@ l'alignement se fera sur la barre de mesure ou, dans le cas où la barre de mesure est invisible, à l'endroit même où la barre prendrait place. @lilypond[verbatim,quote,relative=1] -% The rehearsal mark will be centered above the Key Signature +% The rehearsal mark will be aligned to the right edge of the Key Signature \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e1 -% The rehearsal mark will be centered above the Clef +% The rehearsal mark will be aligned to the right edge of the Clef \set Staff.explicitKeySignatureVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major @@ -4107,20 +4288,20 @@ comme l'illustre l'exemple suivant. Toutefois, si la partition comporte plusieurs portées, ce réglage devra apparaître dans chacune des portées. @lilypond[verbatim,quote,relative=1] -% The RehearsalMark will be centered above the Key Signature +% The RehearsalMark will be aligned with the right edge of the Key Signature \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e1 -% The RehearsalMark will be aligned with the left edge of the Key Signature -\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT +% The RehearsalMark will be centered above the Key Signature +\once \override Score.KeySignature.break-align-anchor-alignment = #CENTER \mark "↓" \key a \major e1 -% The RehearsalMark will be aligned with the right edge of the Key Signature -\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT +% The RehearsalMark will be aligned with the left edge of the Key Signature +\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \key a \major \mark "↓" e1 @@ -4214,7 +4395,7 @@ commande de @emph{markup} @code{\musicglyph} -- voir @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}. @@ -4284,7 +4465,7 @@ des plus heureuses, même en optant pour un @code{\tieDown}. @lilypond[verbatim,quote,relative=1] << - { e1~ e } + { e1~ 1 } \\ { r4 } >> @@ -4332,7 +4513,7 @@ de portée : << { \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie - e1~ e + e1~ 1 } \\ { r4 } @@ -4457,6 +4638,117 @@ Référence des propriétés internes : @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 @@ -4598,8 +4890,8 @@ forme @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{}} #@}) @@ -4686,12 +4978,12 @@ padText = \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