4.4.3 Objectes fora del pentagrama
Els objectes fora-del-pentagrama s’ubiquen automàticament per evitar les col·lisions. Hi ha diverses formes de sobreescriure la col·locació automàtica si la posició no resulta òptima.
La propietat outside-staff-priority (prioritat fora del pentagrama) | ||
L’ordre \textLengthOn | ||
| Posicionament dels matisos dinàmics | ||
| Escalat d’un objecte gràfic (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 baix
de la propietat outside-staff-priority s’ubiquen més a prop
del pentagrama, i així altres objectes fora-del-pentagrama
s’eleven 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 tots 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 objects 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 objectes gràfics que (potser) comencen
i acaben en diferents moments musicals, de manera que qualsevol
modificació a la prioritat outside-staff-priority de
l’objecte gràfic 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
d’escriure al començament de l’objecte d’extensió, que podria
incloure diversos reguladors o matissos dinàmics encadenats.
| Objecte de presentació | Prioritat | Controla la posició de: |
|---|---|---|
RehearsalMark | 1500 | Lletres d’assaig |
MetronomeMark | 1000 | Indicacions metronòmiques |
VoltaBracketSpanner | 600 | Capsetes de primera i segona vegada |
TextScript | 450 | Text a elements d’etiquetatge |
MultiMeasureRestText | 450 | Text sobre silencis de compàs complet |
OttavaBracket | 400 | Claudàtors 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 | Trinats mantinguts |
Heus ací un exemple que mostra la situació predeterminada d’alguns d’ells.
% 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' |
Aquest exemple també mostra com crear textos amb extensió (Text
Spanners): textos amb línies extensores a dalt d’una secció de
música. L’extensor abasta des de l’ordre \startTextSpan
fins l’ordre \stopTextSpan, i la composició del text es
defineix mitjançant l’ordre \override TextSpanner. Per
veure més detalls, consulteu
Extensions de text.
També es mostra la manera de crear claudàtors d’octva 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
el claudàtor 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 de 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' |
Observeu que alguns d’aquests objectes, concretament els números de
compàs, les indicacions metronòmiques i les lletres d’assaig,
s’acullen de forma predeterminada dins del context Score;
així doncs, heu d’assegurar-vos que utilitzeu el context adequat
quan se sobreescriuen les seves propietats.
De forma predeterminada, les lligadures d’expressió estan
classificades com a objectes dins-del-pentagrama, però sovint
apareixen a sobre del pentagrama si les notes que uneix són molt
agudes. Això pot portar a una posició molt elevada els objectes
fora-del-pentagrama com les articulacions, ja que la lligadura es
col·locarà en primer lloc. Es pot establir la propietat
avoid-slur de l’articulació al valor 'inside (per
dins) per portar-la a l’interior de la lligadura, però la
propietat avoid-slur és efectiva sols si la propietat
outside-staff-priority està també ajustada al valor
#f. De forma alternativa, la prioritat
outside-staff-priority de la lligadura es pot fixar a un
valor numèric per fer que es col·loqui en línia amb altres objectes
fora del pentagrama d’acord amb aquest valor. Heus ací 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 pode usar per
controlar la situació vertical dels objectes individuals, tot i
que els resultats poden no sempre ser desitjables. Suposeu que
voleu que “Text3” se situï por 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 hem de fer és
localitzar la prioritat de TextScript al RFI o a 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, eleva a “Text3” per sobre de “Text4” però
també l’eleva per sobre de “Text2”, i “Text4” ara cau cap
avall. 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 posar més
espai entre 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 l’etiquetatge
no ocupa cap espai horitzontal pel que fa a la disposició de la
música. L’ordre \textLengthOn inverteix aquest
comportament, fent que les notes portin tant d’espai com sigui
necessari per acomodar el text:
\textLengthOn % Cause notes to space out to accommodate 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 corresponent per posar
espai per a les marques d’assaig i les indicacions de temps es
control·la independentment amb les ordres \markLengthOn i
\markLengthOff.
El text d’etiquetatge també evita les notes que es projecten per
sobre del pentagrama. Si això no és el que desitgem, el
desplaçament automàtica cap a dalt es pot desactivar mitjançant
l’establiment de la prioritat a #f. Heus així un exemple
que mostra com el text d’etiquetatge interactua amb aquestes
notes.
\relative {
% This markup is short enough to fit without collision
c''2^"Tex" c'' |
R1 |
% This is too long to fit, so it is displaced upwards
c,,2^"Text" c'' |
R1 |
% Turn off collision avoidance
\once \override TextScript.outside-staff-priority = ##f
c,,2^"Long Text " c'' |
R1 |
% Turn off collision avoidance
\once \override TextScript.outside-staff-priority = ##f
\textLengthOn % and turn on textLengthOn
c,,2^"Long Text " % Spaces at end are honored
c''2 |
}
| [ << Ajustament de la sortida ] | [Part superior][Continguts][Índex][ ? ] | [ Plantilles >> ] | ||
| [ < L'ordre textLengthOn ] | [ Amunt : Objectes fora del pentagrama ] | [ Escalat d'un objecte gràfic (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 adosades, i flotaran per sota (o per sobre)
de tots els objects dins-del-pentagrama tals com 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 |
}
Tot i així, si les notes i les seves indicacions dinàmiques adossades estan molt a prop, la col·locació automàtic evitarà les col·lisions desplaçant les marques dinàmiques posteriors més lluny, tot i que pot no ser el lloc òptim, com mostra l’exemple següent més aviat artificial:
\dynamicUp
\relative { a'4\f b\mf a\mp b\p }
Si es presentés una situació semblant a música ‘real’, podria
ser preferible posar més espai entre les notes, de forma que totes
les marques dinàmiques puguin cabre a la mateixa distància
vertical des del pentagrama. Hem sigut capaços de fer això al
text d’etiquetatge utilitzant l’ordre \textLengthOn,
però no existeix una ordre equivalent per a les indicacions de
matís dinàmic. Per tant, haurem 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 objecte gràfic (grob)
En primer lloc hem d’aprendre com s’especifica la mida dels
objectes gràfics (grobs). Tots els objectes gràfics (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 distància 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 esquerra i dreta 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 objects gràfics (grobs) que contemplen el
grob-interface.
De forma predeterminada, els objectes fora-del-pentagrama reben
una amplada zero, de manera que poden solapar-se en la direcció
horitzontal. Això es fa mitjançant l’ajustament de fer que la dimensió
més a l’esquerra sigui igual a infinit i que la dimensió més a la
dreta sigui igual a menys infinit, establint el valor a
extra-spacing-width a '(+inf.0 . -inf.0). Així, per
assegurar que se superposen en la direcció horitzontal haurem de
sobreescriure aquest valor de extra-spacing-width per
donar-los una mica d’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 esquerra mitja unitat a l’esquerra i el
límit dret mitja unitat a la dreta:
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
Vegem si funciona en el nostre exemple anterior:
\dynamicUp
% Extend width by 1 staff space
\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 alineats 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 (emplenament
del pentagrama) que s’estudia en 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 > ] | ||
Altres idiomes: English, česky, deutsch, español, français, italiano, 日本語, nederlands.
Quant a selecció automàtica de l'idioma.