LilyPond 記譜法リファレンス: 1.2.3 リズムを表示する

### 1.2.3 リズムを表示する

#### 拍子

拍子は以下のようにセットします:

>     \time 2/4 c''2
>     \time 3/4 c''2.

小節の途中で拍子記号を変更することについては、上拍で扱っています。

拍子は楽曲の始まりと拍子が変更されたときに譜刻されます。行の終わりで変更が起こる場合、警告の拍子が行の終わりに譜刻されます。デフォルトの振る舞いを変更することができます。オブジェクトの可視性 を参照してください。

>     \relative c'' {
>       \time 2/4
>       c2 c
>       \break
>       c c
>       \break
>       \time 4/4
>       c c c c
>     }

2/2 や 4/4 で使用される拍子は数字を使用するスタイルに変更することができます:

>     \relative c'' {
>       % デフォルトのスタイル
>       \time 4/4 c1
>       \time 2/2 c1
>       % 数字を使うスタイルに変更します
>       \numericTimeSignature
>       \time 4/4 c1
>       \time 2/2 c1
>       % デフォルトのスタイルに戻します
>       \defaultTimeSignature
>       \time 4/4 c1
>       \time 2/2 c1
>     }

計量拍子については 計量記譜法の拍子記号 でカバーされています。

譜刻される拍子を設定することに加えて、`\time` コマンドは拍子に基づくプロパティ `baseMoment`, `beatStructure`, それに `beamExceptions` の値も設定します。これらのプロパティにあらかじめ定義されているデフォルト値は ‘`scm/time-signature-settings.scm`’ で見つかります。

`beatStructure` のデフォルトの値は、`\time` に省略可能な 1 つ目の引数を与えることでオーバライドできます:

>     \score {
>       \new Staff {
>         \relative {
>           \time 2,2,3 7/8
>           \repeat unfold 7 { c'8 } |
>           \time 3,2,2 7/8
>           \repeat unfold 7 { c8 } |
>         }
>       }
>     }

また、`baseMoment` と `beamExceptions` も含めた、全ての拍子に基づくプロパティのデフォルトの値を一度にセットすることができます。値は異なる拍子記号について独立に設定できます。新しい値は同じ拍子記号の `\time` コマンドが続く時に有効となります。

>     \score {
>       \new Staff {
>         \relative c' {
>           \overrideTimeSignatureSettings
>             4/4        % timeSignatureFraction
>             1/4        % baseMomentFraction
>             3,1        % beatStructure
>             #'()       % beamExceptions
>           \time 4/4
>           \repeat unfold 8 { c8 } |
>         }
>       }
>     }

`\overrideTimeSignatureSettings` は 4 つの引数をとります:

1. `timeSignatureFraction`, この設定が適用される、拍子記号を示す分数。
2. `baseMomentFraction`, 拍子の基本タイミングの単位となる分子と分母を保持する分数。
3. `beatStructure`, 小節の拍構造を示す Scheme リスト。基本タイミングを単位とします。
4. `beamExceptions`, 指定された拍子でそれぞれの拍で終了しない連桁の規則を保持する配列リスト。自動連桁の振る舞いを設定する に説明があります。

デフォルトの拍子プロパティ値の変更を元の値に戻すことができます:

>     \score {
>       \relative {
>         \repeat unfold 8 { c'8 } |
>         \overrideTimeSignatureSettings
>           4/4        % timeSignatureFraction
>           1/4        % baseMomentFraction
>           3,1        % beatStructure
>           #'()       % beamExceptions
>         \time 4/4
>         \repeat unfold 8 { c8 } |
>         \revertTimeSignatureSettings 4/4
>         \time 4/4
>         \repeat unfold 8 { c8 } |
>       }
>     }

`Timing_translator` と `Default_bar_line_engraver` を`Score` コンテキストから `Staff` コンテキストに移動させることにより、異なる譜に対して異なる値のデフォルト拍子プロパティを割り当てることができます。

>     \score {
>       \new StaffGroup <<
>          \new Staff {
>             \overrideTimeSignatureSettings
>               4/4        % timeSignatureFraction
>               1/4        % baseMomentFraction
>               3,1        % beatStructure
>               #'()       % beamExceptions
>             \time 4/4
>             \repeat unfold 8 {c''8}
>          }
>          \new Staff {
>             \overrideTimeSignatureSettings
>               4/4        % timeSignatureFraction
>               1/4        % baseMomentFraction
>               1,3        % beatStructure
>               #'()       % beamExceptions
>             \time 4/4
>             \repeat unfold 8 {c''8}
>          }
>       >>
>       \layout {
>         \context {
>           \Score
>           \remove "Timing_translator"
>           \remove "Default_bar_line_engraver"
>         }
>         \context {
>           \Staff
>           \consists "Timing_translator"
>           \consists "Default_bar_line_engraver"
>         }
>       }
>     }

これらの拍子記号に基づく変数を変更するさらなる方法 – 変更の際に同じ拍子記号がもう一度表示されることを避ける方法 – については、 自動連桁の振る舞いを設定する にあります。

#### 定義済みコマンド

`\numericTimeSignature`, `\defaultTimeSignature`

#### Selected Snippets

拍子記号の (分数ではなく) 分子のみを数字で表示する

拍子記号の分数全体を表示せず、分子のみ (今回は 7) を表示したい場合があります。これは `\override Staff.TimeSignature.style = #'single-digit` を用いてスタイルを永続的に変更することで簡単に実現できます。`\revert Staff.TimeSignature.style` を使用することで、この設定を元に戻すことが出来ます。1 つの拍子記号に対してのみ単一の数字で表示したい場合は、`\override` の前に `\once` を記述します。

>     \relative c'' {
>       \time 3/4
>       c4 c c
>       % Change the style permanently
>       \override Staff.TimeSignature.style = #'single-digit
>       \time 2/4
>       c4 c
>       \time 3/4
>       c4 c c
>       % Revert to default style:
>       \revert Staff.TimeSignature.style
>       \time 2/4
>       c4 c
>       % single-digit style only for the next time signature
>       \once \override Staff.TimeSignature.style = #'single-digit
>       \time 5/4
>       c4 c c c c
>       \time 2/4
>       c4 c
>     }

#### 参照

音楽用語集: time signature

記譜法リファレンス: 計量記譜法の拍子記号, 自動連桁の振る舞いを設定する, 時間管理

インストールされているファイル: ‘`scm/time-signature-settings.scm`’.

コード断片集: Rhythms

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

#### メトロノーム記号

基本的なメトロノーム記号は単純に以下のように記述します:

>     \relative {
>       \tempo 4 = 120
>       c'2 d
>       e4. d8 c2
>     }

メトロノーム記号を 2 つの数の範囲として譜刻することもできます:

>     \relative {
>       \tempo 4 = 40 - 46
>       c'4. e8 a4 g
>       b,2 d4 r
>     }

テキストを持つテンポ指示にすこともできます:

>     \relative {
>       \tempo "Allegretto"
>         c''4 e d c
>         b4. a16 b c4 r4
>     }

メトロノーム記号とテキストを組み合わせると、メトロノーム記号は自動的に括弧で囲まれます:

>     \relative {
>       \tempo "Allegro" 4 = 160
>       g'4 c d e
>       d4 b g2
>     }

一般に、テキストを任意のマークアップ オブジェクトにすることができます:

>     \relative {
>       \tempo \markup { \italic Faster } 4 = 132
>       a'8-. r8 b-. r gis-. r a-. r
>     }

テキストを伴わないメトロノーム記号を括弧で囲むには、空の文字列を含めて記述します:

>     \relative {
>       \tempo "" 8 = 96
>       d''4 g e c
>     }

長い休符 (小節単位の休符 を参照してください) がある楽器のパート譜では、テンポ表示同士が近づいてしまうことがあります。 `\markLengthOn` コマンドは、テンポ表示が重ならないように水平方向のスペースを追加し、`\markLengthOff` はテンポ表示が水平方向のスペースを無視するデフォルトの挙動に戻します。

>     \compressMMRests {
>       \markLengthOn
>       \tempo "Molto vivace"
>       R1*12
>       \tempo "Meno mosso"
>       R1*16
>       \markLengthOff
>       \tempo "Tranquillo"
>       R1*20
>     }

#### Selected Snippets

メトロノーム記号やリハーサル記号を譜の下に表示する

デフォルトでは、メトロノーム記号やリハーサル記号は譜の上に表示されます。これらを譜の下に表示するには、`MetronomeMark` や `RehearsalMark` の `direction` プロパティを正しくセットします。

>     \layout {
>       indent = 0
>       ragged-right = ##f
>     }

>     {
>       % Metronome marks below the staff
>       \override Score.MetronomeMark.direction = #DOWN
>       \tempo 8. = 120
>       c''1

>       % Rehearsal marks below the staff
>       \override Score.RehearsalMark.direction = #DOWN
>       \mark \default
>       c''1
>     }

メトロノーム記号を表示せずにテンポを変更する

楽譜には何も出力せずに MIDI 出力のテンポのみを変更するには、メトロノーム記号を非表示にします。

>     \score {
>       \new Staff \relative c' {
>         \tempo 4 = 160
>         c4 e g b
>         c4 b d c
>         \set Score.tempoHideNote = ##t
>         \tempo 4 = 96
>         d,4 fis a cis
>         d4 cis e d
>       }
>       \layout { }
>       \midi { }
>     }

マークアップ モードでメトロノーム記号を作成する

新しいメトロノーム記号はマークアップ モードで作成できますが、MIDI 出力のテンポは変更されません。

>     \relative c' {
>       \tempo \markup {
>         \concat {
>           (
>           \smaller \general-align #Y #DOWN \note {16.} #1
>           " = "
>           \smaller \general-align #Y #DOWN \note {8} #1
>           )
>         }
>       }
>       c1
>       c4 c' c,2
>     }

詳細は テキストをフォーマットする を参照してください。

#### 参照

音楽用語集: metronome, metronomic indication, tempo indication, metronome mark

記譜法リファレンス: テキストをフォーマットする, MIDI 出力を作り出す, 小節単位の休符

コード断片集: Staff notation

内部リファレンス: MetronomeMark

#### 上拍

弱拍 や 上拍 などのような部分小節またはピックアップ小節は、`\partial` コマンドを使って入力します:

>     \partial duration

`\partial` が楽譜の最初で用いられた際には、`duration` は最初の小節より前にある音楽の長さです。

>     \relative {
>       \time 3/4
>       \partial 4.
>       r4 e'8 | a4 c8 b c4 |
>     }

`\partial` が楽譜の最初より後に用いられた際には、`duration`は現在の小節の 残りの 長さとなります。新しい番号の小節は作られません。

>     \relative {
>       \set Score.barNumberVisibility = #all-bar-numbers-visible
>       \override Score.BarNumber.break-visibility =
>     	    #end-of-line-invisible
>       \time 9/8
>       d''4.~ 4 d8 d( c) b | c4.~ 4. \bar "||"
>       \time 12/8
>       \partial 4.
>       c8( d) e | f2.~ 4 f8 a,( c) f |
>     }

`\partial` コマンドは小節の途中で拍子記号が変化する場合に必要ですが、単独で使われることもあります。

>     \relative {
>       \set Score.barNumberVisibility = #all-bar-numbers-visible
>       \override Score.BarNumber.break-visibility =
>     	    #end-of-line-invisible
>       \time 6/8
>       \partial 8
>       e'8 | a4 c8 b[ c b] |
>       \partial 4
>       r8 e,8 | a4 \bar "||"
>       \partial 4
>       r8 e8 | a4
>       c8 b[ c b] |
>     }

`\partial` コマンドは `Timing.measurePosition` プロパティをセットします。これは小節のどれだけが経過したかを表す分数です。

#### 参照

音楽用語集: anacrusis

記譜法リファレンス: 装飾小音符

コード断片集: Rhythms

内部リファレンス: Timing_translator

#### 無韻律の音楽

韻律のある音楽では、自動的に小節線が挿入され、小節番号が算出されます。無韻律の音楽 (例えばカデンツァ) では、これは望ましくなく、コマンド `\cadenzaOn` を用いて ‘スイッチ off’ することができます。‘スイッチ on’ に戻すには、適切な場所で `\cadenzaOff` を用います。

>     \relative c'' {
>       c4 d e d
>       \cadenzaOn
>       c4 c d8[ d d] f4 g4.
>       \cadenzaOff
>       \bar "|"
>       d4 e d c
>     }

カデンツァが終わると、小節番号が再開されます。

>     \relative c'' {
>       % すべての小節番号を表示します
>       \override Score.BarNumber.break-visibility = #all-visible
>       c4 d e d
>       \cadenzaOn
>       c4 c d8[ d d] f4 g4.
>       \cadenzaOff
>       \bar "|"
>       d4 e d c
>     }

カデンツァの中に `\bar` コマンドを挿入しても、小節線は表示されますが、新しい小節が始まることはありません。そのため、全ての臨時記号 – 通常小節の最後まで効果が持続する – は、`\bar` による小節線の後でも有効のままです。もし小節線の後の臨時記号を表示させたいならば、親切の臨時記号 (`!`) や忠告の臨時記号 (`?`) を手動で挿入する必要があります。臨時記号 を参照してください。

>     \relative c'' {
>       c4 d e d
>       \cadenzaOn
>       cis4 d cis d
>       \bar "|"
>       % 最初の cis は小節線の後ですが、臨時記号無しで表示されます
>       cis4 d cis! d
>       \cadenzaOff
>       \bar "|"
>     }

自動連桁は `\cadenzaOn` で無効になります。このため、カデンツァ内の連桁はすべて手動で入力する必要があります (手動連桁)。

>     \relative {
>       \repeat unfold 8 { c''8 }
>       \cadenzaOn
>       cis8 c c c c
>       \bar"|"
>       c8 c c
>       \cadenzaOff
>       \repeat unfold 8 { c8 }
>     }

これらの定義済みコマンドは、たとえ `Voice` コンテキストの 1 つの中に配置したとしても、楽譜の中にあるすべての譜に影響を与えます。これを変更するには、`Timing_translator` を `Score` コンテキストから `Staff` コンテキストに移動させます。多拍子記譜法 を参照してください。

#### 定義済みコマンド

`\cadenzaOn`, `\cadenzaOff`

#### 参照

音楽用語集: cadenza

記譜法リファレンス: オブジェクトの可視性, 多拍子記譜法, 手動連桁, 臨時記号

コード断片集: Rhythms

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

自動の改行と改ページが挿入されるのは小節線のある場所だけです。そのため、長い無韻律の音楽で改行や改ページを行うには手動で ‘不可視の’ 小節線を挿入する必要があります:

>     \bar ""

#### 多拍子記譜法

多拍子記譜法がサポートされます。 複合拍子記譜法がサポートされます。明示的な複合拍子と、拍子指定を変更して音符の演奏時間を伸縮することによる複合拍子のどちらもです。

#### それぞれの譜は異なる拍子を持ち、小節の長さは等価である場合

各譜共通の拍子記号をセットして、`timeSignatureFraction` にお望みの分数をセットします。それから、`\scaleDurations` 関数を用いて共通の拍子記号に対する 各譜の音符の演奏時間を伸縮させます。

以下の例では、拍子記号 3/4, 9/8, それに 10/8 の音楽が並列しています。2 番目の譜では示された演奏時間に 2/3 が掛けられ (なぜなら、2/3 * 9/8 = 3/4 だからです)、3 番目の譜では示された演奏時間に 3/5 が掛けられます (なぜなら、3/5 * 10/8 = 3/4 だからです)。演奏時間の伸縮は自動連桁の規則に影響を与えるため、手動で連桁を付ける必要があるかもしれません。

>     \relative <<
>       \new Staff {
>         \time 3/4
>         c'4 c c |
>         c4 c c |
>       }
>       \new Staff {
>         \time 3/4
>         \set Staff.timeSignatureFraction = 9/8
>         \scaleDurations 2/3
>           \repeat unfold 6 { c8[ c c] }
>       }
>       \new Staff {
>         \time 3/4
>         \set Staff.timeSignatureFraction = 10/8
>         \scaleDurations 3/5 {
>           \repeat unfold 2 { c8[ c c] }
>           \repeat unfold 2 { c8[ c] } |
>           c4. c \tuplet 3/2 { c8[ c c] } c4
>         }
>       }
>     >>

#### それぞれの譜は異なる拍子を持ち、小節の長さは等価ではない場合

`Timing_translator` と `Default_bar_line_engraver` を `Staff` コンテキストに移すことによって、それぞれの譜に独立した拍子を与えることができます。

>     \layout {
>       \context {
>         \Score
>         \remove "Timing_translator"
>         \remove "Default_bar_line_engraver"
>       }
>       \context {
>         \Staff
>         \consists "Timing_translator"
>         \consists "Default_bar_line_engraver"
>       }
>     }

>     % 以上で、各譜はそれぞれに拍子を持つようになります

>     \relative <<
>       \new Staff {
>         \time 3/4
>         c'4 c c |
>         c4 c c |
>       }
>       \new Staff {
>         \time 2/4
>         c4 c |
>         c4 c |
>         c4 c |
>       }
>       \new Staff {
>         \time 3/8
>         c4. |
>         c8 c c |
>         c4. |
>         c8 c c |
>       }
>     >>

#### 複合拍子記号

複合拍子記号は `\compoundMeter` を用いて作成します。構文は以下の通りです:

>     \compoundMeter #'(list of lists)

最も簡単な構成は単一のリストであり、リストの 最後の 数字が拍子記号の分母になります。

>     \relative {
>       \compoundMeter #'((2 2 2 8))
>       \repeat unfold 6 c'8 \repeat unfold 12 c16
>     }

リストを追加することでより複雑な拍子を構築することができます。また、この関数で指定された値に基づいて自動連桁の設定は調節されます。

>     \relative {
>       \compoundMeter #'((1 4) (3 8))
>       \repeat unfold 5 c'8 \repeat unfold 10 c16
>     }

>     \relative {
>       \compoundMeter #'((1 2 3 8) (3 4))
>       \repeat unfold 12 c'8
>     }

#### 参照

音楽用語集: polymetric, polymetric time signature, meter

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

コード断片集: Rhythms

内部リファレンス: TimeSignature, Timing_translator, Default_bar_line_engraver, Staff

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

それぞれの譜において、同時に起こる音符の水平方向の位置は同じになりますが、(それぞれの譜にある) 小節線は、異なる拍子記号によって一貫性の無いスペーシングを生み出す可能性があります。

多拍子記譜法で `midi` ブロックを使用した場合、予期しない小節線チェックの警告が表示される可能性があります。その場合は、`midi` ブロック内で、`Timing_translator` を `Score` コンテキストから `Staff` コンテキストに移動してください。

    \midi {
      \context {
        \Score
        \remove "Timing_translator"
      }
      \context {
         \Staff
         \consists "Timing_translator"
      }
    }

#### 自動音符分割

小節線をまたがる長い音符を自動的にタイで結ばれた音符に変換することができます。これを行うには、`Note_heads_engraver` を `Completion_heads_engraver` で置き換えます。同様に、小節線をまたがる長い休符を自動的に分割することができます。 これを行うには、`Rest_engraver` を `Completion_rest_engraver` で置き換えます。以下の例では、小節線をまたがる音符と休符は分割され、音符はされにタイで結ばれています。

>     \new Voice \with {
>       \remove "Note_heads_engraver"
>       \consists "Completion_heads_engraver"
>       \remove "Rest_engraver"
>       \consists "Completion_rest_engraver"
>     }
>     \relative {
>       c'2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 r1*2
>     }

これらのエングラーバは進行中の音符と休符をすべて小節線のところで分割して、音符に対してはタイを挿入します。これらのエングラーバの用途の 1 つに複雑な楽譜のデバッグがあります: 何小節かで音符がきちんと満たされていない場合、このエングラーバで挿入されたタイが、それぞれの小節の狂いを示します。

`completionUnit` プロパティは音符を分割する際の好ましい長さを指定します。

>     \new Voice \with {
>       \remove "Note_heads_engraver"
>       \consists "Completion_heads_engraver"
>     } \relative {
>       \time 9/8 g\breve. d''4. \bar "||"
>       \set completionUnit = #(ly:make-moment 3 8)
>       g\breve. d4.
>     }

これらのエングラーバは、連符のような長さが伸縮された音符に対しては、入力と同じ伸縮率を保ったまま分割します。

>     \new Voice \with {
>       \remove "Note_heads_engraver"
>       \consists "Completion_heads_engraver"
>     } \relative {
>       \time 2/4 r4
>       \tuplet 3/2 {g'4 a b}
>       \scaleDurations 2/3 {g a b}
>       g4*2/3 a b
>       \tuplet 3/2 {g4 a b}
>       r4
>     }

#### 参照

音楽用語集: tie

学習マニュアル: Engravers explained, Adding and removing engravers

コード断片集: Rhythms

内部リファレンス: Note_heads_engraver, Completion_heads_engraver, Rest_engraver, Completion_rest_engraver, Forbid_line_break_engraver

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

前のバージョンの挙動を維持するため、`c1*2` のような 1 小節より長い音符や休符は、`{ c1 c1 }` のように伸縮しない長さに分割されます。`completionFactor` プロパティでこの挙動を調整でき、これを`#f` にセットすることで音符や休符を伸縮することができます。

#### 旋律のリズムを示す

しばしば旋律のリズムだけを示したいことがあります。これはリズム譜を使うことで達成できます。そのような譜上にある音符のピッチはすべて破棄され、その譜自体は 1 本の線を持ちます:

>     <<
>       \new RhythmicStaff {
>         \new Voice = "myRhythm" \relative {
>           \time 4/4
>           c'4 e8 f g2
>           r4 g g f
>           g1
>         }
>       }
>       \new Lyrics {
>         \lyricsto "myRhythm" {
>           This is my song
>           I like to sing
>         }
>       }
>     >>

ギター コード表はしばしばつま弾き (ストラム) のリズムを示します。これは `Pitch_squash_engraver` と `\improvisationOn` を使うことで達成できます。

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 f g c
>         }
>       }
>       \new Voice \with {
>         \consists "Pitch_squash_engraver"
>       } \relative c'' {
>         \improvisationOn
>         c4 c8 c c4 c8 c
>         f4 f8 f f4 f8 f
>         g4 g8 g g4 g8 g
>         c4 c8 c c4 c8 c
>       }
>     >>

和音を含む音楽も、まず `\reduceChords` 関数で 1 つの音符にまとめることによって `RhythmicStaff` に入力したり、`Pitch_squash_engraver` に使用することができます。

>     \new RhythmicStaff {
>       \time 4/4
>       \reduceChords {
>         <c>2
>         <e>2
>         <c e g>2
>         <c e g>4
>         <c e g>4
>       }
>     }

#### 定義済みコマンド

`\improvisationOn`, `\improvisationOff`, `\reduceChords`

#### Selected Snippets

ギター ストロークのリズム

ギター音楽では、メロディの音符、コードネーム、フレット図と共に、ストロークのリズムを表示することができます。

>     \include "predefined-guitar-fretboards.ly"
>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 | f | g | c
>         }
>       }
>       \new FretBoards {
>         \chordmode {
>           c1 | f | g | c
>         }
>       }
>       \new Voice \with {
>         \consists "Pitch_squash_engraver"
>       } {
>         \relative c'' {
>           \improvisationOn
>           c4 c8 c c4 c8 c
>           f4 f8 f f4 f8 f
>           g4 g8 g g4 g8 g
>           c4 c8 c c4 c8 c
>         }
>       }
>       \new Voice = "melody" {
>         \relative c'' {
>           c2 e4 e4
>           f2. r4
>           g2. a4
>           e4 c2.
>         }
>       }
>       \new Lyrics {
>         \lyricsto "melody" {
>           This is my song.
>           I like to sing.
>         }
>       }
>     >>

#### 参照

コード断片集: Rhythms

内部リファレンス: RhythmicStaff, Pitch_squash_engraver

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

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