5.4.7 Visibilitat dels objectes
Hi ha quatre formes principals en les quals es pot controlar la
visibilitat dels objectes de presentació: es pot eliminar el seu
segell, es poden tornar transparents, es poden pintar de blanc, o
es pot sobreescriure la seva propietat break-visibility
.
Les tres primeres s’apliquen a totes els objectes de presentació;
l’última sols a uns pocs: els objectes divisibles. El
Manual d’aprenentatge introdueix aquestes quatre tècniques, vegeu
Visibilitat i color dels objectes.
Hi ha també algunes altres tècniques que són específiques de certs objectes de presentació. S’estudien sota Consideracions especials.
Eliminació del segell | ||
Fer transparents els objectes | ||
Pintar els objectes de blanc | ||
Ús de break-visibility (visibilitat al salt) | ||
Consideracions especials |
Eliminació del segell
Tots els objectes de presentació tenen una propietat stencil
(segell). De forma predeterminada està establerta a la funció
específica que dibuixa aquest objecte. Si se sobreescriu aquesta
propietat a #f
no es crida cap funció i l’objecte no es
dibuixa. L’acció predeterminada es pot recuperar amb \revert
.
a1 a \override Score.BarLine.stencil = ##f a a \revert Score.BarLine.stencil a a a
Aquesta operació, força comú, té la forma abreujada
\omit
com a drecera:
a1 a \omit Score.BarLine a a \undo \omit Score.BarLine a a a
Fer transparents els objectes
Tots els objectes de presentació tenen una propietat transparent
que de forma predeterminada està establerta a #f
. Si es
fixa a #t
l’objecte encara ocupa espai però és invisible.
a'4 a' \once \override NoteHead.transparent = ##t a' a'
Aquesta operació, força comuna, té la forma abreujada \hide
com a sota:
a'4 a' \once \hide NoteHead a' a'
Pintar els objectes de blanc
Tots els objectes de presentació tenen una propietat de color que
de forma predeterminada està establerta a black
(negre).
Si se sobreescriu a white
(blanc) l’objecte serà
indistinguible del fons blanc. Malgrat això, si l’objecte creua a
altres objectes, el color dels punts de creuament queda determinat
per l’ordre en el qual es dibuixen aquests objectes, cosa que pot
deixar una imatge fantasma de l’objecte blanc, com pot veure’s aquí:
\override Staff.Clef.color = #white a'1
Es pot evitar això canviant l’ordre d’impressió dels objectes.
Tots els objectes de presentació tenen una propietat
layer
(capa) que s’ha d’establir a un valor enter. Els
objectes amb el valor de layer
més baix es dibuixen primer,
després es dibuixen els objectes amb valors més alts es dibuixen a
sobre dels que tenen valors més baixos. De forma predeterminada,
gairebé tots els objectes tenen assignada un valor layer
de
1
, tot i que alguns objectes, entre ells el pentagrama i
les línies divisòries, StaffSymbol
i BarLine
, tenen
assignat un calor de 0
. L’ordre d’impressió dels objectes
amb el mateix valor de layer
és indeterminat.
A l’exemple de dalt, la clau blanca, amb un valor
layer
predeterminat de 1
, es dibuixa després de les
línies del pentagrama (valor layer
predeterminat de
0
), sobreimpressionant-les. Per canviar-lo, s’ha de donar
a l’objecte Clef
un valor de layer
més baix, diguem-ne
-1
, perquè es dibuixi abans:
\override Staff.Clef.color = #white \override Staff.Clef.layer = #-1 a'1
Ús de break-visibility (visibilitat al salt)
Gairebé tots els objecte de presentació s’imprimeixen un sol cop,
però alguns com les línies divisòries, les claus, les indicacions
de compàs i armadures de tonalitat, es poden haver d’imprimir dos
cops quan es produeix un salt de línia: un cop al final de la
línia i un altre al començament de la següent. Aquests objectes
reben el nom de divisibles, y tenen una propietat,
break-visibility
(visibilitat al salto), per controlar
la seva visibilitat a les tres posicions en les quals pot
aparèixer: al començament d’una línia, dins de la línia si es
produeix un canvi, i al final de la línia si el canvi es produeix
en aquest lloc.
Per exemple, la indicació de compàs s’imprimeix de forma predeterminada al començament de la primera línia i en cap altre lloc a no ser que es canviï, i en aquest cas s’imprimeix al punt en el qual es produeix el canvi. Si aquest canvi es produeix al final d’una línia, la nova indicació de compàs s’imprimeix al principi de la línia següent i també al final de la línia anterior com indicació de precaució.
Aquest comportament es controla per mitjà de la propietat
break-visibility
, que s’explica a
Visibilitat i color dels objectes. Aquesta propietat
agafa un vector de tres valors booleans que, per ordre, determinen
si l’objecte s’imprimeix al final, a dins, o al principi de la
línia. O, per ser més exactes: abans del salt de línia, si no hi
ha salta, o després del salt.
Com alternativa es pot especificar qualssevol de les vuit combinacions mitjançant funcions predefinides la definició de les qual està a ‘scm/output-lib.scm’, on les tres últimes columnes indiquen si els objectes de presentació seran visibles a les posicions que es mostren a l’encapçalament de cada columna:
Forma | Forma | Abans del | Si no hi ha | Després del |
---|---|---|---|---|
de funció | de vector | salt | salt | salt |
all-visible | #(#t #t #t) | sí | sí | sí |
begin-of-line-visible | #(#f #f #t) | no | no | sí |
center-visible | #(#f #t #f) | no | sí | no |
end-of-line-visible | #(#t #f #f) | sí | no | no |
begin-of-line-invisible | #(#t #t #f) | sí | sí | no |
center-invisible | #(#t #f #t) | sí | no | sí |
end-of-line-invisible | #(#f #t #t) | no | sí | sí |
all-invisible | #(#f #f #f) | no | no | no |
Els ajustaments predeterminats de break-visibility
depenen
de l’objecte de presentació. La taula següent mostra tots els
objectes de presentació d’interès que resulten afectats per
break-visibility
i l’ajustament predeterminat d’aquesta propietat:
Objecte | Context usual | Valor predet. |
---|---|---|
BarLine | Score | calculat |
BarNumber | Score | begin-of-line-visible |
BreathingSign | Voice | begin-of-line-invisible |
Clef | Staff | begin-of-line-visible |
Custos | Staff | end-of-line-visible |
DoublePercentRepeat | Voice | begin-of-line-invisible |
KeyCancellation | Staff | begin-of-line-invisible |
KeySignature | Staff | begin-of-line-visible |
ClefModifier | Staff | begin-of-line-visible |
RehearsalMark | Score | end-of-line-invisible |
TimeSignature | Staff | all-visible |
L’exemple de sota mostra l’ús de la forma de vector per controlar la visibilitat de les línies divisòries:
\relative { f'4 g a b f4 g a b % Elimina la línia de compàs al final de la línia actual \once \override Score.BarLine.break-visibility = ##(#f #t #t) \break f4 g a b f4 g a b }
Tot i que els tres components del vector utilitzar per
sobreescriure break-visibility
han d’estar presents, no
tots són efectius per tots els objectes de presentació, i algunes
combinacions poden fins i tot donar errors. S’apliquen les
limitacions següents:
- Les línies divisòries no es poden imprimir al principi de la línia.
-
No es pot imprimir el número de compàs al principi de la
primera línia a no ser que el seu valor establert sigui
diferent a
1
. - Clau: vegeu la secció següent.
-
Les repeticions dobles de tipus percentatge s’imprimeixen totes
sempre o bé no s’imprimeixen mai. Utilitzeu
begin-of line-invisible
per imprimir-les iall-invisible
per suprimir-les. - Armadura: vegeu la secció següent.
- ClefModifier: vegeu la secció següent.
Consideracions especials
Visibilitat després d’un canvi explicit
La propietat break-visibility
controla la visibilitat de
les armadures i canvis de clau sols al principi de les línies, és
a dir, després d’un salt. No té cap efecte sobre la visibilitat
de l’armadura o la clau després d’un canvi explícit de tonalitat o
de clau dins o al final d’una línia. A l’exemple següent
l’armadura que segueix al canvi explícit de tonalitat a Sí bemoll
major és visible fins i tot amb all-invisible
establert.
\relative { \key g \major f'4 g a b % Intenta eliminar totes armadures \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
La visibilitat d’aquests canvis explícits de tonalitat i de clau
es controla per mitjà de les propietats
explicitKeySignatureVisibility
i
explicitClefVisibility
. Són les equivalents a la propietat
break-visibility
i les dues agafen un vector de tres valors
booleans o les funcions predefinides relacionades anteriorment,
exactament igual que break-visibility
. Les dues són
propietats del context Staff, no dels propis objectes de
presentació, i per tant s’estableixen utilitzant l’ordre
\set
. Les dues estan establertes de forma predeterminada
al valor all-visible
. Aquestes propietats controlen la
visibilitat sols la visibilitat de les armadures i les claus que
resulten dels canvis explícits i no afecten a les armadures i
tonalitats que estan al principi de les línies; per treure-les,
encara s’ha de sobreescriure la propietat break-visibility
a l’objecte corresponent.
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Visibilitat de les alteracions de precaució
Per eliminar les alteracions de cancel·lació que s’imprimeixen a
un canvi de tonalitat explicit, establiu la propietat
printKeyCancellation
del context Staff a #f
:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Amb aquestes sobreescriptures sols queden les alteracions accidentals davant de les notes per indicar el canvi de tonalitat.
Observeu que en modificar la tonalitat a Do major o
La menor, les alteracions de cancel·lació serien
l’única indicació del canvi d’armadura. En aquest cas,
l’establiment de printKeyCancellation
al valor #f
no
té cap efecte:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \key c \major f4 g a b \break f4 g a b f4 g a b }
Enlloc d’això, per suprimir les alteracions de cancel·lació encara
quan l’armadura canvia a Do major o a La menor,
sobreescriviu la visibilitat del grob KeyCancellation
:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeyCancellation.break-visibility = #all-invisible \key c \major f4 g a b \break f4 g a b f4 g a b }
Línies divisòries automàtiques
Com a cas especial, la impressió de les línies divisòries també es
poden inhabilitar establint la propietat automaticBars
en
el context Score. Si es fixa a #f
, les barres de compàs no
s’imprimeixen automàticament: s’han de crear explícitament amb una
ordre \bar
. A diferència de l’ordre predefinida
\cadenzaOn
, els compassos se segueixen comptant. La
generació de compassos continua d’acord a aquest recompte si
aquesta propietat s’estableix posteriorment a #t
. Si es
fixa al valor #f
, sols poden produir-se salts de línia a
ordres \bar
explícites.
Claus transportades
El petit símbol de transposició sobre una clau es produeix per de
l’objecte ClefModifier
. La seva visibilitat s’hereva
automàticament de la de l’objecte Clef
, així que no cal
aplicar les sobreescriptures corresponents break-visibility
als objectes ClefModifier
per a suprimir els símbols de
transposició o octavació per a les claus invisibles.
Per als canvis de clau explícits, la propietat
explicitClefVisibility
controla tant el símbol de clau
com el símbol de transposició o d’octava associat.
Vegeu també
Manual d’aprenentatge: Visibilitat i color dels objectes.