Fragmentos: uso de la variable global

Cómo definir propiedades comunes sin morir en el intento

vie 03 noviembre 2017 Actualizado el mié 01 noviembre 2017

Cada vez que preparamos una partitura con varios pentagramas, inevitablemente se repite el código que da comienzo al contenido de cada una de las partes. Por ejemplo, este esquema para trío de cuerda:

violin = {
  \key f \major
  \time 2/4
  \tempo "Allegro"
  c''
}

viola = {
  \key f \major
  \time 2/4
  \tempo "Allegro"
  \clef "alto"
  c'
}

cello = {
  \key f \major
  \time 2/4
  \tempo "Allegro"
  \clef bass
  c
}

\new StaffGroup <<
  \new Staff { \violin }
  \new Staff { \viola }
  \new Staff { \cello }
>>
trío de cuerda

Y está muy bien porque si deseamos preparar la particella solo tenemos que hacer lo siguiente:

% particella
\new Staff { \violin }
particella de violín

Esta particella tiene todo lo necesario, compás, armadura y tempo. Pero ¿realmente hay que repetir estas instrucciones en cada pentagrama?

Lo más cómodo es definir una variable global (llamada así por convención) que reúna toda la parte común:

global = {
  \key f \major
  \time 2/4
  \tempo "Allegro"
}

% particella
violin = { \global c'' }

Al invocar a la variable en línea con la música, se inserta secuencialmente. Otra posibilidad es esperar a la construcción del pentagrama para hacerlo:

violin = { c'' }

% particella
\new Staff { \global \violin }

Esta forma es menos conveniente porque en la partitura general hay que usar la variable global de nuevo, en cada pentagrama.