1.4.1 長い繰り返し

このセクションでは長い (通常は複数の小節) 繰り返しを入力する方法について議論します。繰り返しには 2 つの形式があります: 繰り返し記号によって囲まれる繰り返しと、描き出される繰り返し – これは反復の多い音楽を入力するために使用されます – です。繰り返し記号を手動で制御することもできます。


通常の繰り返し

通常の繰り返しの構文は以下の通りです。

\repeat volta repeatcount musicexpr

ここで、musicexpr は音楽表記です。

入れ替えを持たない 1 回の繰り返しは以下のようになります:

\relative {
  \repeat volta 2 { c''4 d e f }
  c2 d
  \repeat volta 2 { d4 e f g }
}

[image of music]

繰り返しの‘開始’記号は、デフォルトでは最初の小節には表示されません。しかし、最初の音符の前に \bar ".|:" を用いることで表示させることができます。

\relative {
  \repeat volta 2 { \bar ".|:" c''4 d e f }
  c2 d
  \repeat volta 2 { d4 e f g }
}

[image of music]

繰り返し時に入れ替えて演奏する部分は \alternative を用いて作り出すことができます。入れ替えの各グループを波括弧で囲んで、このブロックの中に配置します。

\repeat volta repeatcount musicexpr
\alternative {
  { musicexpr }
}

ここで、musicexpr は音楽表記です。

繰り返し回数が入れ替え部分の数よりも多い場合、始めの方の繰り返しには最初の入れ替え部分が使用されます。

繰り返しが 1 回で、入れ替えも 1 つの場合は以下のようになります:

\relative {
  \repeat volta 2 { c''4 d e f | }
  \alternative {
    { c2 e | }
    { f2 g | }
  }
  c1
}

[image of music]

繰り返しが複数回あり、最後に入れ替え部分を演奏する繰り返しは以下のようになります:

\relative {
  \repeat volta 4 { c''4 d e f | }
  \alternative {
    { c2 e | }
    { f2 g | }
  }
  c1
}

[image of music]

繰り返しが複数回あり、入れ替えも 2 つ以上ある繰り返しは以下のようになります:

\relative {
  \repeat volta 3 { c''4 d e f | }
  \alternative {
    { c2 e | }
    { f2 g | }
    { a2 g | }
  }
  c1
}

[image of music]

Note: 入れ替えが複数ある場合、入れ替えの閉じ波括弧と次の入れ替えの開始の波括弧の間に何かを置くべきではありません。さもないと、予期せぬ数の入れ替えが発生します。

Note: Voice コンテキストを明示的にインスタンス化せずにrelativerepeat の中に配置すると、余計な譜が表示されます。 余計な譜が表示される を参照してください。

入れ替えの無い繰り返しが小節の途中で始まる場合、通常は後の小節の対応する中間部分で終了します (開始部分と終了部分で 1 つの完全な小節が作られます)。このような場合、繰り返し記号は‘本当の’小節線ではないため、小節チェックや \partial コマンドをそこに置くべきではありません:

c'4 e g
\repeat volta 4 {
  e4 |
  c2 e |
  g4 g g
}
  g4 |
  a2 a |
  g1 |

[image of music]

入れ替えの無い繰り返しが部分小節で始まる場合は、\partial コマンドが小節の最初に必要であることを除けば、同じ原則が適用されます:

\partial 4
\repeat volta 4 {
  e'4 |
  c2 e |
  g4 g g
}
  g4 |
  a2 a |
  g1 |

[image of music]

タイを 2 つ目の終了部に追加することができます:

\relative {
  c''1
  \repeat volta 2 { c4 d e f~ }
  \alternative {
    { f2 d }
    { f2\repeatTie f, }
  }
}

[image of music]

\inStaffSegno コマンドは、\repeat volta コマンドと一緒に用いられた際に、繰り返しの小節線とセーニョ記号を合体させた小節線を作り出します。どの繰り返し記号が使われるか (すなわち、開始記号か、終了記号か、両者を合わせた記号か) は、自動的に選択されます。対応する “D.S.” 記号は手動で入力しなければいけないことに注意してください。

繰り返しを使わない:

\relative {
  e'1
  \inStaffSegno
  f2 g a b
  c1_"D.S." \bar "|."
}

[image of music]

繰り返しの始まりに:

\relative {
  e'1
  \repeat volta 2 {
    \inStaffSegno  % start repeat
    f2 g a b
  }
  c1_"D.S." \bar "|."
}

[image of music]

繰り返しの終わりに:

\relative {
  e'1
  \repeat volta 2 {
    f2 g a b
    \inStaffSegno  % end repeat
  }
  f2 g a b
  c1_"D.S." \bar "|."
}

[image of music]

2 つの繰り返しの間に:

\relative {
  e'1
  \repeat volta 2 {
    f2 g a b
  }
  \inStaffSegno  % double repeat
  \repeat volta 2 {
    f2 g a b
  }
  c1_"D.S." \bar "|."
}

[image of music]

他の小節線記号を用いる場合、 (Score コンテキストに) プロパティ segnoBarType, startRepeatSegnoBarType, endRepeatSegnoBarType, doubleRepeatSegnoBarType を好みの値を設定します。小節線の種類はあらかじめ定義されているものか、前に \defineBarLine コマンドで定義されているものから選択する必要があります (小節線を参照してください)。

\defineBarLine ":|.S[" #'(":|." "S[" "")
\defineBarLine "]" #'("]" "" "")
\relative {
  e'1
  \repeat volta 2 {
    f2 g a b
    \once \set Score.endRepeatSegnoBarType = ":|.S["
    \inStaffSegno
  }
  f2 g \bar "]" a b
  c1_"D.S." \bar "|."
}

[image of music]

Selected Snippets

繰り返し括弧を短くする

デフォルトでは、繰り返し括弧は入れ替え部分全体に表示されますが、voltaSpannerDuration をセットすることで短くすることができます。次の例では、括弧は 1 小節、つまり 3/4 分だけ表示されます。

\relative c'' {
  \time 3/4
  c4 c c
  \set Score.voltaSpannerDuration = #(ly:make-moment 3/4)
  \repeat volta 5 { d4 d d }
  \alternative {
    {
      e4 e e
      f4 f f
    }
    { g4 g g }
  }
}

[image of music]

繰り返し括弧を他の譜にも追加する

デフォルトでは、Volta_engraverScore コンテキストに属しており、繰り返しの括弧は通常最上段の譜の上にのみ表示されます。これを調整するには、Volta_engraver を、括弧を表示させたい譜の Staff コンテキストに追加します。“複数譜に繰り返し括弧を表示する” スニペットも参照してください。

<<
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
  \new Staff \with { \consists "Volta_engraver" } { c'2 g' e' a' }
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
>>

[image of music]

入れ替え部分がある場合の二重繰り返しのデフォルトをセットする

入れ替え部分がある場合の二重繰り返しのスタイルには 3 種類あります。これは doubleRepeatBarType でセットすることができます。

\relative c'' {
  \repeat volta 2 { c1 }
  \set Score.doubleRepeatBarType = #":..:"
  \repeat volta 2 { c1 }
  \set Score.doubleRepeatBarType = #":|.|:"
  \repeat volta 2 { c1 }
  \set Score.doubleRepeatBarType = #":|.:"
  \repeat volta 2 { c1 }
}

[image of music]

小節番号を変更する

小節番号を付番する異なる方法が 2 つあり、繰り返しのある音楽に対して有用です。

\relative c'{
  \set Score.alternativeNumberingStyle = #'numbers
  \repeat volta 3 { c4 d e f | }
    \alternative {
      { c4 d e f | c2 d \break }
      { f4 g a b | f4 g a b | f2 a | \break }
      { c4 d e f | c2 d }
    }
  c1 \break
  \set Score.alternativeNumberingStyle = #'numbers-with-letters
  \repeat volta 3 { c,4 d e f | }
    \alternative {
      { c4 d e f | c2 d \break }
      { f4 g a b | f4 g a b | f2 a | \break }
      { c4 d e f | c2 d }
    }
  c1
}

[image of music]

参照

音楽用語集: repeat, volta

記譜法リファレンス: 小節線, コンテキストのプラグインを変更する, タイとスラーの形状を変更する, 時間管理

インストールされているファイル: ‘ly/engraver-init.ly

コード断片集: Repeats

内部リファレンス: VoltaBracket, RepeatedMusic, VoltaRepeatedMusic, UnfoldedRepeatedMusic

既知の問題と警告

\repeat ブロックから \alternative ブロックまで続くスラーは、最初の入れ替え部分に対してのみ機能します。他の入れ替え部分に対して見た目上、スラーを伸ばすには \repeatTie を使います。 しかしながら、この手法はスラーが 1 本の場合のみ可能であり、TabStaff では機能しません。複数のスラーを入れ替え部分に伸ばし、TabStaff コンテキストでも機能する手法は タイとスラーの形状を変更する で示しています。

さらに、入れ替え部分の最後から繰り返しの開始点までスラーで結ぶこともできません。

\repeat ブロックから \alternative ブロックまで続くグリッサンドは最初の入れ替え部分に対してのみ機能します。他の入れ替え部分に対して見た目上、グリッサンドを伸ばすには、見えない装飾音符から始まるグリッサンドのコードを記述します。例として、グリッサンド の楽譜断片集にある “繰り返しを跨いでグリッサンドを延長する” を参照してください。

不完全な小節で始まる繰り返しが measureLength プロパティの変更を行う\alternative ブロックを持つ場合、\unfoldRepeats を使用するとおかしな場所に小節線が引かれ、小節チェック警告が発生します。

以下のようにネストされた繰り返し

\repeat …
\repeat …
\alternative

はあいまいです。なぜなら、\alternative がどちらの \repeat に属するのかはっきりしないからです。このあいまいさは、常に \alternative を内側の \repeat に属させることによって解決されます。はっきりとさせるために、そのような状況では波括弧を使用すると賢明です。


手動の繰り返し記号

Note: 以下の手法は特殊な繰り返し構造を表示するためだけに使用され、予期しない振る舞いをする可能性があります。たいていのケースでは、繰り返しは標準の repeat コマンドを用いるか、適切な小節線を譜刻することによって作成すべきです。更なる情報は、小節線 を参照してください。

プロパティ repeatCommands を用いて繰り返しのレイアウトを制御することができます。このプロパティの値は繰り返しコマンドの Scheme リストです。

start-repeat

.|: 小節線を譜刻します。

\relative {
  c''1
  \set Score.repeatCommands = #'(start-repeat)
  d4 e f g
  c1
}

[image of music]

標準の譜刻習慣に従い、楽曲の先頭では繰り返し記号は譜刻されません。

end-repeat

:|. 小節線を譜刻します。

\relative {
  c''1
  d4 e f g
  \set Score.repeatCommands = #'(end-repeat)
  c1
}

[image of music]

(volta number) … (volta #f)

指定された番号を持つ新しい volta を作成します。Volta 囲みは明示的に終了させる必要があります。さもなければ、譜刻されません。

\relative {
  f''4 g a b
  \set Score.repeatCommands = #'((volta "2"))
  g4 a g a
  \set Score.repeatCommands = #'((volta #f))
  c1
}

[image of music]

複数の繰り返しコマンドが同時に発生することもあります:

\relative {
  f''4 g a b
  \set Score.repeatCommands = #'((volta "2, 5") end-repeat)
  g4 a g a
  c1
  \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
  b1
  \set Score.repeatCommands = #'((volta #f))
}

[image of music]

テキストを volta 囲みに含めることができます。テキストに使用できるのは数字やマークアップ テキストです。テキストをフォーマットする を参照してください。マークアップ テキストを使用するための最も簡単な方法は、最初にマークアップを定義し、それからそのマークアップを Scheme リストに含める方法です。

voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
\relative {
  c''1
  \set Score.repeatCommands =
    #(list(list 'volta voltaAdLib) 'start-repeat)
  c4 b d e
  \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
  f1
  \set Score.repeatCommands = #'((volta #f))
}

[image of music]

参照

記譜法リファレンス: 小節線, テキストをフォーマットする

コード断片集: Repeats

内部リファレンス: VoltaBracket, RepeatedMusic, VoltaRepeatedMusic


繰り返しを描き出す

unfold コマンドを用いることにより、繰り返しを単に反復する音楽を描き出すために使用することができます。構文は以下の通りです:

\repeat unfold repeatcount musicexpr

ここで、musicexpr は音楽表記であり、repeatcountmusicexpr を繰り返す回数です。

\relative {
  \repeat unfold 2 { c''4 d e f }
  c1
}

[image of music]

いくつかのケースでは、特に \relative コンテキストの中では、\repeat unfold 関数は音楽表記を複数回記述したものと同じにはなりません。例えば、

\repeat unfold 2 { a'4 b c }

これは以下と等価ではありません。

a'4 b c | a'4 b c

入れ替え部分がある繰り返しを展開することもできます。

\relative {
  \repeat unfold 2 { c''4 d e f }
  \alternative {
    { c2 g' }
    { c,2 b }
  }
  c1
}

[image of music]

繰り返し回数が入れ替え部分の数よりも多い場合、最初の入れ替え部分だけが適用されます。残りの入れ替えは無視されて譜刻されません。

\relative {
  \repeat unfold 4 { c''4 d e f }
  \alternative {
    { c2 g' }
    { c,2 b }
    { e2 d }
   }
  c1
}

[image of music]

入れ替え部分の数が繰り返し回数よりも多い場合、最初の入れ替え部分が使用され、残りの繰り返し部分は無視され、譜刻されません。

\relative {
  \repeat unfold 2 { c''4 d e f }
  \alternative {
    { c2 g' }
    { c,2 b }
    { e2 d }
  }
  c1
}

[image of music]

複数の unfold 関数をネストすることも可能です。(unfold は入れ替え部分を持っていても、持っていなくても構いません。)

\relative {
  \repeat unfold 2 {
    \repeat unfold 2 { c''4 d e f }
    \alternative {
      { c2 g' }
      { c,2 b }
    }
  }
  c1
}

[image of music]

和音構造は和音の繰り返し記号 q で繰り返すことができます。和音の繰り返し を参照してください。

Note: Voice コンテキストを明示的にインスタンス化せずにrelativerepeat の中に配置すると、余計な譜が表示されます。 余計な譜が表示される を参照してください。

参照

記譜法リファレンス: 和音の繰り返し

コード断片集: Repeats

内部リファレンス: RepeatedMusic, UnfoldedRepeatedMusic


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