LilyPond 記譜法リファレンス: 1.2.6 特殊なリズム関連事項

### 1.2.6 特殊なリズム関連事項

#### 装飾小音符

装飾小音符は装飾の音であり、小さなフォントで表示され、論理的には演奏時間を持ちません。

>     \relative {
>       c''4 \grace b16 a4(
>       \grace { b16 c16 } a2)
>     }

装飾音符には他にも 3 つのタイプがあります。acciaccatura (長さを持たない装飾小音符で、スラーでつなげられるスラッシュ付きの符幹を持つ音符) と、 appoggiatura (一定の比率で主音符から演奏時間を取り、スラッシュを持たない音符) です。スラーで結ばれた主音符の間に装飾小音符を配置するために、`\slashedGrace` 関数を用いて、 acciaccatura のようにスラッシュ付きの符幹を持つがスラーは付かない装飾小音符を譜刻することもできます。

>     \relative {
>       \acciaccatura d''8 c4
>       \appoggiatura e8 d4
>       \acciaccatura { g16 f } e2
>       \slashedGrace a,8 g4
>       \slashedGrace b16 a4(
>       \slashedGrace b8 a2)
>     }

装飾小音符の配置は他の譜と同期されます。以下の例では、8 分の装飾小音符 1 つに対して 2 つの 16 分装飾小音符が割り当てられています:

>     <<
>       \new Staff \relative { e''2 \grace { c16 d e f } e2 }
>       \new Staff \relative { c''2 \grace { g8 b } c2 }
>     >>

装飾小音符で記譜を終えたいのならば、`\afterGrace` コマンドを使用します。このコマンドは 2 つの引数をとります: 主音符と主音符の後に続く装飾小音符です。

>     \relative { c''1 \afterGrace d1 { c16[ d] } c1 }

これは主音符の後に装飾小音符を配置します。装飾小音符がどのタイミングで配置されるかは、主音符の長さとの割合で決められます。以下に示すデフォルトの設定はトップレベルで再定義することができます:

>     afterGraceFraction = 3/4

代わりに、個々の `\afterGrace` コマンドの直後に分数を与えることで割合を指定することもできます。

次の例は順に、デフォルトのスペース、主音符の `15/16` に指定した場合、主音符の `1/2` に指定した場合の結果を示しています。

>     <<
>       \new Staff \relative {
>         c''1 \afterGrace d1 { c16[ d] } c1
>       }
>       \new Staff \relative {
>         c''1 \afterGrace 15/16 d1 { c16[ d] } c1
>       }
>       \new Staff \relative {
>         c''1 \afterGrace 1/2 d1 { c16[ d] } c1
>       }
>     >>

`\afterGrace` の効果は、空白休符を用いても得ることができます。以下の例では、主音符の長さの 7/8 のスペースをとった後に装飾小音符を配置しています。

>     \new Voice \relative {
>       <<
>         { d''1^\trill_( }
>         { s2 s4. \grace { c16 d } }
>       >>
>       c1)
>     }

`\grace` 音楽表記は特殊な譜刻設定を導入します – 例えば、小さなフォントを作り出し、向きを設定するためです。それゆえ、装飾小音符の特殊な設定をオーバライドするためにレイアウトの調整を行う場合、調整は装飾小音符の表記の中に置くべきです。さらに、そのオーバライドは装飾小音符の表記の中で元に戻しておくべきです。以下の例では、装飾小音符の符幹のデフォルトの向きがオーバライドされ、それから元に戻されています。

>     \new Voice \relative {
>       \acciaccatura {
>         \stemDown
>         f''16->
>         \stemNeutral
>       }
>       g4 e c2
>     }

#### Selected Snippets

通常の符頭で装飾音符のスラッシュを使用する

アッチャカトゥーラに付加されるスラッシュを、他の場面で使用することができます。

>     \relative c'' {
>       \override Flag.stroke-style = #"grace"
>       c8( d2) e8( f4)
>     }

装飾音符のスタイルを調整する

`add-grace-property`, `remove-grace-property` を用いて、装飾音符のスタイルを楽譜全体にわたって変更することができます。次の例は 常に上向きとなっている `Stem` の向きの設定を無効にして、またデフォルトの符頭をクロスに変更しています。

>     \relative c'' {
>       \new Staff {
>         $(remove-grace-property 'Voice 'Stem 'direction)
>         $(add-grace-property 'Voice 'NoteHead 'style 'cross)
>         \new Voice {
>            \acciaccatura { f16 } g4
>            \grace { d16 e } f4
>            \appoggiatura { f,32 g a } e2
>         }
>       }
>     }

装飾音符のデフォルトの挙動を再定義する

装飾音符に関するデフォルトの識別子は `startGraceMusic`, `stopGraceMusic`, `startAcciaccaturaMusic`, `stopAcciaccaturaMusic`, `startAppoggiaturaMusic`, `stopAppoggiaturaMusic` であり、‘`ly/grace-init.ly`’ に定義されています。これらを再定義することで、装飾音符の挙動を変更することができます。

>     startAcciaccaturaMusic = {
>       <>(
>       \override Flag.stroke-style = #"grace"
>       \slurDashed
>     }

>     stopAcciaccaturaMusic = {
>       \revert Flag.stroke-style
>       \slurSolid
>       <>)
>     }

>     \relative c'' {
>       \acciaccatura d8 c1
>     }

装飾音符を浮いたスペースに配置する

`strict-grace-spacing` プロパティをセットすることで、装飾音符を列として ’浮いた’ 状態にすることができます。つまり、装飾音符ではない音符のスペーシングと独立させることができます: まず、通常の音符がスペーシングされ、その後に装飾音符が左側に配置されます。

>     \relative c'' {
>       <<
>         \override Score.SpacingSpanner.strict-grace-spacing = ##t
>         \new Staff \new Voice {
>           \afterGrace c4 { c16[ c8 c16] }
>           c8[ \grace { b16 d } c8]
>           c4 r
>         }
>         \new Staff {
>           c16 c c c c c c c c4 r
>         }
>       >>
>     }

#### 参照

音楽用語集: grace notes, acciaccatura, appoggiatura

記譜法リファレンス: 演奏時間を変更する, 手動連桁

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

コード断片集: Rhythms

内部リファレンス: GraceMusic, Grace_beam_engraver, Grace_auto_beam_engraver, Grace_engraver, Grace_spacing_engraver

#### 既知の問題と警告

複数の音符を連桁でつないだ アッチャカトゥーラ にはスラッシュは付けられず、複数の音符を連桁でつないだ アッポジャトゥーラ とまったく同じに見えます。

装飾小音符の同期は予期しない結果を引き起こす可能性があります。譜の記譜要素 – 拍子、小節線など – も同期をとられます。装飾小音符を持つ譜と持たない譜を混在させる場合は気をつけて下さい。例えば:

>     <<
>       \new Staff \relative { e''4 \bar ".|:" \grace c16 d2. }
>       \new Staff \relative { c''4 \bar ".|:" d2. }
>     >>

これは、他の譜にある装飾小音符の演奏時間に対応した空白の装飾小音符を挿入することによって修正することができます。上の例を以下のように修正します:

>     <<
>       \new Staff \relative { e''4 \bar ".|:" \grace c16 d2. }
>       \new Staff \relative { c''4 \bar ".|:" \grace s16 d2. }
>     >>

実際の音符部分には `\acciaccatura` や `\appoggiatura` を用いていたとしても、空白休符の部分には `\grace` コマンドを用いるようにしてください。そうしないと、見えない装飾小音符と次の音符とを繋ぐ、醜いスラーが表示されます。

装飾小音符セクションはシーケンシャルな音楽表記の中でのみ使用すべきです。装飾小音符セクションのネスト、並置はサポートされておらず、クラッシュや他のエラーを引き起こすかもしれません。

MIDI 出力において装飾小音符はそれぞれ 1/4 の実演奏時間を持ちます。一連の装飾小音符の演奏時間が前の音符の演奏時間よりも長い場合、“`Going back in MIDI time`” エラーになります。エラーを避けるには、装飾小音符の演奏時間を短くします。例えば:

>     c'8 \acciaccatura { c'8[ d' e' f' g'] }

を以下のようにします:

>     c'8 \acciaccatura { c'16[ d' e' f' g'] }

あるいは、明示的に演奏時間を変更します:

>     c'8 \acciaccatura { \scaleDurations 1/2 { c'8[ d' e' f' g'] } }

演奏時間を変更する を参照してください。

#### カデンツァに揃える

オーケストラのコンテキストにおいて、カデンツァは特殊な問題を提起します: 楽譜の構成に演奏時間を持つカデンツァや他のソロ パッセージが含まれる場合、他のすべての楽器は、そのカデンツァの演奏時間の分だけスキップする必要があります。さもなければ、他の楽器はカデンツァの終わりよりも早すぎる (あるいは遅すぎる) タイミングで始まってしまいます。

この問題の解決方法の一つは、関数 `mmrest-of-length` と `skip-of-length` を使用することです。これらの Scheme 関数は、引数として定義済みの音楽表記をとり、その音楽表記と同じ長さの複数小節休符または `\skip` を生成します。

>     MyCadenza = \relative {
>       c'4 d8 e f g g4
>       f2 g4 g
>     }

>     \new GrandStaff <<
>       \new Staff {
>         \MyCadenza c'1
>         \MyCadenza c'1
>       }
>       \new Staff {
>         #(mmrest-of-length MyCadenza)
>         c'1
>         #(skip-of-length MyCadenza)
>         c'1
>       }
>     >>

#### 参照

音楽用語集: cadenza

コード断片集: Rhythms

#### 時間管理

時間は `Timing_translator` – これは、デフォルトでは、`Socre` コンテキストの中にあります – によって管理されます。エイリアス `Timing` は `Timing_translator` が配置されているコンテキストに付け加えられます。 エイリアス `Timing` が利用可能であることを保証するため、コンテキスト (`Voice` や `Staff` など) を明示的にインスタンス化する必要があるかもしれません。

以下の `Timing` のプロパティは、楽譜内でのタイミングの経過を追うために使用されます。

`currentBarNumber`

  カレントの小節番号。このプロパティの使用例は、小節番号 を参照してください。

`measureLength`

  カレントの拍子での小節の長さ。4/4 拍子では 1 であり、6/8 拍子では 3/4 です。この値は小節線を挿入するタイミングと自動連桁の生成の仕方を決定します。

`measurePosition`

  カレントで処理している小節内での位置。この値は、`measureLength` に到達するか超過したときに、この値から `measureLength` を減算されることによって、リセットされます。リセットが起こるときに、`currentBarNumber` が +1 されます。

`timing`

  真にセットされている場合、各タイム ステップごとに上記の変数は更新されます。偽にセットされている場合、エングラーバはカレントの小節に永久に留まります。

タイミングは、上記の値のいずれかを明示的に設定することによって、変更することができます。次の例では、デフォルトの 4/4 拍子が譜刻されていますが、`measureLength` は 5/4 にセットされています。第 3 小節の 4/8 の位置で、`measurePositoin` は 1/8 進められて 5/8 になり、それによりその小節は 1/8 短くされます。次の小節線は 5/4 ではなく 9/8 の位置で引かれます。

>     \new Voice \relative {
>       \set Timing.measureLength = #(ly:make-moment 5/4)
>       c'1 c4 |
>       c1 c4 |
>       c4 c
>       \set Timing.measurePosition = #(ly:make-moment 5/8)
>       b4 b b8 |
>       c4 c1 |
>     }

この例が示すように、`ly:make-moment n/m` は全音符の n/m の長さの演奏時間を構成します。例えば、`ly:make-moment 1/8` は 1 個の 8 分音符の演奏時間であり、`ly:make-moment 7/16` は 7 個の 16 分音符の演奏時間です。

#### 参照

記譜法リファレンス: 小節番号, 無韻律の音楽

コード断片集: Rhythms

内部リファレンス: Timing_translator, Score

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

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