LilyPond 記譜法リファレンス: 1.4.1 長い繰り返し

### 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 }
>     }

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

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

繰り返し時に入れ替えて演奏する部分は `\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
>     }

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

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

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

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

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

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

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

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

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

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

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

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

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

繰り返しを使わない:

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

繰り返しの始まりに:

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

繰り返しの終わりに:

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

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 "|."
>     }

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

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

#### 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 }
>       }
>     }

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

デフォルトでは、`Volta_engraver` は `Score` コンテキストに属しており、繰り返しの括弧は通常最上段の譜の上にのみ表示されます。これを調整するには、`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' } }
>     >>

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

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

>     \relative c'' {
>       \repeat volta 1 { c1 }
>       \set Score.doubleRepeatType = #":..:"
>       \repeat volta 1 { c1 }
>       \set Score.doubleRepeatType = #":|.|:"
>       \repeat volta 1 { c1 }
>       \set Score.doubleRepeatType = #":|.:"
>       \repeat volta 1 { c1 }
>     }

小節番号を変更する

小節番号を付番する異なる方法が 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
>     }

#### 参照

音楽用語集: 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
  >     }

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

`end-repeat`

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

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

`(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
  >     }

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

>     \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))
>     }

テキストを 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))
>     }

#### 参照

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

コード断片集: Repeats

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

#### 繰り返しを描き出す

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

>     \repeat unfold repeatcount musicexpr

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

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

いくつかのケースでは、特に `\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
>     }

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

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

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

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

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

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

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

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

#### 参照

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

コード断片集: Repeats

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

#### LilyPond — 記譜法リファレンス v2.22.2 (安定版).

- 2. 専門的な記譜法
- 3. 入出力全般
- 4. スペースの問題
- 5. デフォルトを変更する
- A. 付表
- B. カンニング ペーパー
- C. GNU Free Documentation License
- D. LilyPond コマンド インデックス
- E. LilyPond インデックス