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
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 }
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
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 }
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
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.