5.4.3 Objectes fora del pentagrama
Els objectes fora del pentagrama se situen automàticament per evitar les col·lisions. Hi ha diverses formes de sobreescriure la col·locació automàtica si el posicionat no resulta òptim.
La propietat outside-staff-priority (prioritat fora del pentagrama) | ||
L’ordre \textLengthOn | ||
Posicionament dels matisos dinàmics | ||
Escalat d’un «Grob» |
[ << Ajustament de la sortida ] | [Part superior][Continguts][Índex] | [ Plantilles >> ] |
[ < Objectes fora del pentagrama ] | [ Amunt : Objectes fora del pentagrama ] | [ L'ordre textLengthOn > ] |
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ó | Prioritat | Controla la posició de: |
---|---|---|
RehearsalMark | 1500 | Lletres d’assaig |
MetronomeMark | 1000 | Indicacions metronòmiques |
VoltaBracketSpanner | 600 | Caixetes de primer i segona vegada |
TextScript | 450 | Text en elements de marcatge |
MultiMeasureRestText | 450 | Text sobre silencis de compàs complet |
OttavaBracket | 400 | Indicadors d’octava alta i baixa |
TextSpanner | 350 | Objectes d’extensió de text |
DynamicLineSpanner | 250 | Totes les indicacions dinàmiques |
VoltaBracketSpanner | 100 | Números de compàs |
TrillSpanner | 50 | Trins 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' |
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' |
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 | }
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" |
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
.
L’ordre \textLengthOn
De forma predeterminada, el text produït mitjançant marcatge no
ocupa cap espai horitzontal en quant es refereix a la disposició
de la música. L’ordre \textLengthOn
inverteix aquest
comportament, fent que les notes resultin tan espaiades com sigui
necessari per encabir el text:
\textLengthOn % Fa que hi hagi més espai entre les notes per encabir el text c''2^"Text1" c''2^"Text2" | c''2^"Text3" c''2^"Text4" |
L’ordre per tornar al comportament predeterminat és
\textLengthOff
. De forma alternativa es pot usar
\once
amb \textLengthOn
si l’efecte s’ha de limitar
a un sol moment musical. El comportament d’espaiat corresponent
per a les indicacions d’assaig i les indicacions de tempo es
controla independentment amb les ordres \markLengthOn
y
\markLengthOff
.
El text de marcatge també evita les notes que es projecten per
sobre del pentagrama. Si això no és el que desitgem, el
desplaçament automàtic cap a dalt es pot desactivar mitjançant
l’establiment de la prioritat a #f
. Vet aquí un exemple
que mostra com el text de marcatge interactua amb aquestes notes.
\relative { % Aquest marcatge és suficientment curt per encabir sense col·lisió c''2^"Tex" c'' | R1 | % Això és massa llarg per encabir, per això és mou cap amunt c,,2^"Text" c'' | R1 | % Desactiva l'evitament de col·lisions \once \override TextScript.outside-staff-priority = ##f c,,2^"Long Text " c'' | R1 | % Desactiva l'evitament de col·lisions \once \override TextScript.outside-staff-priority = ##f \textLengthOn % i activa textLengthOn c,,2^"Long Text " % Es respecten els espais al final c''2 | }
[ << Ajustament de la sortida ] | [Part superior][Continguts][Índex] | [ Plantilles >> ] |
[ < L'ordre textLengthOn ] | [ Amunt : Objectes fora del pentagrama ] | [ Escalat d'un «Grob» > ] |
Posicionament dels matisos dinàmics
Les indicacions de matís dinàmic normalment es col·locaran per
sota del pentagrama, però es poden posicionar per sobre amb
l’ordre \dynamicUp
. Se situaran verticalment respecte a la
nota a la que van adossades, i flotaran per sota (o per sobre) de
tots els objectes dins-del-pentagrama com ara les lligadures de
fraseig i números de compàs. Això pot oferir resultats força
acceptables, com mostra aquest exemple:
\relative { \clef "bass" \key aes \major \time 9/8 \dynamicUp bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! | ees,2.~\)\mf ees4 r8 | }
Malgrat això, si les notes i les seves indicacions dinàmiques adossades estan massa a prop, la col·locació automàtica evitarà les col·lisions desplaçant les marques dinàmiques posteriors més lluny, tot i que aquest pot no ser el lloc òptim, com mostra el següent exemple més bé artificial:
\dynamicUp \relative { a'4\f b\mf a\mp b\p }
Si es presentés una situació semblant en música ‘real’, podria
ser preferible espaiar les notes una mica més entre sí, de forma
que totes les marques dinàmiques poden cabre a la mateixa
distància vertical des del pentagrama. Hem estat capaços de fer
això per al text de marcatge utilitzant l’ordre
\textLengthOn
, però no existeix una ordre equivalent per a
les indicacions de matís dinàmic. Per tant, hem d’esbrinar com
fer-ho utilitzant ordres \override
.
[ << Ajustament de la sortida ] | [Part superior][Continguts][Índex] | [ Plantilles >> ] |
[ < Posicionament dels matisos dinàmics ] | [ Amunt : Objectes fora del pentagrama ] | [ Espaiat vertical > ] |
Escalat d’un «Grob»
En primer lloc hem d’aprendre com s’especifica la mida dels
grobs. Tots els grobs tenen un punt de referència definit dins
d’ells que s’usa per col·locar-los respecte al seu objecte pare.
Aleshores, aquest punt del grob es posiciona a una distància
horitzontal, X-offset
, i una distancia vertical,
Y-offset
, a partir del seu pare. La dimensió horitzontal
de l’objecte ve donada per una parella de números,
X-extent
, que diu on estan els límits esquerre i dret
respecte del punt de referència. L’amplitud vertical es defineix
de forma semblant mitjançant una parella de números,
Y-extent
. Aquestes són propietats de tots els grobs que
contemplen grob-interface
.
De forma predeterminada, els objectes fora-del-pentagrama reben
una amplitud zero, de manera que poden solapar-se a la direcció
horitzontal. Això es fa mitjançant el truc de fer que la dimensió
més a l’esquerra sigui igual a menys infinit, establint el valor
de extra-spacing-width
a '(+inf.0 . -inf.0)
. Així,
per assegurar que no se superposen en la direcció horitzontal hem
de sobreescriure aquest valor de extra-spacing-width
per
donar-los una mica de espai addicional. Les unitats són l’espai
entre dues línies del pentagrama, de forma que hauria de ser
suficient moure el límit esquerre mitja unitat a l’esquerra i el
límit dret mitja unitat a la dreta:
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
Vejam si funciona al nostre exemple anterior:
\dynamicUp % Estén l'amplitud amb 1 espai de pentagrama \override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) \relative { a'4\f b\mf a\mp b\p }
Això té un aspecte millor, però potser hauríem preferit que les
indicacions de dinàmica estiguessin alineades sobre la mateixa
línia de base en lloc d’anar cap amunt i cap avall amb les notes.
La propietat que ho fa és staff-padding
(farciment de
pentagrama) que s’estudia a la secció dedicada a les col·lisions
(vegeu Col·lisions d’objectes).
[ << Ajustament de la sortida ] | [Part superior][Continguts][Índex] | [ Plantilles >> ] |
[ < Posicionament dels matisos dinàmics ] | [ Amunt : Objectes fora del pentagrama ] | [ Espaiat vertical > ] |