5.3.2 L’ordre \set

Cada context pot tenir diferents propietats, variables contingudes dins d’aquest context. Es poden canviar mentre dura el pas d’interpretació. S’aconsegueix inserint l’ordre \set dins de la música:

\set context.propietat = #valor

valor és un objecte de l’Scheme, raó per la qual va precedit del caràcter coixinet, #.

El nom de les propietats de context sol anar en minúscules amb majúscula al mig. Controlen sobre tot la traducció de la música a la notació, per exemple localAlterations (per determinar si s’ha d’imprimir alteracions o no), o measurePosition (per determinar quan s’ha d’imprimir una línia divisòria). El valor de les propietats de context pot modificar-se amb el temps durant la interpretació de la musica; un exemple obvi és measurePosition. Les propietats de context es modifiquen mitjançant l’ordre \set.

Per exemple, els silencis multicompàs es combinen en un sol compàs si el valor de la propietat de context skipBars s’estableix a #t (vertader):

R1*2
\set Score.skipBars = ##t
R1*2

[image of music]

Si s’omet l’argument context, llavors s’utilitza el context actual de nivell més baix (normalment ChordNames, Voice o Lyrics). En aquest exemple:

\set Score.autoBeaming = ##f
\relative {
  e''8 e e e
  \set autoBeaming = ##t
  e8 e e e
} \\
\relative {
  c''8 c c c c8 c c c
}

[image of music]

El canvi s’aplica ‘al vol’, mentre dura la música, de forma que l’ajustament sols afecta al segon grup de corxeres.

Observeu que el context del nivell més baix no sempre conté la propietat que voldríem modificar: per exemple, intentar ajustar el valor de la propietat skipBars del context predeterminat del nivell més baix, que en aquest cas és Voice, no tindrà cap efecte, perquè skipBars és una propietat del context Score.

R1*2
\set skipBars = ##t
R1*2

[image of music]

Els contextos són jeràrquics, i si s’ha especificat un context major, per exemple Staff, aleshores el canvi s’aplicaria també a tots els contextos Voice dins del pentagrama actual.

També hi ha una ordre \unset:

\unset context.propietat

que elimina la definició de propietat. Aquesta ordre elimina la definició sols si s’està establint dins de context. Les propietats que s’han establert a contextos que envolten no s’alteraran per un \unset en un context envoltat:

\set Score.autoBeaming = ##t
\relative {
  \unset autoBeaming
  e''8 e e e
  \unset Score.autoBeaming
  e8 e e e
} \\
\relative {
  c''8 c c c c8 c c c
}

[image of music]

Com \set, l’argument context no s’ha d’especificar per a un context del nivell més baix, per la qual cosa els dos enunciats

\set Voice.autoBeaming = ##t
\set autoBeaming = ##t

són equivalents si el context inferior en curs és Voice.

Els ajustaments amb \set o \unset que s’apliquen sols a un únic pas de temps es poden escriure amb \once, per exemple a

c''4
\once \set fontSize = #4.7
c''4
c''4

[image of music]

En el manual de Referència de funcionament intern hi ha una descripció completa de totes les propietats de context disponibles, consulteu Tunable context properties.

Vegeu també

Referència de funcionament intern: Tunable context properties.


Referència de la notació del GNU LilyPond v2.25.14 (branca de desenvolupament).