[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

3.3 Contextos y grabadores

@translationof Contexts and engravers

Los contextos y grabadores se han mencionado de manera informal en secciones anteriores; ahora tan sólo vamos a ver estos conceptos con más detalle, pues son importantes en el ajuste fino de la salida de LilyPond.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

3.3.1 Explicación de los contextos

@translationof Contexts explained

Cuando se imprime la música, se tienen que añadir a la salida una gran cantidad de elementos notacionales que no aparecen explícitamente en el archivo de entrada. Por ejemplo, compare la entrada y la salida del siguiente ejemplo:

 
\relative { cis''4 cis2. | a4 a2. | }

[image of music]

La entrada es bastante escueta, pero en la salida se han añadido las líneas divisorias, las alteraciones, la clave y la armadura de la tonalidad. Cuando LilyPond interpreta la entrada, la información musical se analiza de izquierda a derecha de igual forma que un intérprete lee la partitura. Mientras se lee el código de entrada, el programa recuerda dónde están los límites de los compases, y qué alturas requieren alteraciones accidentales explícitas. Esta información se debe conservar a varios niveles. Por ejemplo, una alteración accidental afecta solamente a un pentagrama, mientras que una línea divisoria debe estar sincronizada a lo largo de todo el sistema.

Dentro de LilyPond, estas reglas y pequeñas porciones de información se agrupan en Contexts. Ya hemos visto el contexto de voz, Voice. Otros ejemplos de contextos son Staff (Pauta o pentagrama) y Score (Partitura). Los contextos son jerárquicos, de forma que reflejan la naturaleza jerárquica de una partitura musical. Por ejemplo: un contexto de Staff contener muchos contextos de Voice, y un contexto de Score puede contener muchos contextos de Staff.

pictures/context-example

Cada contexto asume la responsabilidad de imponer algunas reglas de notación, creando ciertos objetos de notación y manteniendo las propiedades asociadas. Por ejemplo, el contexto Voice puede introducir una alteración accidental y entonces el contexto Staff mantiene la regla de mostrar o suprimir la alteración para el resto del compás.

Otro ejemplo lo constituye el hecho de que la sincronización de las líneas divisorias se gestiona dentro del contexto de la partitura, Score, de forma predeterminada. Sin embargo, en algunas músicas posiblemente no queramos que las líneas divisorias estén sincronizadas (pensemos en una partitura polimétrica en compases de 4/4 y de 3/4). En tales casos, debemos modificar los ajustes por omisión de los contextos Score y Staff.

Para partituras muy sencillas, los contextos se crean implícitamente y no debemos preocuparnos por ellos. Para piezas mayores, como por ejemplo cualquiera que tenga más de un pentagrama, los contextos se deben crear explícitamente para asegurarnos de que tendremos la cantidad exacta de pentagramas que necesitamos, y que están en el orden correcto. Para tipografiar piezas con notación especializada, es frecuente la modificación de contextos existentes o incluso definir unos completamente nuevos.

Además de los contextos Score, Staff y Voice, hay contextos que se sitúan entre los niveles de partitura y de pentagrama para controlar los grupos de pentagramas, como los contextos PianoStaff y ChoirStaff. También existen contextos alternativos de pentagrama y de voz, y contextos para la letra, la percusión, diagramas de trastes, bajo cifrado, etc.

Los nombres de todos los tipos de contextos se componen de una o más palabras que comienzan con mayúscula y que están unidas unas a otras sin guión ni barra baja, por ejemplo: GregorianTranscriptionStaff.

Véase también

Referencia de la notación: (notation)Explicación de los contextos sección ‘Explicación de los contextos’ en Referencia de la Notación.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

3.3.2 Crear contextos

@translationof Creating contexts

En un archivo de entrada, el bloque de partitura (que se presenta precedido por la instrucción \score) contiene una sola expresión musical; pero también puede contener una definición de salida asociada: bien un bloque \layout o bien un bloque \midi. El contexto Score se suele dejar que se cree automáticamente cuando comienza la interpretación de esa expresión musical.

Para partituras que solamente tienen una voz y un pentagrama, podemos también dejar que los contextos Voice y Staff se creen automáticamente, pero para partituras más complejas es necesario crearlos a mano. La instrucción más simple que hace esto es \new. Se antepone a una expresión musical, por ejemplo

 
\new tipo expresión_musical

donde tipo es el nombre de un contexto (como Staff o Voice). Esta instrucción crea un contexto nuevo, y comienza a interpretar la expresión_musical que está dentro de ese contexto.

Nota: No se debe usar \new Score porque el contexto Score esencial del nivel superior ya se crea automáticamente al interpretarse la expresión musical que está dentro del bloque \score. Los valores predeterminados de propiedades de contexto válidos para toda la partitura se pueden cambiar dentro del bloque \layout. Véase Modificar las propiedades de los contextos.

En las secciones anteriores ha podido ver muchos ejemplos prácticos que creaban nuevos contextos de Staff y de Voice, pero para recordarle cómo se emplean estas instrucciones en la práctica, he aquí un ejemplo anotado de música real:

 
\score {  % start of single compound music expression
  <<  % start of simultaneous staves section
    \time 2/4
    \new Staff {  % create RH staff
      \clef "treble"
      \key g \minor
      \new Voice {  % create voice for RH notes
        \relative {  % start of RH notes
          d''4 ees16 c8. |
          d4 ees16 c8. |
        }  % end of RH notes
      }  % end of RH voice
    }  % end of RH staff
    \new Staff <<  % create LH staff; needs two simultaneous voices
      \clef "bass"
      \key g \minor
      \new Voice {  % create LH voice one
        \voiceOne
        \relative {  % start of LH voice one notes
          g8 <bes d> ees, <g c> |
          g8 <bes d> ees, <g c> |
        }  % end of LH voice one notes
      }  % end of LH voice one
      \new Voice {  % create LH voice two
        \voiceTwo
        \relative {  % start of LH voice two notes
          g4 ees |
          g4 ees |
        }  % end of LH voice two notes
      }  % end of LH voice two
    >>  % end of LH staff
  >>  % end of simultaneous staves section
}  % end of single compound music expression

[image of music]

(Observe cómo todas las instrucciones que abren un bloque con una llave curva, {, o con ángulos dobles, <<, están sangrados (tienen un margen adicional) con dos espacios adicionales, y la llave de cierre correspondiente tiene un margen exactamente igual. Aunque no es necesario, la observancia de esta práctica reducirá considerablemente el número de errores de ‘paréntesis descompensados’, y se recomienda vivamente. Permite apreciar de un solo vistazo la estructura de la música, y cualquier paréntesis descompensado aparecerá con obviedad. Observe también cómo el pentagrama de la MI se crea usando dobles ángulos porque requiere dos voces, mientras que el pentagrama de la MD se crea con una expresión musical única encerrada entre llaves porque sólo requiere una voz.)

La instrucción \new también puede otorgar un nombre identificativo al contexto para distinguirlo de otros contextos del mismo tipo:

 
\new tipo = identificador expresión_musical

Observe la distinción entre el nombre del tipo de contexto, Staff, Voice, etc., y el nombre identificativo de una instancia en particular de ese tipo, que puede ser cualquier secuencia de letras inventada por el usuario. En el nombre identificativo también se pueden utilizar dígitos y espacios, pero en este caso aquél debe ir entre comillas p.ej. \new Staff = "MiPentagrama 1" expresión_musical. El nombre identificativo se utiliza para referirnos más tarde a esa instancia en particular de un contexto. Hemos visto esto en la sección acerca de la letra, en Voces y música vocal.

Véase también

Referencia de la notación: (notation)Crear y referenciar contextos sección ‘Crear y referenciar contextos’ en Referencia de la Notación.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

3.3.3 Explicación de los grabadores

@translationof Engravers explained

Todas y cada una de las marcas de la salida impresa de una partitura hecha con LilyPond está producida por un Engraver (grabador). Así, tenemos un grabador para imprimir pentagramas, otro para imprimir las cabezas de las notas, otro para las plicas, otro para las barras, etc, etc. ¡En total hay más de 120 grabadores! Afortunadamente, para la mayor parte de las partituras no es necesario conocer más que algunos, y para partituras sencillas no tenemos que saber nada de ninguno de ellos.

Los grabadores residen y operan dentro de Contextos. Los grabadores como el grabador de la indicación metronómica, Metronome_mark_engraver, cuya acción y resultado se aplican a la partitura como un todo, operan en el contexto del nivel más alto: el contexto de partitura Score.

El grabador de la clave Clef_engraver y el de la armadura Key_engraver se encuentran probablemente en todos los contextos de pentagrama (Staff), pues los distintos pentagramas podrían requerir diferentes claves y armaduras.

El grabador de las cabezas de nota Note_heads_engraver y el de las plicas Stem_engraver viven en cada uno de los contextos de voz Voice, el contexto de nivel más bajo de todos.

Cada grabador procesa los objetos particulares asociados con su función, y mantiene las propiedades que están relacionadas con dicha función. Estas propiedades, como las que están asociadas con los contextos, se pueden modificar para cambiar el funcionamiento del grabador o el aspecto de esos elementos en la partitura impresa.

Todos los grabadores tienen nombres compuestos de varias palabras que describen su función. Sólo está en mayúsculas la inicial de la primera palabra, y el resto se le une mediante guiones bajos. Así, el grabador Staff_symbol_engraver es responsable de la creación de las líneas del pentagrama, y el Clef_engraver determina y establece la altura o el punto de referencia sobre el pentagrama dibujando un símbolo de clave.

A continuación presentamos algunos de los grabadores más comunes, junto a su función. Podrá comprobar que es fácil adivinar la función a partir del nombre (en inglés), y viceversa.

GrabadorFunción
Accidental_engraverHace las alteraciones accidentales, de precaución y de sugerencia.
Beam_engraverGraba las barras
Clef_engraverGraba las claves
Completion_heads_engraverDivide las notas que atraviesan una línea divisoria
Dynamic_engraverCrea reguladores e indicaciones dinámicas textuales
Forbid_line_break_engraverEvita los saltos de línea si queda algún elemento musical activo
Key_engraverCrea la armadura de la tonalidad
Metronome_mark_engraverGraba la indicación metronómica
Note_heads_engraverGraba la cabeza de las notas
Rest_engraverGraba los silencios
Staff_symbol_engraverGraba las cinco líneas (de forma predeterminada) del pentagrama
Stem_engraverCrea las plicas y los trémolos de una sola plica
Time_signature_engraverCrea las indicaciones de compás

Más adelante veremos cómo la salida de LilyPond se puede cambiar mediante la modificación del funcionamiento de los Grabadores.

Véase también

Referencia de funcionamiento interno: (internals)Engravers and Performers sección ‘Engravers and Performers’ en Referencia de Funcionamiento Interno.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

3.3.4 Modificar las propiedades de los contextos

@translationof Modifying context properties

Los contextos se responsabilizan de mantener los valores de un cierto número de properties de contexto. Muchas de ellas se pueden cambiar para influir en la interpretación del código de entrada y cambiar así la apariencia de la salida impresa. Se modifican mediante la instrucción \set. Esta instrucción toma la forma siguiente:

 
\set NombreDelContexto.nombreDeLaPropiedad = #valor

Donde el NombreDelContexto es normalmente Score, Staff o Voice. Se puede omitir, en cuyo caso se supone que es el contexto en curso (normalmente Voice).

Los nombres de las propiedades de contexto consisten en palabras unidas sin ningún guión o barra baja, y donde todas las palabras excepto la primera empiezan en mayúscula. A continuación podemos ver algunos ejemplos de nombres de propiedades utilizadas con frecuencia. Hay muchas más que las que se muestran aquí.

nombreDeLaPropiedadTipoFunciónValor de ejemplo
extraNaturalBooleanoSi es verdadero, poner becuadros adicionales antes de las alteraciones#t, #f
currentBarNumberEnteroAjustar el número del compás actual50
doubleSlursBooleanoSi es verdadero, imprimir ligaduras de expresión por encima y por debajo de las notas#t, #f
instrumentNameTextoEstablecer el nombre del pentagrama, situado a la izquierda"Cello I"
fontSizeRealAumentar o disminuir el tamaño de la fuente tipográfica2.4
stanzaTextoEstablecer el texto que se imprime antes del comienzo de una estrofa"2"

donde un valor Booleano es verdadero (#t, True) o falso (#f, False), un Entero es un número entero positivo, un número Real es un número decimal positivo o negativo, y el texto se encierra entre comillas dobles. Observe la aparición de signos de cuadradillo, (#), en dos lugares diferentes: como parte del valor Booleano antes de la t o la f, y antes del valor dentro de la sentencia \set. Así pues, cuando se está escribiendo un valor Booleano, hay que escribir dos signos de cuadradillo, por ejemplo: ##t.

Antes de poder establecer cualquiera de estas propiedades, tenemos que saber en qué contexto operan. A veces es algo obvio, pero en ocasiones puede ser algo enrevesado. Si especificamos un contexto equivocado, no se produce ningún mensaje de error, pero el funcionamiento esperado no tendrá lugar. Por ejemplo, la propiedad clefGlyph (dibujo de la clave) vive claramente dentro del contexto de Staff, puesto que es el glifo de la clave del pentagrama lo que se quiere cambiar. En este ejemplo, la primera clave del pentagrama se imprime correctamente, pero no la segunda (que imprime la clave predeterminada de Sol en lugar de la de Fa), porque hemos omitido el nombre del contexto.

 
<<
  \new Staff \relative {
    \set Staff.clefGlyph = "clefs.C"
    c''2 c
  }
  \new Staff \relative {
    \set clefGlyph = "clefs.F"  % Wrong!
    d'2 d
  }
>>

[image of music]

Recuerde que el nombre del contexto predeterminado es Voice, así que la segunda instrucción \set establece la propiedad clefGlyph del contexto Voice a clefs.F, pero como LilyPond no busca esta propiedad en el contexto Voice, no se realiza ninguna acción. Esto no es un error, y no se registra ningún mensaje en el archivo Log de registro de errores.

De forma parecida, si el nombre de la propiedad se escribe con alguna falta, no se produce ningún mensaje de error, y claramente la acción esperada no puede tener lugar. De hecho, se puede establecer cualquier ‘property’ (ficticia) usando cualquier nombre que queramos en cualquier contexto que exista, mediante el uso de la instrucción \set. Pero si el nombre no es conocido para LilyPond, no producirá ninguna acción. Algunos editores de texto que apoyan a los archivos de entrada de LilyPond de manera especial, documentan los nombres de propiedades con viñetas cuando pasamos sobre ellos con el puntero del ratón, como JEdit con la extensión LilyPondTool, o resaltan los nombres de propiedades desconocidas de manera diferente, como ConTEXT. Si no se utiliza un editor con tales posibilidades, se recomienda comprobar la corrección del nombre de la propiedad en el manual de Referencia de funcionamiento interno: véase (internals)Tunable context properties sección ‘Tunable context properties’ en Referencia de Funcionamiento Interno o (internals)Contexts sección ‘Contexts’ en Referencia de Funcionamiento Interno.

La propiedad clefGlyph tendrá efecto solamente si se establece dentro del contexto Staff, pero algunas propiedades se pueden establecer en más de un contexto. Por ejemplo, la propiedad extraNatural está establecida por defecto al valor ##t (verdadero) para todos los pentagramas. Si se establece a ##f (falso) en un contexto de Staff determinado, se aplicará solamente a las alteraciones de ese pentagrama. Si se establece a falso en el contexto de la partitura, Score, se aplicará a todos los pentagramas.

Así, esto desactivará los becuadros adicionales en un pentagrama:

 
<<
  \new Staff \relative {
    aeses'2 aes
  }
  \new Staff \relative {
    \set Staff.extraNatural = ##f
    aeses'2 aes
  }
>>

[image of music]

y esto los desactivará en todos los pentagramas:

 
<<
  \new Staff \relative {
    aeses'2 aes
  }
  \new Staff \relative {
    \set Score.extraNatural = ##f
    aeses'2 aes
  }
>>

[image of music]

Como un ejemplo más, si se establece clefTransposition dentro del contexto de Score, éste cambia inmediatamente el valor de la transposición en todos los pentagramas en curso y establece un nuevo valor predeterminado que se aplicará a todos los pentagramas.

La instrucción opuesta, \unset, tiene el efecto de suprimir la propiedad del contexto, lo que ocasiona que la mayoría de las propiedades vuelvan a su valor predeterminado. Normalmente no es necesario el uso de \unset, pues una nueva instrucción \set hará el ajuste deseado.

Las instrucciones \set y \unset pueden aparecer en cualquier lugar del archivo de entrada y tendrán efecto a partir del tiempo en que se encuentran y hasta el final de la partitura o hasta que la propiedad se establezca de nuevo mediante \set o \unset. Probemos a modificar el tamaño de la fuente tipográfica, lo que afecta al tamaño de las cabezas de las notas (entre otras cosas) varias veces. El cambio se toma a partir del valor predeterminado, no el valor en curso.

 
\relative {
  c'4 d
  % make note heads smaller
  \set fontSize = #-4
  e4 f |
  % make note heads larger
  \set fontSize = #2.5
  g4 a
  % return to default size
  \unset fontSize
  b4 c |
}

[image of music]

Hemos podido ver cómo establecer los valores de diversos tipos de propiedad diferentes. Observe que los números enteros y reales van siempre precedidos de un símbolo de cuadradillo, #, mientras que un valor booleano verdadero o falso se especifica mediante ##t y ##f, con dos cuadradillos. Una propiedad de texto se debe encerrar entre comillas dobles, como antes, aunque veremos más adelante que el texto realmente se puede especificar de una forma mucho más general utilizando la potentísima instrucción markup.

Cambiar las propiedades de un contexto con \with

El valor predeterminado de las propiedades de contexto se puede establecer en el momento en que se crea el contexto. A veces esta forma de establecer el valor de una propiedad es mucho más clara, si ha de quedar fijo durante todo el tiempo que dure el contexto. Cuando se crea un contexto con una instrucción \new puede ir inmediatamente seguido de un bloque \with { … } en el que se establecen los valores predeterminados de las propiedades. Por ejemplo, si queremos suprimir la impresión de becuadros adicionales para toda la duración de un pentagrama, podemos escribir:

 
\new Staff \with { extraNatural = ##f }

de la siguiente forma:

 
<<
  \new Staff {
    \relative {
      gisis'4 gis aeses aes
    }
  }
  \new Staff \with { extraNatural = ##f } {
    \relative {
      gisis'4 gis aeses aes
    }
  }
>>

[image of music]

Las propiedades ajustadas de esta manera aún pueden cambiarse dinámicamente utilizando \set y ser devueltas al valor predeterminados que se estableció en el bloque \with mediante \unset.

Así pues, si la propiedad fontSize se ajusta dentro de una cláusula \with, tiene el efecto de reiniciar el valor predeterminado del tamaño de la fuente tipográfica. Si más tarde se modifica con \set, este nuevo valor predeterminado puede restablecerse con la instrucción \unset fontSize.

Cambiar las propiedades de un contexto con \context

Los valores de propiedad de los contextos se pueden establecer para todos los contextos de un tipo determinado, como por ejemplo todos los contextos de Staff, con una única instrucción. El tipo de contexto se identifica mediante la utilización del nombre de su tipo, como Staff, precedido de una barra invertida: \Staff. El enunciado que establece el valor de la propiedad es el mismo que el que está en un bloque \with, presentado anteriormente. Se coloca en un bloque \context dentro de un bloque \layout. Cada bloque \context afecta a todos los contextos del tipo especificado a lo largo del bloque \score o \book en el que aparece el bloque \layout. A continuación presentamos un ejemplo que muestra el formato:

 
\score {
  \new Staff {
    \relative {
      cisis''4 e d cis
    }
  }
  \layout {
    \context {
      \Staff
      extraNatural = ##t
    }
  }
}

[image of music]

Si se quiere aplicar la sobreescritura de propiedades a todos los pentagramas de la partitura:

 
\score {
  <<
    \new Staff {
      \relative {
        gisis'4 gis aeses aes
      }
    }
    \new Staff {
      \relative {
        gisis'4 gis aeses aes
      }
    }
  >>
  \layout {
    \context {
      \Score extraNatural = ##f
    }
  }
}

[image of music]

Las propiedades de contexto establecidas de esta forma se pueden sobreescribir para ejemplares concretos de contextos mediante enunciados dentro de un bloque \with, y mediante instrucciones \set intercaladas dentro de enunciados musicales.

Véase también

Referencia de la notación: (notation)Cambiar los valores por omisión de los contextos sección ‘Cambiar los valores por omisión de los contextos’ en Referencia de la Notación, (notation)La instrucción set sección ‘La instrucción set’ en Referencia de la Notación.

Referencia de funcionamiento interno: (internals)Contexts sección ‘Contexts’ en Referencia de Funcionamiento Interno, (internals)Tunable context properties sección ‘Tunable context properties’ en Referencia de Funcionamiento Interno.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]         [Arriba] [Índice general] [Índice] [ ? ]

3.3.5 Añadir y eliminar grabadores

@translationof Adding and removing engravers

Hemos visto que cada uno de los contextos contiene varios grabadores, cada uno de los cuales a su vez es responsable de la producción de una fracción particular del resultado impreso, como líneas divisorias, pentagramas, cabezas, plicas, etc. Si un grabador es eliminado de un contexto, ya no podrá producir su salida impresa. Es una forma algo radical de modificar la salida, pero a veces puede ser útil.

Cambiar un solo contexto

Para eliminar un grabador de un contexto único, usamos la instrucción \with situada inmediatamente después de la instrucción que crea el contexto, como en la sección anterior.

Como ilustración, repitamos un ejemplo extraído de la sección anterior con las líneas del pentagrama eliminadas. Recuerde que las líneas del pentagrama están dibujadas por el grabador Staff_symbol_engraver.

 
\new Staff \with {
  \remove "Staff_symbol_engraver"
}
\relative {
  c'4 d
  \set fontSize = #-4  % make note heads smaller
  e4 f |
  \set fontSize = #2.5  % make note heads larger
  g4 a
  \unset fontSize  % return to default size
  b4 c |
}

[image of music]

Los grabadores también se pueden añadir a los contextos individuales La instrucción que lo hace es

\consists Nombre_del_grabador,

situada dentro de un bloque \with. Ciertas partituras vocales tienen una indicación de ámbito o tesitura situada al principio del pentagrama para indicar el ámbito de notas en dicho pentagrama, véase (music-glossary)ambitus sección ‘ambitus’ en Glosario Musical. El ambitus se produce por parte del grabador Ambitus_engraver, que normalmente no está incluido en ningún contexto. Si lo añadimos al contexto Voice, calcula el rango a partir de esa única voz:

 
\new Staff <<
  \new Voice \with {
    \consists "Ambitus_engraver"
  } {
    \relative {
      \voiceOne
      c''4 a b g
    }
  }
  \new Voice {
    \relative {
      \voiceTwo
      c'4 e d f
    }
  }
>>

[image of music]

pero si añadimos el grabador de ámbito al contexto de Staff, calcula el rango de todas las notas en todas las voces de ese pentagrama:

 
\new Staff \with {
  \consists "Ambitus_engraver"
}
<<
  \new Voice {
    \relative {
      \voiceOne
      c''4 a b g
    }
  }
  \new Voice {
    \relative {
      \voiceTwo
      c'4 e d f
    }
  }
>>

[image of music]

Cambiar todos los contextos del mismo tipo

Los ejemplos anteriores muestran la manera de eliminar o añadir grabadores a los contextos individuales. También es posible eliminar o añadir grabadores a todos los contextos de un tipo específico, situando las instrucciones en el contexto correspondiente dentro de un bloque \layout. Por ejemplo, si queremos mostrar los rangos de tesitura para todos los pentagramas de una partitura de cuatro pautas, podemos escribir

 
\score {
  <<
    \new Staff {
      \relative {
        c''4 a b g
      }
    }
    \new Staff {
      \relative {
        c'4 a b g
      }
    }
    \new Staff {
      \clef "G_8"
      \relative {
        c'4 a b g
      }
    }
    \new Staff {
      \clef "bass"
      \relative {
        c4 a b g
      }
    }
  >>
  \layout {
    \context {
      \Staff
      \consists "Ambitus_engraver"
    }
  }
}

[image of music]

Los valores predeterminados de las propiedades de los contextos también se pueden establecer para todos los contextos de un tipo en particular incluyendo la instrucción \set dentro de un bloque \context de la misma forma.

Véase también

Referencia de la notación: (notation)Modificar los complementos (plug-ins) de contexto sección ‘Modificar los complementos (plug-ins) de contexto’ en Referencia de la Notación, (notation)Cambiar los valores por omisión de los contextos sección ‘Cambiar los valores por omisión de los contextos’ en Referencia de la Notación.

Advertencias y problemas conocidos

Los grabadores Stem_engraver y Beam_engraver (de plica y de barra) adjuntan a la cabeza de las notas los objetos que crean. Si se suprime el grabador de cabezas de nota Note_heads_engraver, no se produce ninguna cabeza y por tanto no se crean tampoco plicas ni barras.


[ < ] [ > ]   [ << ] [ Subir ] [ >> ]

Este documento ha sido generado por gub el el 13 julio 2020 utilizando texi2html 1.82.

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