歌詞の垂直方向の配置

音楽の種類によって、歌詞が譜の上、下、あるいは間に配置されることもあります。歌詞を関連する譜の下に配置することが最も簡単で、Staff コンテキストの下に Lyrics コンテキストを定義するだけで実現できます:

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

[image of music]

歌詞を譜の上に配置する方法は 2 つあります。簡単な (そして好まれる) のは、上記と同じ構文を用いて歌詞の配置を明示的に指定する方法です:

\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]

代替手段として、2 ステップのプロセスを用いることもできます。最初に、Staff コンテキストと Voice コンテキストより先に Lyrics コンテキストを宣言して (内容は記述しません)、それから参照する Voice コンテキストの宣言の後に \context を用いて \lyricsto コマンドを配置します。以下のようにします:

\score {
  <<
    \new Lyrics = "lyrics" \with {
      % 譜の上に配置する歌詞は以下のオーバライドを行う必要があります
      \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]

別々の譜に配置される 2 つのボイスがある場合、上記の方法のいずれかを用いて歌詞を譜の間に配置することができます。ここでは、2 番目の方法を用いる例を挙げます:

\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]

他の歌詞と譜の組み合わせは、上記の例に磨きをかけるか、学習マニュアルの中にあるテンプレート – Vocal ensembles templates を参照してください – を吟味することによって作り出すことができます。

Selected Snippets

2.12 の歌詞のスペーシングを新しいバージョンで得る

縦方向のスペーシング エンジンはバージョン 2.14 で変更されました。そのため、歌詞が異なってスペーシングされます。

LyricStaff コンテキストに対して、スペーシング エンジンがバージョン 2.12 と同様に振る舞うようなプロパティをセットすることができます。

\header { tagline = ##f }

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]

参照

学習マニュアル: Vocal ensembles templates

記譜法リファレンス: コンテキストの配置順序, コンテキストを作成して参照する


LilyPond 記譜法リファレンス v2.25.21 (開発版).