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 cada uno de 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 \relative { f'2 g } \new Staff \with { \remove Time_signature_engraver \remove Clef_engraver } \relative { f'2 g2 } >>
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 } \relative { \time 3/4 c''4 c c c c c } \new Staff \with { \consists Timing_translator } \relative { \time 2/4 c''4 c c c c c } >> \layout { \context { \Score \remove Timing_translator } } }
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:
-
el grabador de compases
Bar_engraver
debe ir normalmente en primer lugar, -
el grabador de digitaciones
New_fingering_engraver
debe ir antes del grabadorScript_column_engraver
de columnas de inscripciones, -
el
Timing_translator
debe ir antes del grabador de números de compásBar_number_engraver
.
Véase también
Archivos instalados: ‘ly/engraver-init.ly’.