Ocultar pentagramas

Se pueden ocultar las líneas del pentagrama quitando el grabador Staff_symbol_engraver del contexto de Staff. Como alternativa se puede utilizar la instrucción \stopStaff.

\new Staff \with {
  \remove Staff_symbol_engraver
}
\relative { a''8 f e16 d c b a2 }

[image of music]

Se pueden ocultar los pentagramas vacíos (para hacer la que se conoce como ‘partitura a la francesa’) aplicando la instrucción \RemoveEmptyStaves sobre un contexto, lo cual se puede hacer globalmente (dentro del bloque \layout) así como para pautas específicas solamente (dentro de un bloque \with). Esta instrucción elimina todas las pautas vacías de la partitura excepto las del primer sistema. Si queremos ocultar también las del primer sistema, usamos \RemoveAllEmptyStaves.

\layout {
  \context {
    \Staff
    \RemoveEmptyStaves
  }
}

\relative <<
  \new Staff {
    e'4 f g a \break
    b1 \break
    a4 b c2
  }
  \new Staff {
    c,4 d e f \break
    R1 \break
    f4 g c,2
  }
>>

[image of music]

Se considera que un pentagrama está vacío cuando contiene solamente silencios multicompás, silencios normales, silencios oscultos o saltos, o una combinación de todos los elementos anteriores. Cualquier otro objeto musical (que hace que un pentagrama no se considere como vacío) está en la lista de la propiedad de contexto keepAliveInterfaces, como se establece inicialmente en el archivo ly/engraver-init.ly.

Tanto \RemoveEmptyStaves como \RemoveAllEmptyStaves son atajos predefinidos que establecen propiedades tales como remove-empty y remove-first para el objeto VerticalAxisGroup, como aparece explicado en Identificadores de modificación de contextos.

El grabador Keep_alive_together_engraver solo permite que grupos de pentagramas se puedan eliminar juntos y no individualmente. Por defecto, forma parte del contexto PianoStaff: una parte de piano solo se oculta cuando sus dos pentagramas están vacíos. De forma semejante, es una práctica común del tipografiado de las partituras orquestales eliminar grupos de pentagramas vacíos en lugar de pautas individuales; esto es posible conseguirlo añadiendo el grabador Keep_alive_together_engraver al contexto de agrupamiento de pentagramas adecuado, como aparece explicado en Modificar los complementos (plug-ins) de contexto (consulte Agrupar pentagramas para ver los nombres de los contextos).

\layout {
  \context {
    \StaffGroup
    \RemoveEmptyStaves
    \consists Keep_alive_together_engraver
  }
}

En el ejemplo siguiente, los pentagramas de instrumentos de viento son eliminados en el segundo sistema; sin embargo, el contrabajo no se elimina porque forma parte del grupo mayor de cuerda frotada, que está tocando en ese momento.

[image of music]

El grabador Keep_alive_together_engraver usa internamente la propiedad remove-layer del VerticalAxisGroup de un pentagrama para decidir si imprimirlo o no, cuando se considera vacío. Dicha propiedad puede también establecerse directamente, en cuyo caso actúa como un índice de prioridad: los valores más cercanos a cero tienen precedencia frente a los números más altos, y de esta forma los pentagramas cuyo remove-layer es más alto quedarán enmascarados en favor de los que tienen un número más bajo.

Esto es especialmente útil para los pentagramas en ‘divisi’, donde ciertas partes individuales (véase Escritura de las particellas) a veces tienen que expandirse a más de un pentagrama. En el ejemplo siguiente, dos partes resultan dirigidas a un total de tres pentagramas; sin embargo, los tres pentagramas nunca se imprimen todos al mismo tiempo:

Tales sustituciones se aplican no solamente a notas, acordes y otros eventos musicales que tienen lugar inmediatamente después de cambiar el valor, sino a todo el sistema dentro del cual ocurre el cambio.

\layout {
  short-indent = 2\cm
  indent = 3\cm
  \context {
    \Staff
    keepAliveInterfaces = #'()
  }
}

violI = {
  \repeat unfold 24 { d'4 }
  \once \unset Staff.keepAliveInterfaces
  <d' g''>2
  \repeat unfold 14 { d'4 }
  \bar "|."
}

violII = {
  \repeat unfold 24 { g4 }
  <g d'>2
  \repeat unfold 14 { g4 }
  \bar "|."
}

\new StaffGroup \with { \consists Keep_alive_together_engraver } <<
  \new Staff \with {
    instrumentName = "Violins"
    shortInstrumentName = "V I & II"
    \override VerticalAxisGroup.remove-layer = 2
  } <<  \violI \\ \violII  >>
  \new Staff \with {
    instrumentName = "Violin I"
    shortInstrumentName = "V I"
    \RemoveAllEmptyStaves
    \override VerticalAxisGroup.remove-layer = 1
  } \violI
  \new Staff \with {
    instrumentName = "Violin II"
    shortInstrumentName = "V II"
    \RemoveAllEmptyStaves
    \override VerticalAxisGroup.remove-layer = 1
  } \violII
>>

[image of music]

También se puede usar \RemoveAllEmptyStaves para crear secciones de ossia para un pentagrama. Para ver más detalles, consulte Pentagramas de Ossia.

Instrucciones predefinidas

\RemoveEmptyStaves, \RemoveAllEmptyStaves.

Véase también

Glosario musical: Frenched staff.

Manual de aprendizaje: Visibilidad y color de los objetos.

Referencia de la notación: Cambiar los valores por omisión de los contextos, El símbolo del pentagrama, Pentagramas de Ossia, Notas ocultas, Silencios invisibles, Visibilidad de los objetos, Identificadores de modificación de contextos, Agrupar pentagramas, Modificar los complementos (plug-ins) de contexto.

Archivos instalados: ly/engraver-init.ly.

Fragmentos de código: Staff notation.

Referencia de funcionamiento interno: ChordNames, FiguredBass, Lyrics, Staff, VerticalAxisGroup, Staff_symbol_engraver, Axis_group_engraver, Keep_alive_together_engraver.

Advertencias y problemas conocidos

La eliminación del grabador Staff_symbol_engraver también oculta las barras de compás. Si se fuerza la visibilidad de la barra de compás, pueden ocurrir errores de formato visual. En este caso, utilice las siguientes sobreescrituras de valores en vez de quitar el grabador:

\omit StaffSymbol
\override NoteHead.no-ledgers = ##t

Para ver los fallos y problemas conocidos, así como las advertencias asociadas con \RemoveEmptyStaves, consulte Cambiar los valores por omisión de los contextos.


Referencia de la notación de GNU LilyPond v2.25.22 (development-branch).