Referencia de la notación de GNU LilyPond: 1.6.2 Modificación de pentagramas sueltos

### 1.6.2 Modificación de pentagramas sueltos

Esta sección explica cómo cambiar los atributos específicos de un pentagrama: por ejemplo, cambiar el número de líneas o el tamaño de la pauta. También se describen los métodos para comenzar y terminar los pentagramas, y establecer secciones de ossia.

#### El símbolo del pentagrama

Se pueden usar las instrucciones `\stopStaff` y `\startStaff` para detener y (re)iniciar, respectivamente, la impresión de las líneas de la pauta en cualquier punto de la partitura.

>     \relative {
>       \stopStaff f''4 d \startStaff g, e
>       f'4 d \stopStaff g, e
>       f'4 d \startStaff g, e
>     }

#### Instrucciones predefinidas

`\startStaff`, `\stopStaff`.

Las líneas de la pauta pertenecen al grob `StaffSymbol` (incluidas las líneas adicionales) y se pueden modificar usando las propiedades de `StaffSymbol`, pero esas modificaciones deben hacerse antes de que el pentagrama se (re)inicie.

Se puede cambiar el número de líneas de la pauta:

>     \relative {
>       f''4 d \stopStaff
>       \override Staff.StaffSymbol.line-count = #2
>       \startStaff g, e |

>       f'4 d \stopStaff
>       \revert Staff.StaffSymbol.line-count
>       \startStaff g, e |
>     }

La posición de cada una de las líneas de la pauta también puede cambiarse. Una lista de números fija la posición de cada línea. `0` corresponde a la línea central normal, y las posiciones normales de las líneas son `(-4 -2 0 2 4)`. Se imprime una sola línea de pauta por cada valor que se introduce, de manera que el número de líneas así como su posición en la pauta pueden cambiarse con una sola operación de sobreescritura.

>     \relative {
>       f''4 d \stopStaff
>       \override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
>       \startStaff g, e |
>       f'4 d \stopStaff
>       \override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
>       \startStaff g, e |
>     }

Para preservar las direcciones típicas de las plicas (hacia arriba para la mitad inferior del pentagrama y hacia abajo para la mitad superior), debemos alinear la línea (o espacio) central de la pauta personalizada con la posición de la línea central normal (0). Puede ser necesario un ajuste de la posición de la clave y del Do central para que se correspondan a las líneas nuevas. Véase Clave.

Puede cambiarse el grosor de las líneas de la pauta. También resultan afectadas, de forma predeterminada, las líneas adicionales y no la plica de las figuras.

>     \new Staff \with {
>       \override StaffSymbol.thickness = #3
>     } \relative {
>       f''4 d g, e
>     }

También es posible fijar el grosor de las líneas adicionales de forma independiente del de las líneas de la pauta.

>     \new Staff \with {
>       \override StaffSymbol.thickness = #2
>       \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
>     } \relative {
>       f'''4 a, a,, f
>     }

El primer valor se multiplica por el grosor de las líneas del pentagrama, el segundo por el ancho de un espacio del pentagrama, y después los dos valores se suman para obtener el grosor de las líneas adicionales.

Se pueden alterar las posiciones de las líneas adicionales:

>     \new Staff \with {
>       \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
>     } \relative {
>       f'''4 a, a,, f
>     }

Puede hacerse que las líneas adicionales añadidas aparezcan por encima o por debajo de la cabeza de las figuras, dependiendo de la posición actual relativa a otras cabezas de figura que tienen asimismo sus propias líneas adicionales.

>     \new Staff \with {
>       \override StaffSymbol.ledger-extra = #4
>     } \relative {
>       f'''4 a, d, f,
>     }

También puede hacerse que las líneas adicionales aparezcan dentro del pentagrama allí donde se requieren líneas de pauta personalizadas. El ejemplo muestra la posición predeterminada de las líneas adicionales cuando el valor de posición explícito `ledger-position` se ha fijado o no. La instrucción `\stopStaff` se necesita en el ejemplo para revertir la instrucción de sobreescritura `\override` para todo el `StaffSymbol` (el símbolo de pauta).

>     \relative d' {
>       \override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
>       d4 e f g
>       \stopStaff
>       \startStaff
>       \override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
>       d4 e f g
>     }

Puede alterarse la distancia entre líneas de la pauta. Esto afecta también al espaciado de las líneas adicionales.

>     \new Staff \with {
>       \override StaffSymbol.staff-space = #1.5
>     } \relative {
>       f'''4 d, g, e,
>     }

#### Fragmentos de código seleccionados

#### Hacer unas líneas del pentagrama más gruesas que las otras

Se puede engrosar una línea del pentagrama con fines pedagógicos (p.ej. la tercera línea o la de la clave de Sol). Esto se puede conseguir añadiendo más líneas muy cerca de la línea que se quiere destacar, utilizando la propiedad `line-positions` del objeto `StaffSymbol`.

>     {
>       \override Staff.StaffSymbol.line-positions =
>         #'(-4 -2 -0.2 0 0.2 2 4)
>       d'4 e' f' g'
>     }

#### Véase también

Glosario musical: line, ledger line, staff.

Referencia de la notación: Clave.

Fragmentos de código: Staff notation.

Referencia de funcionamiento interno: StaffSymbol, staff-symbol-interface.

#### Pentagramas de Ossia

Los pentagramas Ossia se pueden preparar mediante la creación de un pentagrama simultáneo nuevo en la posición adecuada:

>     \new Staff \relative {
>       c''4 b d c
>       <<
>         { c4 b d c }
>         \new Staff { e4 d f e }
>       >>
>       c4 b c2
>     }

Sin embargo, el ejemplo anterior no es lo que normalmente se desea. Para crear pentagramas de ossia que estén encima del pentagrama original, que no tengan compás ni clave, y que tengan un tamaño menor de tipografía se deben usar varios trucos. El Manual de aprendizaje describe una técnica específica para llegar a este objetivo, empezando por musicales Anidado de expresiones musicales.

El ejemplo siguiente utiliza la propiedad `alignAboveContext` para alinear el pentagrama de ossia. Este método es muy conveniente cuando se necesitan sólo algunos pentagramas de ossia.

>     \new Staff = "main" \relative {
>       c''4 b d c
>       <<
>         { c4 b d c }

>         \new Staff \with {
>           \remove Time_signature_engraver
>           alignAboveContext = "main"
>           \magnifyStaff #2/3
>           firstClef = ##f
>         }
>         { e4 d f e }
>       >>
>       c4 b c2
>     }

Si se requieren muchos pentagramas de ossia aislados, puede ser más conveniente la creación de un contexto `Staff` vacío con un identificador de contexto específico; después se pueden crear los pentagramas de ossia llamando a este contexto y usando `\startStaff` y `\stopStaff` en los puntos deseados. Las ventajas de este método son más patentes si la pieza es más larga que en ejemplo siguiente.

>     <<
>       \new Staff = "ossia" \with {
>         \remove Time_signature_engraver
>         \hide Clef
>         \magnifyStaff #2/3
>       }
>       { \stopStaff s1*6 }

>       \new Staff \relative {
>         c'4 b c2
>         <<
>           { e4 f e2 }
>           \context Staff = "ossia" {
>             \startStaff e4 g8 f e2 \stopStaff
>           }
>         >>
>         g4 a g2 \break
>         c4 b c2
>         <<
>           { g4 a g2 }
>           \context Staff = "ossia" {
>             \startStaff g4 e8 f g2 \stopStaff
>           }
>         >>
>         e4 d c2
>       }
>     >>

Como alternativa, se puede usar la instrucción `\RemoveAllEmptyStaves` para crear pentagramas de ossia. Este método es muy conveniente cuando los pentagramas de ossia aparecen inmediatamente después de un salto de línea. Para ver más información sobre `\RemoveAllEmptyStaves`, consulte Ocultar pentagramas.

>     <<
>       \new Staff = "ossia" \with {
>         \remove Time_signature_engraver
>         \hide Clef
>         \magnifyStaff #2/3
>         \RemoveAllEmptyStaves
>       } \relative {
>         R1*3
>         c''4 e8 d c2
>       }
>       \new Staff \relative {
>         c'4 b c2
>         e4 f e2
>         g4 a g2 \break
>         c4 b c2
>         g4 a g2
>         e4 d c2
>       }
>     >>

#### Fragmentos de código seleccionados

#### Alineación vertical de la letra y los compases de ossia

Este fragmento de código muestra el uso de las propiedades de contexto `alignBelowContext` y `alignAboveContext` para controlar la posición de la letra y los compases de ossia.

>     \paper {
>       ragged-right = ##t
>     }

>     \relative c' <<
>       \new Staff = "1" { c4 c s2 }
>       \new Staff = "2" { c4 c s2 }
>       \new Staff = "3" { c4 c s2 }
>       { \skip 2
>         <<
>           \lyrics {
>             \set alignBelowContext = #"1"
>             lyrics4 below
>           }
>           \new Staff \with {
>             alignAboveContext = #"3"
>             fontSize = #-2
>             \override StaffSymbol.staff-space = #(magstep -2)
>             \remove "Time_signature_engraver"
>           } {
>             \tuplet 6/4 {
>               \override TextScript.padding = #3
>               c8[^"ossia above" d e d e f]
>             }
>           }
>         >>
>       }
>     >>

#### Véase también

Glosario musical: ossia, staff, Frenched staff.

Manual de aprendizaje: Anidado de expresiones musicales, Tamaño de los objetos, Longitud y grosor de los objetos.

Referencia de la notación: Ocultar pentagramas.

Fragmentos de código: Staff notation.

Referencia de funcionamiento interno: StaffSymbol.

#### 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 }

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
>       }
>     >>

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.

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:

- en los primeros sistemas, solo uno de ellos se imprime, porque la propiedad `keepAliveInterfaces` se ha establecido a una lista vacía; por tanto, los otros dos pentagramas se considera que están vacíos y por ello ocultos, sin que importe su contenido;
- cuando la propiedad resulta des-establecida (volviendo así a su valor predeterminado), ya no impide que los otros dos pentagramas se impriman; sin embargo, como el valor de `remove-layer` de éstos es menor que el del pentagrama suelto, estos dos pentagramas se imprimen ahora en su lugar.

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
    >>

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.

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