5.1.4 Modificar los complementos (plug-ins) de contexto

Los contextos de notación (como Score y Staff) no sólo almacenan propiedades, también contienen «plug-ins» o complementos llamados ‘grabadores’ que crean elementos de notación. Por ejemplo, el contexto Voice contiene un grabador Note_heads_engraver que crea las cabezas de nota y el contexto Staff contiene un grabador Key_engraver que crea la armadura.

Para ver una descripción completa de todos y cada uno de los complementos, consulte Engravers and Performers. Cada contexto que se describe en Contexts relaciona los grabadores que se usan para ese contexto.

Puede ser de utilidad jugar un poco con estos complementos. Se hace iniciando un contexto nuevo con \new o \context y modificándolo:

\new contexto \with {
  \consists …
  \consists …
  \remove …
  \remove …
  etc.
}
{
  …música…
}

donde los … deben ser el nombre de un grabador. Aquí tenemos un ejemplo sencillo que suprime los grabadores Time_signature_engraver y Clef_engraver de un contexto Staff:

<<
  \new Staff {
    f2 g
  }
  \new Staff \with {
     \remove "Time_signature_engraver"
     \remove "Clef_engraver"
  } {
    f2 g2
  }
>>

[image of music]

En el segundo pentagrama no hay indicación de compás ni clave. Éste es un método bastante rudimentario de hacer que desaparezcan los objetos porque afecta a todo el pentagrama. Este método también afecta al espaciado, lo que puede ser deseable o no serlo. Se muestran métodos más sofisticados para quitar objetos en Visibilidad y color de los objetos.

El ejemplo siguiente muestra una aplicación práctica. Normalmente las líneas divisorias y las indicaciones de compás están sincronizadas a lo largo de toda la partitura. Lo hacen los grabadores Timing_translator y Default_bar_line_engraver. Estos complementos mantienen al día la administración de las indicaciones de compás, posición dentro del compás, etc. Moviendo estos grabadores desde el contexto de Score al de Staff, podemos conseguir una partitura en la que cada pentagrama tiene su propio compás independiente.

\score {
  <<
    \new Staff \with {
      \consists "Timing_translator"
      \consists "Default_bar_line_engraver"
    }
    \relative c'' {
        \time 3/4
        c4 c c c c c
    }
  \new Staff \with {
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
  }
  \relative c'' {
      \time 2/4
      c4 c c c c c
  }
>>
\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
    }
  }
}

[image of music]

Advertencias y problemas conocidos

El orden en que los grabadores se especifican es el orden en que se llaman para realizar su tarea de procesamiento. Normalmente, el orden en que se especifican los grabadores no tiene importancia, pero en algunos casos especiales sí la tiene, por ejemplo donde un grabador escribe una propiedad y otro la lee, o donde un grabador crea un groby otro debe procesarlo.

Las siguientes ordenaciones son importantes:

Véase también

Archivos instalados: ‘ly/engraver-init.ly’.


Otros idiomas: English, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.

LilyPond — Referencia de la notación v2.18.2 (rama estable).