将二级歌词与隐藏的语音对齐

时间:2014-12-10 22:57:17

标签: lilypond

我觉得我已经接近了,但似乎很难得到两个节,其中一节与一个隐藏的声音对齐 - 所以节奏的变化可以用歌词来近似。

melody = \relative c' {
  \clef treble
  \key c \major
  \time 4/4
  c4 d e f | g f e d |

  <<
 \new Voice = "shown" {
  \relative c' { 
  c4 d c d | e f g2
     }
    }  

  \new Voice = "hidden" {
   \hide { 
  c'8 c d d c c d d | e f g2
     }
    }
  >>
}

text =  \lyricmode {
   Here we have a | li -- tle si -- lly

  <<
    {
      \set stanza = #"1. "
      Si -- lly li -- tle | al -- pha -- bet

    \new Lyrics {
      \set associatedVoice = "hidden"
      \set stanza = #"2. " 
      Si -- ly li -- tle fu -- nny soun -- ding |
      Al -- pha -- bet song.
        }
    }
  >>
  }

\score {
  <<
    \new Voice = "one" { \melody }
    \new Lyrics \lyricsto "one" \text
  >>

  \layout { }
  \midi { }
}

以上显示了两种声音,而且它们都没有&#34;相关的&#34; (或不)歌词。

2 个答案:

答案 0 :(得分:6)

您可以使用NullVoice上下文:

\version "2.19.15"
\language "english"

\score {
  \new Staff
  <<
    \new Voice = "displayedMusic" \relative c'' {
      b8 c d \times 2/3 {c16 d c}
      b8 a g a
      bf c bf \times 2/3 {a16 bf a}
      g8 f g a
      bf f' e a,
      d cs4.~
      cs1
    }

    \new NullVoice = "hiddenMusic"
    {
      c4 d e f %\break
      g a b8~ b c4 \break
      d e f g a
    }
    \new Lyrics \lyricsto "hiddenMusic" {
      Those words seem to be aligned to the hidden melody or are they?
    }
  >>
}

这将导致:

Sheet Music Snippet

答案 1 :(得分:2)

好。从我学到的lilypond mailinglist开始:

首先,你需要使用\ hideNotes,而不是\ hide。上述结构也不太有效。让所有歌词上下文从一开始就运行起来而不是一起开始它们通常会更容易 - 它们将从音符中获得它们的位置。这是一种方法,尽管在这种特殊情况下,节数不太合适。

melody = \relative c' {
  \clef treble
  \key c \major
  \time 4/4
  c4 d e f | g f e d |

  <<
    \new Voice = "shown" {
      \relative c' { 
        c4 d c d | e f g2
      }
    }  

    \new Voice = "hidden" {
      \hideNotes {                  % !!
        c'8 c d d c c d d | e f g2
      }
    }
  >>
}

text =  \lyricmode {
   Here we have a | li -- tle si -- lly
}

wordsOne = \lyricmode {
  \set stanza = #"1. "
  Si -- lly li -- tle | al -- pha -- bet
}

wordsTwo = \lyricmode {
  \set stanza = #"2. " 
  Si -- ly li -- tle fu -- nny soun -- ding |
  Al -- pha -- bet song.
}

\score {
  <<
    \new Voice = "one" { \melody }
    \new Lyrics \lyricsto "one" \text
    \new Lyrics \lyricsto "shown" \wordsOne
    \new Lyrics \lyricsto "hidden" \wordsTwo
  >>

  \layout { }
  \midi { }
}