Lilypond: ¿cómo puedo escribir letras para silencios en varias estrofas?

alguien podría ayudarme con mi problema, por favor?

Tengo este código de Lilypond 2.18.2:

\version "2.18.2"
\language "deutsch"

global = {
  \time 4/4
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/8)
  \set Timing.beatStructure = #'(2 2 1 1 2)
}

melody = \relative c' {
  \global
   r4 r r8 d d d
}

accRight = \relative c' {
  \global
  r8 <h d g> <h d g> <h d g> <h d g> r r4

}

accLeft = \relative c {
  \global
  g4 g' g, g'
}

verseOne = \lyricmode {
  a a a  
}

verseTwo = \lyricmode {
  b b b 
}
choirOne = \lyricmode {
  (a a a a)
}
choirTwo = \lyricmode {
  (b b b b)
}


\score {
  <<
    \new ChoirStaff <<
      \new Staff <<
        \new Voice { \voiceOne \melody }
        \addlyrics { \verseOne }
        \addlyrics { \verseTwo }
        \new Voice { \voiceTwo \accRight }
        \addlyrics { \choirOne }
        \addlyrics { \choirTwo }
      >>
      \new Staff { \clef bass \accLeft }
    >>
  >>
}

Se parece a esto:

extracto

Y ahora quiero tener todas las a en la letra en la primera línea y todas las b en la segunda línea, pero no hacer nada con las notas. Así (hecho con Windows Paint):

meta

De alguna manera pon la letra en los silencios, pero mantén los silencios aquí. Ya probé varias soluciones, pero ninguna de ellas funcionó con varias estrofas. ¿Usted me podría ayudar por favor? No necesito midi, solo la sábana.

@VitHenych Propongo una solución aún mejor usando NullVoice, vea la respuesta. También tenga en cuenta que qes un atajo para el último acorde ingresado usando la <...>notación, por lo que <h d g> q d qes lo mismo que <h d g> <h d g> d <h d g>. Facilita la codificación :-)

Respuestas (2)

Puede combinar dos voces en una sola NullVoicey luego agregar letras a esto:

\version "2.18.2"
\language "deutsch"

global = {
  \time 4/4
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/8)
  \set Timing.beatStructure = #'(2 2 1 1 2)
}

melody = \relative d' {
  \global
   r4 r r8 d d d
}

accRight = \relative h {
  \global
  r8 <h d g> q q q r r4
}

accLeft = \relative g, {
  \global
  g4 g' g, g'
}

%verseOne = \lyricmode { a a a }
%verseTwo = \lyricmode { b b b }
%choirOne = \lyricmode { (a a a a) }
%choirTwo = \lyricmode { (b b b b) }
alltextOne = \lyricmode { (a a a a) a a a }
alltextTwo = \lyricmode { (b b b b) b b b }

\score {
  <<
    \new ChoirStaff <<
      \new Staff <<
        \new Voice { \voiceOne \melody }
        \new Voice { \voiceTwo \accRight }
        \new NullVoice = "allvoice" << \melody \accRight >>
      >>
      \new Lyrics \lyricsto "allvoice" { \alltextOne }
      \new Lyrics \lyricsto "allvoice" { \alltextTwo }
      \new Staff { \clef bass \accLeft }
    >>
  >>
}

ingrese la descripción de la imagen aquí


Si esta opción falla, puede:

  • complete NullVoicemanualmente (Ejemplo A a continuación),
  • ingrese duraciones manuales para sus letras (esto, sin embargo, da una mala salida visual) (Ejemplo B a continuación), o
  • mantenga toda la música en una voz y todos los silencios en otra y siga cambiando usando \voiceOney \voiceTwo(Ejemplo C a continuación).

Ejemplo A

\version "2.18.2"
\language "deutsch"

global = {
  \time 4/4
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/8)
  \set Timing.beatStructure = #'(2 2 1 1 2)
}

melody = \relative d' {
  \global
   r4 r r8 d d d
}

accRight = \relative h {
  \global
  r8 <h d g> q q q r r4
}

accLeft = \relative g, {
  \global
  g4 g' g, g'
}

textRhythm = { r8 c c c c c c c }
alltextOne = \lyricmode { (a a a a) a a a }
alltextTwo = \lyricmode { (b b b b) b b b }

\score {
  <<
    \new ChoirStaff <<
      \new Staff <<
        \new Voice { \voiceOne \melody }
        \new Voice { \voiceTwo \accRight }
        \new NullVoice = "allvoice" { \textRhythm }
      >>
      \new Lyrics \lyricsto "allvoice" { \alltextOne }
      \new Lyrics \lyricsto "allvoice" { \alltextTwo }
      \new Staff { \clef bass \accLeft }
    >>
  >>
}

Ejemplo B

\version "2.18.2"
\language "deutsch"

global = {
  \time 4/4
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/8)
  \set Timing.beatStructure = #'(2 2 1 1 2)
}

melody = \relative d' {
  \global
   r4 r r8 d d d
}

accRight = \relative h {
  \global
  r8 <h d g> q q q r r4
}

accLeft = \relative g, {
  \global
  g4 g' g, g'
}

alltextOne = \lyricmode { \skip8 (a8 a8 a8 a)8 a8 a8 a8 }
alltextTwo = \lyricmode { \skip8 (b8 b8 b8 b)8 b8 b8 b8 }

\score {
  <<
    \new ChoirStaff <<
      \new Staff <<
        \new Voice { \voiceOne \melody }
        \new Voice { \voiceTwo \accRight }
      >>
      \new Lyrics { \alltextOne }
      \new Lyrics { \alltextTwo }
      \new Staff { \clef bass \accLeft }
    >>
  >>
}

Ejemplo C

\version "2.18.2"
\language "deutsch"

global = {
  \time 4/4
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/8)
  \set Timing.beatStructure = #'(2 2 1 1 2)
}

musicMusic = \relative d' {
  \global
  \voiceTwo r8 <h d g> q q q \voiceOne d d d
}

musicRests = {
    \global
    \voiceOne r4 r r8 \voiceTwo r8 r4
}

accLeft = \relative g, {
  \global
  g4 g' g, g'
}

alltextOne = \lyricmode { (a a a a) a a a }
alltextTwo = \lyricmode { (b b b b) b b b }

\score {
  <<
    \new ChoirStaff <<
      \new Staff <<
        \new Voice = "musicvoice" { \voiceOne \musicMusic }
        \new Voice = "restsvoice" { \voiceTwo \musicRests }
      >>
      \new Lyrics \lyricsto "musicvoice" { \alltextOne }
      \new Lyrics \lyricsto "musicvoice" { \alltextTwo }
      \new Staff { \clef bass \accLeft }
    >>
  >>
}
Gracias. Realmente ayudó. Ya he usado la opción B, que está bien para esta pieza, porque casi todo está aquí en la longitud de la corchea. Pero también me gustan las otras posibilidades. Los usaré en otras canciones.

Esta respuesta fue una buena respuesta, pero también encontré en la documentación de lilypond que puede agregar marcas a los descansos con bastante facilidad http://lilypond.org/doc/v2.18/Documentation/notation/writing-rests

Este es el fragmento particular que encontré útil. (no tiene que comprimir los silencios, el \textLengthOncomando (luego desactivado) hará que la medida se ajuste al texto de marcado anterior.

\relativa c' {
  \compressFullBarRests
  \textLongitudEn
  ^\marcado { [MAYOR GENERAL] }
  R1*19
  _\markup { \italic { Cue: ... es tuyo } }
  ^\marcado { A }
  R1*30^\marcado { [MABEL] }
  \textLongitudDesactivada
  c4^\marca {CORO} dfc
}