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_signature_engraver
que
crea la indicación de compás.
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 } >>
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" } { \time 3/4 c4 c c c c c } \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 2/4 c4 c c c c c } >> \layout { \context { \Score \remove "Timing_translator" \remove "Default_bar_line_engraver" } } }
Advertencias y problemas conocidos
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. El orden en que los grabadores se especifican es el orden en que se llaman para realizar su tarea de procesamiento.
Las siguientes ordenaciones son importantes: el grabador de compases
Bar_engraver
debe ir normalmente en primer lugar, y el grabador
de digitaciones New_fingering_engraver
debe ir antes del
grabador Script_column_engraver
de columnas de inscripciones.
Podría haber otros que tengan dependencias de ordenación.