3.3.2 Distintas ediciones a partir de una misma fuente
Se pueden usar varios métodos para generar la producción de distintas versiones de una partitura a partir de la misma fuente musical. Las variables son quizá el más útil para combinar secciones extensas de música y/o anotaciones. Las etiquetas son más útiles para seleccionar una sección de entre varias secciones de música alternativas, más cortas, y se pueden usar también para dividir piezas de música en distintos trozos.
Cualquiera que sea el método utilizado, la separación de la notación de la estructura de la partitura hará que sea más fácil cambiar la estructura dejando intacta la notación.
Uso de las variables | ||
Uso de etiquetas | ||
Uso de ajustes globales |
Uso de las variables
Si las secciones de la música se definen dentro de variables, se pueden reutilizar en distintas partes de la partitura, véase Organizar las piezas mediante variables. Por ejemplo, una partitura vocal a cappella con frecuencia incluye una reducción de piano de las partes para ensayar que es idéntica a la música vocal, por lo que ésta sólo se tiene que escribir una vez. Se puede combinar sobre un solo pentagrama la música de dos variables, véase Combinación automática de las partes. He aquí un ejemplo:
sopranoMusic = \relative { a'4 b c b8( a) } altoMusic = \relative { e'4 e e f } tenorMusic = \relative { c'4 b e d8( c) } bassMusic = \relative { a4 gis a d, } allLyrics = \lyricmode { King of glo -- ry } << \new Staff = "Soprano" \sopranoMusic \new Lyrics \allLyrics \new Staff = "Alto" \altoMusic \new Lyrics \allLyrics \new Staff = "Tenor" { \clef "treble_8" \tenorMusic } \new Lyrics \allLyrics \new Staff = "Bass" { \clef "bass" \bassMusic } \new Lyrics \allLyrics \new PianoStaff << \new Staff = "RH" { \partCombine \sopranoMusic \altoMusic } \new Staff = "LH" { \clef "bass" \partCombine \tenorMusic \bassMusic } >> >>
Se pueden producir partituras distintas que presenten sólo las partes vocales o sólo la parte de piano, cambiando solamente los enunciados estructurales, sin modificar la notación musical.
Para partituras extensas, las definiciones de variable se pueden poner en archivos separados que se incluyen más tarde, véase Inclusión de archivos de LilyPond.
Uso de etiquetas
La instrucción \tag #'parteA
marca una expresión
musical con el nombre parteA. Las expresiones etiquetadas
de esta manera se pueden seleccionar o filtrar más tarde por su
nombre, usando bien \keepWithTag #'nombre
o bien
\removeWithTag #'nombre
. El resultado de la
aplicación de estos filtros a la música etiquetada es como sigue:
Filtro | Resultado |
---|---|
Música etiquetada precedida de \keepWithTag #'nombre
o de \keepWithTag #'(nombre1 nombre2…) | Se incluye la música no etiquetada y la música etiquetada con el nombre o nombres de etiqueta dados; se excluye la música etiquetada con cualquier otro nombre de etiqueta. |
Música etiquetada precedida de
\removeWithTag #'nombre o
\removeWithTag #'(nombre1 nombre2…) | Se incluye la música no etiquetada y la música que no está etiquetada con ninguno de los nombres de etiqueta dados; se excluye la música etiquetada con los nombres de etiqueta dados. |
Música etiquetada no precedida de \keepWithTag ni de
\removeWithTag | Se incluye toda la música etiquetada y no etiquetada. |
Los argumentos de las instrucciones \tag
,
\keepWithTag
y \removeWithTag
deben ser un símbolo
o lista de símbolos (como #'score
o #'(violinI
violinII
), seguida de una expresión musical. Si y solo
si los símbolos son identificadores de LilyPond válidos
(caracteres alfabéticos solamente, sin números, guiones bajos ni
guiones normales) que no puedan confundirse con notas, la porción
#'
se puede omitir y, como abreviatura, una lista de
símbolos puede usar el separador de punto, es decir: \tag
#'(violinI violinII)
se puede escribir como \tag
violinI.violinII
. Lo mismo vale para \keepWithTag
y
\removeWithTag
.
En el ejemplo siguiente vemos dos versiones de una pieza musical, una que muestra trinos con la notación usual y otra con los trinos expandidos explícitamente:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand { \repeat unfold 3 { e32 d } } c32 d } \score { \keepWithTag #'trills \music } \score { \keepWithTag #'expand \music }
De forma alternativa, a veces es más fácil excluir secciones de música:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand {\repeat unfold 3 { e32 d } } c32 d } \score { \removeWithTag #'expand \music } \score { \removeWithTag #'trills \music }
El filtrado con etiquetas se puede aplicar a articulaciones, textos, etc. anteponiendo
-\tag #'mi-etiqueta
a una articulación. Por ejemplo, esto define una nota con una indicación opcional de digitación y una nota con una anotación condicional:
c1-\tag #'finger ^4 c1-\tag #'warn ^"¡Ojo!"
Se pueden poner varias etiquetas sobre expresiones con varias
entradas de \tag
, o combinando varias etiquetas en una
lista de símbolos:
music = \relative c'' { \tag #'a \tag #'both { a4 a a a } \tag #'(b both) { b4 b b b } } << \keepWithTag #'a \music \keepWithTag #'b \music \keepWithTag #'both \music >>
Se pueden aplicar varios filtros \removeWithTag
a una sola
expresión musical para quitar varias secciones etiquetadas con
nombres distintos. De forma alternativa, podemos usar una sola
instrucción \removeWithTag
con una lista de etiquetas.
music = \relative c'' { \tag #'A { a4 a a a } \tag #'B { b4 b b b } \tag #'C { c4 c c c } \tag #'D { d4 d d d } } \new Voice { \removeWithTag #'B \removeWithTag #'C \music \removeWithTag #'(B C) \music }
El uso de dos o más filtros \keepWithTag
sobre una sola
expresión musical produce la eliminación de todas las
secciones etiquetadas. El primer filtro quita todas excepto la
que se nombra, y cualquier filtro posterior elimina el resto.
Usando una sola instrucción \keepWithTag
con una lista de
varias etiquetas se suprimirán solamente las secciones etiquetadas
que no aparezcan especificadas en la lista.
music = \relative c'' { \tag #'violinI { a4 a a a } \tag #'violinII { b4 b b b } \tag #'viola { c4 c c c } \tag #'cello { d4 d d d } } \new Staff { \keepWithTag #'(violinI violinII) \music }
will print \tag
s violinI and violinII but not
viola or cello.
Aunque \keepWithTag
es útil para el manejo de un
solo conjunto de alternativas, la eliminación de música
etiquetada con otras etiquetas no relacionadas es
problemática si se utilizan para más de un propósito. En ese caso
pueden declararse ‘grupos de etiquetas’:
\tagGroup #'(violinI violinII viola cello)
Ahora todas las etiquetas pertenecen a un solo ‘grupo de etiquetas’. Observe que las etiquetas individuales no pueden ser miembros de más de un grupo de etiquetas.
\keepWithTag #'violinI …
mostrará solamente la música etiquetada a partir del
grupo de etiquetas de violinI
y
cualquier fragmento musical etiquetado con una de las
otras etiquetas resultará suprimido.
music = \relative { \tagGroup #'(violinI violinII viola cello) \tag #'violinI { c''4^"violinI" c c c } \tag #'violinII { a2 a } \tag #'viola { e8 e e2. } \tag #'cello { d'2 d4 d } R1^"untagged" } \new Voice { \keepWithTag #'violinI \music }
Al usar la instrucción \keepWithTag
solo son visibles
las etiquetas de los grupos de aquellas etiquetas se se incluyen
en la instrucción.
A veces podemos desear dividir la música en un determinado lugar
dentro de una expresión musical existente. Podemos usar
\pushToTag
y \appendToTag
para añadir material
delante o al final de los elements
de una construcción
musical existente. No toda construcción musical tiene la parte
elements
, pero las músicas secuenciales y simultáneas son
dos apuestas seguras:
music = { \tag #'here { \tag #'here <<c''>> } } { \pushToTag #'here c' \pushToTag #'here e' \pushToTag #'here g' \music \appendToTag #'here c' \appendToTag #'here e' \appendToTag #'here g' \music }
Las dos instrucciones admiten una etiqueta, el material que dividir en cada ocurrencia de la etiqueta, y la expresión etiquetada.
Véase también
Manual de aprendizaje: Organizar las piezas mediante variables.
Referencia de la notación: Combinación automática de las partes, Inclusión de archivos de LilyPond.
Advertencias y problemas conocidos
Al llamar a \relative
sobre una expresión musical obtenida
mediante el filtrado de música con las instrucciones
\keepWithTag
o \removeWithTag
, podría ocurrir que
cambiaran las relaciones de octava, dado que solo se tendrán en
cuenta las alturas de las notas que efectivamente permanecen en
la expresión filtrada. La aplicación de \relative
en
primer lugar, antes de \keepWithTag
o de
\removeWithTag
, evita este peligro porque en este caso
\relative
actúa sobre todas las notas tal y como se
introducen.
Uso de ajustes globales
Se pueden incluir ajustes globales a partir de un archivo distinto:
lilypond -dinclude-settings=MIS_AJUSTES.ly MI_PARTITURA.ly
En archivos diferentes se pueden almacenar grupos de ajustes como el tamaño de la página o las fuentes tipográficas. Ello permite hacer diferentes ediciones de la misma partitura así como aplicar ajustes estándar a muchas partituras, simplemente por medio de la especificación del archivo de ajustes adecuado.
Esta técnica también funciona bien con el uso de hojas de estilo, como se estudia en Hojas de estilo.
Véase también
Manual de aprendizaje: Organizar las piezas mediante variables, Hojas de estilo.
Referencia de la notación: Inclusión de archivos de LilyPond.