2.1.2 Técnicas específicas para la letra


Trabajar con letra y variables

Se pueden crear variables que contienen letra, pero la letra se debe introducir en el modo de letra:

musicOne = \relative {
  c''4 b8. a16 g4. f8 e4 d c2
}
verseOne = \lyricmode {
  Joy to the world, the Lord is come.
}
\score {
  <<
    \new Voice = "one" {
      \time 2/4
      \musicOne
    }
    \new Lyrics \lyricsto "one" {
      \verseOne
    }
  >>
}

[image of music]

No es necesario escribir las duraciones si la variables se va a invocar con \addlyrics o con \lyricsto.

Para disposiciones distintas o más complejas, la mejor forma es definir en primer lugar las variables de la música y de la letra, después preparar una jerarquía de pentagramas y letras, omitiendo la letra en sí, y después poner la letra utilizando \context por debajo. Esto asegura que las voces referenciadas por \lyricsto siempre han sido definidas previamente. Por ejemplo:

sopranoMusic = \relative { c''4 c c c }
contraltoMusic = \relative { a'4 a a a }
sopranoWords = \lyricmode { Sop -- ra -- no words }
contraltoWords = \lyricmode { Con -- tral -- to words }

\score {
  \new ChoirStaff <<
    \new Staff {
      \new Voice = "sopranos" {
        \sopranoMusic
      }
    }
    \new Lyrics = "sopranos"
    \new Lyrics = "contraltos"
    \new Staff {
      \new Voice = "contraltos" {
        \contraltoMusic
      }
    }
    \context Lyrics = "sopranos" {
      \lyricsto "sopranos" {
        \sopranoWords
      }
    }
    \context Lyrics = "contraltos" {
      \lyricsto "contraltos" {
        \contraltoWords
      }
    }
  >>
}

[image of music]

Véase también

Referencia de la notación: Posicionamiento vertical de la letra.

Referencia de funcionamiento interno: LyricCombineMusic, Lyrics.


Posicionamiento vertical de la letra

Dependiendo del tipo de música, la letra puede colocarse sobre el pentagrama, debajo del pentagrama, o entre dos pentagramas. Lo más fácil es situar la letra debajo de la pauta asociada, y se puede conseguir simplemente definiendo el contexto Lyrics por debajo del contexto Staff:

\score {
  <<
    \new Staff {
      \new Voice = "melody" {
        \relative { c''4 c c c }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Here are the words
      }
    }
  >>
}

[image of music]

Se puede colocar la letra sobre el pentagrama usando uno de los dos métodos disponibles: el más sencillo (y preferible) es usar la misma sintaxis que se ha visto más arriba y especificar explícitamente la posición de la letra:

\score {
  <<
    \new Staff = "staff" {
      \new Voice = "melody" {
        \relative { c''4 c c c }
      }
    }
    \new Lyrics \with { alignAboveContext = "staff" } {
      \lyricsto "melody" {
        Here are the words
      }
    }
  >>
}

[image of music]

Como alternativa, se puede usar un proceso en dos pasos. En primer lugar se declara el contexto Lyrics (sin ningún contenido) antes de los contextos Staff y Voice, y después se escribe la instrucción \lyricsto después de la declaración de Voice a que hace referencia, usando \context, como se ve a continuación:

\score {
  <<
    \new Lyrics = "lyrics" \with {
      % lyrics above a staff should have this override
      \override VerticalAxisGroup.staff-affinity = #DOWN
    }
    \new Staff {
      \new Voice = "melody" {
        \relative { c''4 c c c }
      }
    }
    \context Lyrics = "lyrics" {
      \lyricsto "melody" {
        Here are the words
      }
    }
  >>
}

[image of music]

Cuando hay dos voces sobre pentagramas separados, la letra se puede colocar entre ellos usando cualquiera de estos métodos. He aquí un ejemplo del segundo método:

\score {
  \new ChoirStaff <<
    \new Staff {
      \new Voice = "sopranos" {
        \relative { c''4 c c c }
      }
    }
    \new Lyrics = "sopranos"
    \new Lyrics = "contraltos" \with {
      % lyrics above a staff should have this override
      \override VerticalAxisGroup.staff-affinity = #DOWN
    }
    \new Staff {
      \new Voice = "contraltos" {
        \relative { a'4 a a a }
      }
    }
    \context Lyrics = "sopranos" {
      \lyricsto "sopranos" {
        Sop -- ra -- no words
      }
    }
    \context Lyrics = "contraltos" {
      \lyricsto "contraltos" {
        Con -- tral -- to words
      }
    }
  >>
}

[image of music]

Es posible generar otras combinaciones de letra y pautas mediante la elaboración de los ejemplos anteriores, o examinando las plantillas del Manual de Aprendizaje, véase Plantillas de conjuntos vocales.

Fragmentos de código seleccionados

Conseguir el espaciado de la letra de la versión 2.12

en versiones más recientes

El motor de espaciado vertical cambió en la versión 2.14. Esto puede hacer que se altere el espaciado de la letra de las canciones. Es posible fijar propiedades para los contextos Lyric y Staff de forma que el motor de espaciado se comporte como lo hacía en la versión 2.12.

global = {
  \key d \major
  \time 3/4
}

sopMusic = \relative c' {
  % VERSE ONE
  fis4 fis fis | \break
  fis4. e8 e4
}

altoMusic = \relative c' {
  % VERSE ONE
  d4 d d |
  d4. b8 b4 |
}

tenorMusic = \relative c' {
  a4 a a |
  b4. g8 g4 |
}

bassMusic = \relative c {
  d4 d d |
  g,4. g8 g4 |
}

words = \lyricmode {
  Great is Thy faith -- ful -- ness,
}

\score {
  \new ChoirStaff <<
    \new Lyrics = sopranos
    \new Staff = women <<
      \new Voice = "sopranos" {
        \voiceOne
        \global \sopMusic
      }
      \new Voice = "altos" {
        \voiceTwo
        \global \altoMusic
      }
    >>
    \new Lyrics = "altos"
    \new Lyrics = "tenors"
    \new Staff = men <<
      \clef bass
      \new Voice = "tenors" {
        \voiceOne
        \global \tenorMusic
      }
      \new Voice = "basses" {
        \voiceTwo  \global \bassMusic
      }
    >>
    \new Lyrics = basses
    \context Lyrics = sopranos \lyricsto sopranos \words
    \context Lyrics = altos \lyricsto altos \words
    \context Lyrics = tenors \lyricsto tenors \words
    \context Lyrics = basses \lyricsto basses \words
  >>
  \layout {
    \context {
      \Lyrics
      \override VerticalAxisGroup.staff-affinity = ##f
      \override VerticalAxisGroup.staff-staff-spacing =
        #'((basic-distance . 0)
	   (minimum-distance . 2)
	   (padding . 2))
    }
    \context {
      \Staff
      \override VerticalAxisGroup.staff-staff-spacing =
        #'((basic-distance . 0)
	   (minimum-distance . 2)
	   (padding . 2))
    }
  }
}

[image of music]

Véase también

Manual de aprendizaje: Plantillas de conjuntos vocales.

Referencia de la notación: Orden de disposición de los contextos, Crear y referenciar contextos.


Colocación horizontal de las sílabas

Para aumentar la separación entre las líneas de texto, establezca la propiedad minimum-distance de LyricSpace.

\relative c' {
  c c c c
  \override Lyrics.LyricSpace.minimum-distance = #1.0
  c c c c
}
\addlyrics {
  longtext longtext longtext longtext
  longtext longtext longtext longtext
}

[image of music]

Para efectuar este cambio en todas las letras de la partitura, ajuste la propiedad dentro del bloque \layout.

\score {
  \relative {
  c' c c c
  c c c c
  }
  \addlyrics {
  longtext longtext longtext longtext
  longtext longtext longtext longtext
  }
  \layout {
    \context {
      \Lyrics
      \override LyricSpace.minimum-distance = #1.0
    }
  }
}

[image of music]

Fragmentos de código seleccionados

Alineación de la letra

La alineación horizontal de la letra se puede ajustar sobreescribiendo la propiedad self-alignment-X del objeto LyricText. #-1 es izquierda, #0 es centrado y #1 es derecha; sin embargo, podemos usar también #LEFT, #CENTER y #RIGHT.

\layout { ragged-right = ##f }
\relative c'' {
  c1
  c1
  c1
}
\addlyrics {
  \once \override LyricText.self-alignment-X = #LEFT
  "This is left-aligned"
  \once \override LyricText.self-alignment-X = #CENTER
  "This is centered"
  \once \override LyricText.self-alignment-X = #1
  "This is right-aligned"
}

[image of music]

Advertencias y problemas conocidos

La comprobación necesaria para asegurar que las inscripciones de texto están dentro de los márgenes, requiere cálculos adicionales. Para acelerar ligeramente el procesado, se puede desactivar esta funcionalidad:

\override Score.PaperColumn.keep-inside-line = ##f

Para hacer que el texto evite también las líneas divisorias, use

\layout {
  \context {
    \Lyrics
      \consists Bar_engraver
      \consists Separating_line_group_engraver
      \hide BarLine
  }
}

Letra y repeticiones

Repeticiones sencillas

Las repeticiones en la música se describen extensamente en alguna otra parte de este manual; véase Repeticiones. Esta sección explica cómo añadir letra a secciones de música que se repiten.

La letra que va con una sección de música que se repite, debiera estar encerrada en la misma construcción de repeticiones exacta que la música, si el texto no cambia.

\score {
  <<
    \new Staff {
      \new Voice = "melody" {
        \relative {
          a'4 a a a
          \repeat volta 2 { b4 b b b }
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Not re -- peat -- ed.
        \repeat volta 2 { Re -- peat -- ed twice. }
      }
    }
  >>
}

[image of music]

El texto se expandirá correctamente de esta manera si las repeticiones se despliegan.

\score {
  \unfoldRepeats {
    <<
      \new Staff {
        \new Voice = "melody" {
          \relative {
            a'4 a a a
            \repeat volta 2 { b4 b b b }
          }
        }
      }
      \new Lyrics {
        \lyricsto "melody" {
          Not re -- peat -- ed.
          \repeat volta 2 { Re -- peat -- ed twice. }
        }
      }
    >>
  }
}

[image of music]

Si la sección repetida ha de desplegarse y tiene distinta letra, escriba simplemente todo el texto:

\score {
  <<
    \new Staff {
      \new Voice = "melody" {
        \relative {
          a'4 a a a
          \repeat unfold 2 { b4 b b b }
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Not re -- peat -- ed.
        The first time words.
        Sec -- ond time words.
      }
    }
  >>
}

[image of music]

Cuando el texto de las secciones de primera o segunda vez es distinto, la letra de cada repetición se debe escribir dentro de contextos Lyrics diferentes, anidados correctamente en secciones paralelas:

\score {
  <<
    \new Staff {
      \new Voice = "melody" {
        \relative {
          a'4 a a a
          \repeat volta 2 { b4 b b b }
        }
      }
    }
    \new Lyrics \lyricsto "melody" {
      Not re -- peat -- ed.
      <<
	{ The first time words. }
	\new Lyrics {
	  \set associatedVoice = "melody"
	  Sec -- ond time words.
	}
      >>
    }
  >>
}

[image of music]

Se pueden añadir más estrofas de una manera similar:

\score {
  <<
    \new Staff {
      \new Voice = "singleVoice" {
        \relative {
	  a'4 a a a
	  \repeat volta 3 { b4 b b b }
          c4 c c c
	}
      }
    }
    \new Lyrics \lyricsto "singleVoice" {
      Not re -- peat -- ed.
      <<
        { The first time words.	}
	\new Lyrics {
	  \set associatedVoice = "singleVoice"
	  Sec -- ond time words.
	}
	\new Lyrics {
	  \set associatedVoice = "singleVoice"
	  The third time words.
	}
      >>
      The end sec -- tion.
    }
  >>
}

[image of music]

Sin embargo, si esta construcción se inserta dentro de un contexto de varios pentagramas tal como un ChoirStaff, la letra de los versos segundo y tercero aparecerán debajo del pentagrama inferior.

Para posicionarlos correctamente utilice alignBelowContext:

\score {
  <<
    \new Staff {
      \new Voice = "melody" {
        \relative {
	  a'4 a a a
	  \repeat volta 3 { b4 b b b }
          c4 c c c
	}
      }
    }
    \new Lyrics = "firstVerse" \lyricsto "melody" {
      Not re -- peat -- ed.
      <<
        { The first time words.	}
	\new Lyrics = "secondVerse"
        \with { alignBelowContext = "firstVerse" } {
	  \set associatedVoice = "melody"
	  Sec -- ond time words.
	}
	\new Lyrics = "thirdVerse"
        \with { alignBelowContext = "secondVerse" } {
	  \set associatedVoice = "melody"
	  The third time words.
	}
      >>
      The end sec -- tion.
    }
    \new Voice = "harmony" {
      \relative {
        f'4 f f f \repeat volta 2 { g8 g g4 g2 } a4 a8. a16 a2
      }
    }
  >>
}

[image of music]

Repeticiones con finales alternativos (primera y segunda vez)

Si el texto de la sección repetida es el mismo, y ninguno de los bloques \alternative comienza con un silencio, se puede usar exactamente la misma estructura tanto para la letra como para la música. Esto tiene la ventaja de que \unfoldRepeats expande correctamente tanto la música como la letra.

\score {
  <<
    \new Staff {
      \time 2/4
      \new Voice = "melody" {
        \relative {
          a'4 a a a
          \repeat volta 2 { b4 b }
          \alternative { { b b } { b c } }
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Not re -- peat -- ed.
        \repeat volta 2 { Re -- peat -- }
        \alternative { { ed twice. } { ed twice. } }
      }
    }
  >>
}

[image of music]

Pero cuando la sección repetida tiene un texto distinto, o cuando uno de los bloques \alternative comienza con un silencio, no se puede usar una construcción de repetición para el texto y es necesario insertar manualmente instrucciones \skip para saltar sobre las notas en las secciones alternativas que no correspondan.

Nota: no utilice un guión bajo, _, para saltar notas: el guión bajo indica un melisma, y hace que la sílaba anterior resulte alineada por la izquierda.

Nota: La instrucción \skip debe ir seguida por un número, pero este número se ignora dentro de la letra, que deriva las duraciones de las notas de una melodía asociada a través de \addlyrics o \lyricsto. Cada \skip salta una sola nota de cualquier valor, independientemente del valor del número que se escribe a continuación.

\score {
  <<
    \new Staff {
      \time 2/4
      \new Voice = "melody" {
        \relative {
          \repeat volta 2 { b'4 b }
          \alternative { { b b } { b c } }
          c4 c
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        The first time words.
        \repeat unfold 2 { \skip 1 }
        End here.
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Sec -- ond
        \repeat unfold 2 { \skip 1 }
        time words.
      }
    }
  >>
}

[image of music]

Cuando una nota está ligada sobre dos o más finales alternativos (sobre la primera nota de una casilla de primera y segunda vez), se usa una ligadura de unión para arrastrar la nota dentro del primer final alternativo y se usa una instrucción \repeatTie de ligadura de repetición en las casillas de repetición siguientes. Esta estructura produce problemas de alineación difíciles cuando hay letra de por medio; aumentar la longitud de las secciones alternativas de forma que las notas ligadas se vean contenidas completamente dentro de ellas, puede ofrecer un resultado más aceptable.

La ligadura de unión crea un melisma dentro de la casilla de primera vez pero no en la segunda vez y siguientes; por tanto, para alinear la letra correctamente es necesario inhabilitar la creación automática de melismas sobre la sección de finales alternativos e insertar saltos manuales.

\score {
  <<
    \new Staff {
      \time 2/4
      \new Voice = "melody" {
        \relative {
          \set melismaBusyProperties = #'()
          \repeat volta 2 { b'4 b ~}
          \alternative { { b b } { b \repeatTie c } }
          \unset melismaBusyProperties
          c4 c
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        \repeat volta 2 { Here's a __ }
        \alternative {
          { \skip 1 verse }
          { \skip 1 sec }
        }
        ond one.
      }
    }
  >>
}

[image of music]

Observe que si se usa \unfoldRepeats sobre una sección que contiene alguna \repeatTie, la \repeatTie se debe eliminar para evitar que se impriman al mismo tiempo los dos tipos de ligadura.

Cuando la sección repetida tiene textos distintos, no se puede usar \repeat para la letra y se deben insertar instrucciones \skip manualmente, como se vio antes.

\score {
  <<
    \new Staff {
      \time 2/4
      \new Voice = "melody" {
        \relative {
          \repeat volta 2 { b'4 b ~}
          \alternative { { b b } { b \repeatTie c } }
          c4 c
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Here's a __ verse.
        \repeat unfold 2 { \skip 1 }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Here's one
        \repeat unfold 2 { \skip 1 }
        more to sing.
      }
    }
  >>
}

[image of music]

Si queremos imprimir líneas extensoras y guiones que entran o salen de las casillas de primera y segunda vez, hemos de insertarlos manualmente.

\score {
  <<
    \new Staff {
      \time 2/4
      \new Voice = "melody" {
        \relative {
          \repeat volta 2 { b'4 b ~}
          \alternative { { b b } { b \repeatTie c } }
          c4 c
        }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Here's a __ verse.
        \repeat unfold 2 { \skip 1 }
      }
    }
    \new Lyrics {
      \lyricsto "melody" {
        Here's "a_"
        \skip 1
        "_" sec -- ond one.
      }
    }
  >>
}

[image of music]

Véase también

Referencia de la notación: Mantener vivos los contextos, Repeticiones.


Letras en divisi

Cuando solamente difieren las palabras y las duraciones de las dos partes mientras que la altura de las notas es la misma, el método adecuado puede ser la desactivación temporal de la detección automática de los melismas e indicar el melisma dentro de la letra:

\score {
  <<
    \new Voice = "melody" {
      \relative c' {
        \set melismaBusyProperties = #'()
        \slurDown
        \slurDashed
        e4 e8 ( e ) c4 c |
        \unset melismaBusyProperties
        c
      }
    }
    \new Lyrics \lyricsto "melody" {
      They shall not o -- ver -- come
    }
    \new Lyrics \lyricsto "melody" {
      We will _
    }
  >>
}

[image of music]

Cuando difieren tanto la música como las palabras, puede ser mejor imprimir la música y la letra que difieren mediante el nombrado de contextos de voz y adjuntando la letra a estos contextos específicos:

\score {
  <<
    \new Voice = "melody" {
      \relative {
        <<
          {
            \voiceOne
            e'4 e8 e
          }
          \new Voice = "splitpart" {
            \voiceTwo
            c4 c
          }
        >>
        \oneVoice
        c4 c |
        c
      }
    }
    \new Lyrics \lyricsto "melody" {
      They shall not o -- ver -- come
    }
    \new Lyrics \lyricsto "splitpart" {
      We will
    }
  >>
}

[image of music]

En la música coral es frecuente que una parte vocal se divida en dos durante varios compases. La construcción << {…} \\ {…} >>, en la que dos (o más) expresiones musicales están separadas por dos barras invertidas, puede en principio parecer la forma más adecuada de realizar las voces divididas. Sin embargo, esta construcción asigna todas las expresiones que están dentro de ella a contextos de voz NUEVOS lo que hace que no se asigne a ellas ninguna letra porque la letra se asigna al contexto de voz original, que no es lo que pretendemos, en general. La construcción correcta que debemos usar es el pasaje polifónico temporal, véase la sección Pasajes polifónicos temporales dentro de Polifonía en un solo pentagrama.


Polifonía con letras compartidas

Cuando dos voces cuyas notas tienen distintas duraciones comparten la misma letra, la alineación de ésta a una de las voces puede dar lugar a problemas en la otra voz. Por ejemplo, la segunda línea extensora que se ve debajo es demasiado corta, porque la letra está alineada solamente a la voz superior:

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice = "sopranoVoice" { \voiceOne \soprano }
  \new Voice { \voiceTwo \alto }
  \new Lyrics \lyricsto "sopranoVoice" \words
>>

[image of music]

Para obtener el resultado deseado, alinee la letra con un contexto NullVoice (‘Voz Nula’) nuevo que contenga una combinación adecuada de las dos voces. Las notas del contexto NullVoice no aparecen en la página impresa, pero pueden utilizarse para alinear la letra adecuadamente:

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
aligner = \relative { b'8( c d c) b( a g a) }
words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice { \voiceOne \soprano }
  \new Voice { \voiceTwo \alto }
  \new NullVoice = "aligner" \aligner
  \new Lyrics \lyricsto "aligner" \words
>>

[image of music]

Este método se puede usar trambién con la función \partCombine, que en sí no permite incluir letra:

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
aligner = \relative { b'8( c d c) b( a g a) }
words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice \partCombine \soprano \alto
  \new NullVoice = "aligner" \aligner
  \new Lyrics \lyricsto "aligner" \words
>>

[image of music]

Advertencias y problemas conocidos

La función \addlyrics solo funciona con letras de Voice, por lo que no puede utilizarse con NullVoice.

La función \partCombine se describe en Combinación automática de las partes.

Por último, este método se puede usar incluso si las voces están en distintos pentagramas, y no se limita a dos voces únicamente:

soprano = \relative { b'8( c d c) d2 }
altoOne = \relative { g'2 b8( a b4) }
altoTwo = \relative { d'2 g4( fis8 g) }
aligner = \relative { b'8( c d c) d( d d d) }
words = \lyricmode { la __ la __ }

\new ChoirStaff \with {\accepts NullVoice } <<
  \new Staff \soprano
  \new NullVoice = "aligner" \aligner
  \new Lyrics \lyricsto "aligner" \words
  \new Staff \partCombine \altoOne \altoTwo
>>

[image of music]


LilyPond — Referencia de la notación v2.23.82 (rama de desarrollo).