La propietat outside-staff-priority (prioritat fora del pentagrama)

Els objectes fora-del-pentagrama es col·loquen automàticament per evitar les col·lisions. Els objectes que tenen el valor més bais de la propietat outside-staff-priority se situen més a prop del pentagrama, i llavors altres objectes fora-del-pentagrama s’aixequen tant com sigui necessari per evitar la col·lisió. La prioritat outside-staff-priority es defineix al grob-interface i així és una propietat de totes els objectes de presentació. De forma predeterminada s’estableix a #f per a tots els objectes dins-del-pentagrama, i a un valor numèric adequat a cada objecte fora-del-pentagrama quan es crea l’objecte. La taula següent presenta els valors numèrics predeterminats per a alguns dels objectes fora-del-pentagrama més comuns.

Observeu els noms una mica inusuals d’alguns dels objectes: els objectes d’extensió es creen automàticament per controlar el posicionament vertical dels grobs que (potser) comencen i acaben en diferents moments musicals, de manera que qualsevol modificació a la prioritat outside-staff-priority del grob subjacent no té cap efecte. Per exemple, canviar la outside-staff-priority de l’objecte de regulador Hairpin no té efecte sobre la posició vertical dels reguladors: en comptes d’això, hem de canviar la outside-staff-priority de l’objecte associat DynamicLineSpanner. Aquesta sobreescriptura s’ha de fer al començament de l’objecte d’extensió, que podria incloure diversos reguladors o matisos dinàmics encadenats.

Objecte de presentacióPrioritatControla la posició de:
RehearsalMark1500Lletres d’assaig
MetronomeMark1000Indicacions metronòmiques
VoltaBracketSpanner600Caixetes de primer i segona vegada
TextScript450Text en elements de marcatge
MultiMeasureRestText450Text sobre silencis de compàs complet
OttavaBracket400Indicadors d’octava alta i baixa
TextSpanner350Objectes d’extensió de text
DynamicLineSpanner250Totes les indicacions dinàmiques
VoltaBracketSpanner100Números de compàs
TrillSpanner50Trins mantinguts

Vet aquí un exemple que mostra la situació predeterminada d’alguns d’ells.

% Estableix els detalls per a un Text Spanner posterior
\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
% Col·loca la indicació dinàmica a sobre del pentagrama
\dynamicUp
% Inicia l'indicador d'octava
\ottava #1
c''4 \startTextSpan
% Afegeix el text de la indicació dinàmica i el símbol
c''4\pp\<
c''4
% Afegeix el fragment de text
c''4^Text |
c''4 c''
% Afegeix el text de la dinàmica i finalitza el símbol
c''4\ff c'' \stopTextSpan |
% Atura l'indicador d'octava
\ottava #0
c'4 c' c' c' |

[image of music]

Aquest exemple també mostra com crear textos amb extensió (Text Spanners): textos amb línies extensores per sobre d’una secció de música. L’extensor abasta des de l’ordre\startTextSpan fins l’ordre \stopTextSpan, i el format del text es defineix per mitjà de l’ordre \override TextSpanner. Per veure més detalls, consulteu Extensions de text.

També mostra la manera de crear indicadors d’octava alta i baixa.

Si els valors predeterminats de outside-staff-priority no us ofereixen les col·locacions desitjades es pot sobreescriure la prioritat de qualssevol dels objectes. Suposeu que volguéssim que l’indicador d’octava estigués situat per sota de l’element extensor de text a l’exemple de dalt. Tot el que hem de fer és localitzar la prioritat de OttavaBracket al RFI o en les taules anteriors, i reduir-lo a un valor inferior al de TextSpanner, recordant que OttavaBracket es crea dins del context Staff:

% Estableix els detalls per a un Text Spanner posterior
\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
% Ubica els indicadors de dinàmica a sobre del pentagrama
\dynamicUp
% Posa els següent indicador d'octava a sota dels Text Spanners
\once \override Staff.OttavaBracket.outside-staff-priority = #340
% Inicia l'indicador d'octava
\ottava #1
c''4 \startTextSpan
% Afegeix el text de la dinàmica
c''4\pp
% Afegeix l'extensor de la línia de dinàmica
c''4\<
% Afegeix el fragment de text
c''4^Text |
c''4 c''
% Afegeix el text de la dinàmica
c''4\ff c'' \stopTextSpan |
% Atura l'indicador d'octava
\ottava #0
c'4 c' c' c' |

[image of music]

Observeu que alguns d’aquests objectes, concretament els números de compàs, les indicacions metronòmiques i les lletres d’assaig, es fiquen de forma predeterminada dins del context Score; així doncs, us heu d’assegurar que utilitzeu el context adequat quan se sobreescriuen les propietats.

De forma predeterminada, les lligadures d’expressió estan classificades com objectes dins-del-pentagrama, però amb freqüència apareixen a sobre del pentagrama si les notes que uneixen són molt agudes. Això pot empènyer els objectes fora-del-pentagrama com les articulacions a una posició molt elevada, atès que la lligadura es col·locarà en primer lloc. La propietat avoid-slur de l’articulació es pot establir al valor 'inside (per dins) per portar-la a l’interior de la lligadura, però la propietat avoid-slur és efectiva sols si la prioritat outside-staff-priority està també establerta al valor #f. De forma alternativa, la prioritat outside-staff-priority de la lligadura es pot fixar en un valor numèrica per fer que se situï en línia amb altres objectes fora del pentagrama d’acord amb aquest valor. Vet aquí un exemple que mostra l’efecte dels dos mètodes:

\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 |
}

[image of music]

Els canvis a outside-staff-priority també es poden usar per controlar la ubicació vertical dels objectes individuals, tot i que els resultats poden no ser sempre desitjables. Suposeu que voleu que “Text3” se situï per sobre de “Text4” a l’exemple sota l’epígraf Comportament Automàtic de més a dalt (vegeu Comportament automàtic). Tot el que estem fer és localitzar la prioritat de TextScript en el RFI o en les taules de dalt, i augmentar la prioritat de “Text3” fins un valor superior:

c''2^"Text1"
c''2^"Text2" |
\once \override TextScript.outside-staff-priority = #500
c''2^"Text3"
c''2^"Text4" |

[image of music]

Això, certament, aixeca a “Text3” per sobre de “Text4”, però també l’aixeca per sobre de “Text2”, i “Text4” ara cau cap a baix. Potser no sigui tan bona idea. I si el que realment volem fer és posicionar totes les anotacions a la mateixa distància per sobre del pentagrama? Per fer-lo, ens caldrà clarament espaiar les notes en sentit horitzontal per fer lloc per al text Això es fa usant l’ordre textLengthOn.


Manual d’aprenentatge del GNU LilyPond v2.25.15 (branca de desenvolupament).