| [ << Retouche de partition ] | [Top][Contents][Index] | [ Modèles >> ] |
| [ < Objets hors de la portée ] | [ Up : Objets hors de la portée ] | [ La commande \textLengthOn > ] |
La propriété outside-staff-priority
Les objets avec la plus petite valeur de la propriété
outside-staff-priority sont placés au plus près de la
portée, tandis que les autres sont écartés autant qu’il faut pour
éviter les collisions. La outside-staff-priority est
définie dans la grob-interface ; elle est donc une
propriété commune à tous les objets de rendu. Par défaut, elle
est réglée sur #f pour tous les objets de la portée, et
porte une valeur numérique appropriée à chacun des objets
extérieurs à la portée, à mesure qu’ils sont créés. Une
annexe spécifique recense les différents objets concernés, avec leur
valeur par défaut.
Vous noterez au passage certaines particularités quant au nom des
objets. En effet, des objets à extension sont automatiquement créés
dans le but de pouvoir contrôler le positionnement vertical des
extrémités d’un grob qui commencerait et se terminerait à des
instants musicaux différents. C’est la raison pour laquelle modifier le
outside-staff-priority du grob sous-jacent n’aura aucun
effet. C’est par exemple le cas lorsque vous modifiez l’alignement d’un
objet Hairpin à l’aide de outside-staff-priority ;
puisque le soufflet est associé à un objet DynamicLineSpanner,
c’est sur celui-ci que doit porter l’effet de
outside-staff-priority. L’instruction dérogatoire se place au
début du bandeau qui constitue une ligne de base susceptible de contenir
plusieurs soufflets ou indications de nuance.
Voici un exemple qui montre le placement par défaut de certains d’entre eux.
% Set details for later Text Spanner \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Start Ottava Bracket \ottava #1 c''4 \startTextSpan % Add Dynamic Text and hairpin c''4\pp\< c''4 % Add Text Script c''4^Text | c''4 c'' % Add Dynamic Text and terminate hairpin c''4\ff c'' \stopTextSpan | % Stop Ottava Bracket \ottava #0 c'4 c' c' c' |
Cet exemple montre comment créer des extensions de texte (Text
Spanners en anglais) – texte avec des longues lignes au-dessus d’un
passage musical. L’extension s’étend depuis la commande
\startTextSpan jusqu’à la commande \stopTextSpan et le
format de texte est défini par la commande \override TextSpanner.
Pour de plus amples détails, voir
Indication textuelle avec extension.
Il montre aussi comment créer des marques d’octaviation.
Si les valeurs de outside-staff-priority par défaut ne donnent
pas les résultats escomptés, il suffit de modifier la priorité de l’un
de ces objets. Supposons que vous vouliez placer l’indication
d’octaviation sous le bandeau de texte, dans l’exemple précédent. Tout
ce que nous devons faire, c’est regarder la priorité de
OttavaBracket dans la Référence des propriétés internes ou dans
Valeurs par défaut de outside-staff-priority, et la ramener à
une valeur plus basse que celle de TextSpanner, en gardant à
l’esprit que OttavaBracket est créé dans le contexte
Staff :
% Set details for later Text Spanner \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Place following Ottava Bracket below Text Spanners \once \override Staff.OttavaBracket.outside-staff-priority = #340 % Start Ottava Bracket \ottava #1 c''4 \startTextSpan % Add Dynamic Text c''4\pp % Add Dynamic Line Spanner c''4\< % Add Text Script c''4^Text | c''4 c'' % Add Dynamic Text c''4\ff c'' \stopTextSpan | % Stop Ottava Bracket \ottava #0 c'4 c' c' c' |
N’oublions pas que certains objets, tels les numéros de mesure,
indications métronomiques et marques-repères, sont par défaut attachés
au contexte Score.
Les liaisons sont intrinsèquement des objets membres de la portée
(within-staff objects) bien qu’elles la surplombent lorsque les
notes auxquelles elles se rattachent sont relativement hautes. Ceci
peut avoir pour conséquence de remonter d’autant les objets externes
(outside-staff objects) tels les articulations. La propriété
avoid-slur de l’articulation en question peut se voir déterminée
à 'inside dans le but de « ramener » cette articulation à
l’intérieur de la liaison. Cette propriété avoid-slur ne sera
toutefois effective que dans la mesure où la
outside-staff-priority est désactivée (valeur #f). Dans
le même esprit, il est possible d’affecter une valeur numérique
particulière à la propriété outside-staff-priority d’une
liaison dans le but de regrouper la liaison avec les objets externes.
L’exemple suivant illustre ces deux différentes méthodes.
\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 | }
Le fait de changer la 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 « Text3 » au-dessus de « Text4 » dans l’exemple de la section
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 TextScript, et d’augmenter la priorité
de « Text3 » jusqu’à une valeur très haute :
c''2^"Text1" c''2^"Text2" | \once \override TextScript.outside-staff-priority = #500 c''2^"Text3" c''2^"Text4" |
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
notes pour laisser plus de place au texte. C’est possible grâce à la
commande textLengthOn.
| [ << Retouche de partition ] | [Top][Contents][Index] | [ Modèles >> ] |
| [ < Objets hors de la portée ] | [ Up : Objets hors de la portée ] | [ La commande \textLengthOn > ] |
![[image of music]](../4a/lily-e3c3e284.png)
![[image of music]](../6d/lily-861d5e44.png)
![[image of music]](../58/lily-86e2fb87.png)
![[image of music]](../41/lily-7d5281b6.png)