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

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

[image of music]

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

[image of music]


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'

[image of music]

Aquesta operació, força comuna, té la forma abreujada \hide com a sota:

a'4 a'
\once \hide NoteHead
a' a'

[image of music]


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

[image of music]

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

[image of music]


Ú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:

FormaFormaAbans delSi no hi haDesprés del
de funcióde vectorsaltsaltsalt
all-visible#(#t #t #t)
begin-of-line-visible#(#f #f #t)nono
center-visible#(#f #t #f)nono
end-of-line-visible#(#t #f #f)nono
begin-of-line-invisible#(#t #t #f)no
center-invisible#(#t #f #t)no
end-of-line-invisible#(#f #t #t)no
all-invisible#(#f #f #f)nonono

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:

ObjecteContext usualValor predet.
BarLineScorecalculat
BarNumberScorebegin-of-line-visible
BreathingSignVoicebegin-of-line-invisible
ClefStaffbegin-of-line-visible
CustosStaffend-of-line-visible
DoublePercentRepeatVoicebegin-of-line-invisible
KeyCancellationStaffbegin-of-line-invisible
KeySignatureStaffbegin-of-line-visible
ClefModifierStaffbegin-of-line-visible
RehearsalMarkScoreend-of-line-invisible
TimeSignatureStaffall-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
}

[image of music]

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:


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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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.


LilyPond — Referència de la notació v2.23.82 (branca de desenvolupament).