LilyPond 記譜法リファレンス: 1.2.1 リズムを記述する

### 1.2.1 リズムを記述する

#### 演奏時間

演奏時間は数とドットで指定されます。演奏時間はその演奏時間の逆数で入力されます。例えば、4 分音符は `4` で入力され (1/4 の音符だから)、半音符は `2` で入力されます (1/2 の音符だから)。全音符よりも長い音符を入力するには、`\longa` コマンド (全音符の 4 倍) と `\breve` コマンド (全音符の 2 倍) を使う必要があります。128 分音符のような短い音符を指定することもできます。それよりも短い音価を指定することも可能ですが、必ず連桁付きの音符となります。

音符の演奏時間は数とドットで入力します。入力された数は音符の長さの逆数となります。例えば、4 分音符は 1/4 の長さを持つため、`4` と入力します。2 分音符は `2`、8 分音符は `8` となります。`1024` までの短い音符は入力できますが、それよりも短い音符は連桁で繋がれた状態でしか表示できません。連桁 を参照してください。

全音符よりも長い音符については、`\longa` – ブレヴィスの 2 倍 – や `\breve` コマンドを使用してください。ブレヴィスの 4 倍の長さは `\maxima` コマンドで入力できますが、古代の記譜法でしか表示できません。古代の記譜法 を参照してください。

>     \relative {
>       \time 8/1
>       c''\longa c\breve c1 c2
>       c4 c8 c16 c32 c64 c128 c128
>     }

同じ例で自動連桁を off にしてみます。

>     \relative {
>       \time 8/1
>       \autoBeamOff
>       c''\longa c\breve c1 c2
>       c4 c8 c16 c32 c64 c128 c128
>     }

独立した演奏時間 – ピッチを持たず、演奏時間だけの音符 – が音楽内に現れた場合、前の音符や和音からピッチを受け継ぎます。

>     \relative {
>       \time 8/1
>       c'' \longa \breve 1 2
>       4 8 16 32 64 128 128
>     }

独立したピッチ – 演奏時間を持たず、ピッチだけの音符 – が音楽内に現れた場合、前の音符や和音から演奏時間を受け継ぎます。前の演奏時間が存在しない場合、デフォルトは `4` つまり 4 分音符となります。

>     \relative { a' a a2 a a4 a a1 a }

付点音符の演奏時間を得るには、演奏時間の後にドット (`.`) を置きます。2 重付点音符は 2 つのドットを置き、3 重付点音符は 3 つのドットなどとなります。

>     \relative { a'4 b c4. b8 a4. b4.. c8. }

譜線を避けるために、音符のドットは通常上に移動されます。しかし、多声の場合では、必要ならば手動でドットの位置を譜線の上か下に移動することができます。`Direction and placement` を参照してください。

演奏時間の中には数字とドットだけでは表せず、2 つ以上の音符をタイでつなげるしかない場合があります。詳細は タイ を参照してください。

歌詞音節と音符を揃えるために演奏時間を指定する方法については 声楽 を参照してください。

音符を演奏時間に比例させた間隔で配置することができます。プロポーショナル ノーテーション を参照してください。

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

`\autoBeamOn`, `\autoBeamOff`, `\dotsUp`, `\dotsDown`, `\dotsNeutral`

#### Selected Snippets

#### 二全音符を変更する

二全音符の表示を、符頭の左右に線が 1 本あるバロック式の表示から、2 本あるものに変更することができます。

>     \relative c'' {
>       \time 4/2
>       c\breve |
>       \override Staff.NoteHead.style = #'altdefault
>       b\breve
>       \override Staff.NoteHead.style = #'baroque
>       b\breve
>       \revert Staff.NoteHead.style
>       a\breve
>     }

#### 音符ごとに付点の数を独立して変更する

音符ごとに、入力したドットの数とは独立して付点の数を変更することができます。

>     \relative c' {
>       c4.. a16 r2 |
>       \override Dots.dot-count = #4
>       c4.. a16 r2 |
>       \override Dots.dot-count = #0
>       c4.. a16 r2 |
>       \revert Dots.dot-count
>       c4.. a16 r2 |
>     }

#### 参照

音楽用語集: breve, longa, maxima, note value, Duration names notes and rests

記譜法リファレンス: 連桁, タイ, 符幹, リズムを記述する, 休符を記述する, 声楽, 古代の記譜法, プロポーショナル ノーテーション

コード断片集: リズム

内部リファレンス: Dots, DotColumn

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

休符の演奏時間には基本的に限界 (最大値や最小値) がありませんが、図柄の数には限界があり、`1024` から `\maxima` までの休符を譜刻することができます。

#### 連符

連符は `\tuplet` を使った音楽表記から作られ、音楽表記の速度に分数を掛け合わせます。

>     \tuplet fraction { music }

分数 (fraction) の分子が音符の上または下に譜刻され、オプションで囲みが付きます。最も一般的な連符は 3 連符です。(3 つの音符が音符 2 つ分の演奏時間で演奏されます。)

>     \relative {
>       a'2 \tuplet 3/2 { b4 4 4 }
>       c4 c \tuplet 3/2 { b4 a g }
>     }

連符の長いパッセージを入力するとき、各グループに別々の `\tuplet` コマンドを記述することは不便です。音楽の前に一つの連符グループの長さを直接指定することで、連符を自動的にグループ化することができます:

>     \relative {
>       g'2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e }
>     }

連符囲みは手動で譜の上または下に配置することができます:

>     \relative {
>       \tupletUp \tuplet 3/2 { c''8 d e }
>       \tupletNeutral \tuplet 3/2 { c8 d e }
>       \tupletDown \tuplet 3/2 { f,8 g a }
>       \tupletNeutral \tuplet 3/2 { f8 g a }
>     }

連符はネストすることができます:

>     \relative {
>       \autoBeamOff
>       c''4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4
>     }

ネストされた連符の演奏開始点が同時である場合に、それらの連符を変更するには `\tweak` を使う必要があります。 `\tweak` コマンド を参照してください。

多くの古い版で好まれるように、連符囲みはスラーに置き換えることができます:

>     \relative {
>       \tuplet 3/2 4 {
>         \override TupletBracket.tuplet-slur = ##t
>         c'4 e8 d4 f8
>         \override TupletBracket.bracket-visibility = ##t
>         e f g f e d
>       } c1
>     }

デフォルトでは、連符囲みは、それがまたがるすべての音符が連桁でつながれない場合にのみ譜刻されます。場合によっては (上記の例のようにスラーを使用するなど)、次のスニペットのいずれかで詳しく説明されているように、`bracket-visibility` プロパティを使用して、その動作を変更することが望ましい場合があります。

より一般的には、オブジェクトの可視性 で説明されているように、 `TupletBracket` オブジェクトと `TupletNumber` オブジェクトのどちらかまたは両方を非表示または表示できます。しかしながら、連符囲みを譜刻せずに音符の演奏時間をより柔軟に変更する方法も 演奏時間を変更する で紹介されています。

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

`\tupletUp`, `\tupletDown`, `\tupletNeutral`.

#### Selected Snippets

#### 一つの tuplet コマンドで複数の連符を入力する

`tupletSpannerDuration` プロパティは、一つの `\tuplet` コマンド内にある音符が、どれぐらいの長さで連符一つ分を作るかを指定します。これにより、一つの `\tuplet` コマンドで多くの連続した連符を作成することができ、入力が簡潔になります。

`tupletSpannerDuration` を設定する方法はいくつかあります。`\tupletSpan` コマンドは、プロパティを与えられた長さにセットし、長さではなく `\default` が与えられた場合はリセットします。もう一つの方法は、`\tuplet` のオプション引数を用いることです。

>     \relative c' {
>       \time 2/4
>       \tupletSpan 4
>       \tuplet 3/2 { c8^"\\tupletSpan 4" c c c c c }
>       \tupletSpan \default
>       \tuplet 3/2 { c8^"\\tupletSpan \\default" c c c c c }
>       \tuplet 3/2 4 { c8^"\\tuplet 3/2 4 {...}" c c c c c }
>     }

#### 連符の数字を変更する

デフォルトでは、連符の上には `\tuplet` の引数として与えられた数字のみが表示されます。

代わりに、3:2 のような形の数字を表示することができます。また、数字を非表示にすることもできます。

>     \relative c'' {
>       \tuplet 3/2 { c8 c c }
>       \tuplet 3/2 { c8 c c }
>       \override TupletNumber.text = #tuplet-number::calc-fraction-text
>       \tuplet 3/2 { c8 c c }
>       \omit TupletNumber
>       \tuplet 3/2 { c8 c c }
>     }

#### デフォルトでない連符の数字

LilyPond は連符に表示される数字として、実際の音価の比率とは異なる値を整形して表示する関数が用意されています。連符の数や比だけでなく、音価を示す音符を表示することもできます。

>     \relative c'' {
>       \once \override TupletNumber.text =
>         #(tuplet-number::non-default-tuplet-denominator-text 7)
>       \tuplet 3/2  { c4. c4. c4. c4. }
>       \once \override TupletNumber.text =
>         #(tuplet-number::non-default-tuplet-fraction-text 12 7)
>       \tuplet 3/2  { c4. c4. c4. c4. }
>       \once \override TupletNumber.text =
>         #(tuplet-number::append-note-wrapper
>           (tuplet-number::non-default-tuplet-fraction-text 12 7)
>           (ly:make-duration 3 0))
>       \tuplet 3/2  { c4. c4. c4. c4. }
>       \once \override TupletNumber.text =
>         #(tuplet-number::append-note-wrapper
>           tuplet-number::calc-denominator-text
>           (ly:make-duration 2 0))
>       \tuplet 3/2  { c8 c8 c8 c8 c8 c8 }
>       \once \override TupletNumber.text =
>         #(tuplet-number::append-note-wrapper
>           tuplet-number::calc-fraction-text
>           (ly:make-duration 2 0))
>       \tuplet 3/2  { c8 c8 c8 c8 c8 c8 }
>       \once \override TupletNumber.text =
>         #(tuplet-number::fraction-with-notes
>           (ly:make-duration 2 1) (ly:make-duration 3 0))
>       \tuplet 3/2  { c4. c4. c4. c4. }
>       \once \override TupletNumber.text =
>         #(tuplet-number::non-default-fraction-with-notes 12
>           (ly:make-duration 3 0) 4 (ly:make-duration 2 0))
>       \tuplet 3/2  { c4. c4. c4. c4. }
>     }

#### 連符の括弧の可視性をコントロールする

連符の括弧の可視性についての挙動は、デフォルトでは同じ長さの連桁がある場合に表示されないようになっています。これをコントロールするには、`bracket-bisibility` プロパティを `#t` (常に表示), `#'if-no-beam` (連桁が無い場合にのみ表示。デフォルトの振る舞い), `#f` (常に非表示) のいずれかにセットします。 3 つ目の選択肢は、実際には `TupletBracket` オブジェクトを出力から完全に省略することに相当します。

>     music = \relative c'' {
>       \tuplet 3/2 { c16[ d e } f8]
>       \tuplet 3/2 { c8 d e }
>       \tuplet 3/2 { c4 d e }
>     }

>     \new Voice {
>       \relative c' {
>         \override Score.TextMark.non-musical = ##f
>         \textMark "default" \music
>         \override TupletBracket.bracket-visibility = #'if-no-beam
>         \textMark \markup \typewriter "'if-no-beam" \music
>         \override TupletBracket.bracket-visibility = ##t
>         \textMark \markup \typewriter "#t" \music
>         \override TupletBracket.bracket-visibility = ##f
>         \textMark \markup \typewriter "#f" \music
>         \omit TupletBracket
>         \textMark \markup \typewriter "omit" \music
>       }
>     }

#### 連桁で繋がれた連符の途中で改行する

この作為的な例は、連桁で繋がれた連符の途中で手動あるいは自動の改行を許可する方法を示しています。ただし、拍に収まらない連符は手動で連桁を繋ぐ必要があります。

>     \layout {
>       \context {
>         \Voice
>         % Permit line breaks within tuplets
>         \remove "Forbid_line_break_engraver"
>         % Allow beams to be broken at line breaks
>         \override Beam.breakable = ##t
>       }
>     }
>     \relative c'' {
>       a8
>       \repeat unfold 5 { \tuplet 3/2 { c[ b a] } }
>       % Insert a manual line break within a tuplet
>       \tuplet 3/2 { c[ b \bar "" \break a] }
>       \repeat unfold 5 { \tuplet 3/2 { c[ b a] } }
>       c8
>     }

#### 参照

音楽用語集: triplet, tuplet, polymetric

学習マニュアル: Tweaking methods

記譜法リファレンス: 向きと配置, オブジェクトの可視性, 時間管理, 演奏時間を変更する, `\tweak` コマンド, 多拍子記譜法

コード断片集: Rhythms

内部リファレンス: TupletBracket, TupletNumber, TimeScaledMusic.

#### 演奏時間を変更する

`*N/M` (または、`M` が 1 の場合は `*N`) を演奏時間の後に付け加えることによって、単一の音符、休符、和音の演奏時間を分数 `N/M` 倍することができます。要素は評価結果が数字または `*#(ly:music-length music)` のような音楽的な長さとなる Scheme 表記を用いて加えることもできます。これは、音符や複数小節の休符の長さを音楽変数から導き出した長さにするために、 ‘`1`’ の長さを調整するのに便利です。

要素の追加は作り出される音符や休符の見た目には影響を与えませんが、変更された演奏時間は小節の中での位置を算出するためと、MIDI 出力での演奏時間を決定するために使用されます。掛け合わせる要素は `*L*M/N` のように組み合わせることができます。掛け合わせる要素は演奏時間の一部です: 音符の演奏時間が指定されていない場合、前の音符から取ったデフォルトの演奏時間に要素が掛け合わされます。

以下の例では、最初の 3 つの音符で 2 拍ですが、連符囲みは譜刻されていません。

>     \relative {
>       \time 2/4
>       % 演奏時間を変更して 3 連符にします
>       a'4*2/3 gis a
>       % 通常の演奏時間
>       a4 a
>       % 和音の演奏時間を 2 倍にします
>       <a d>4*2
>       % 演奏時間は 4 分音符ですが、見た目は 16 分音符です
>       b16*4 c4
>     }

空白休符の演奏時間も掛け算によって変更できます。これは `s1*23` のように多くの小節をスキップする場合に役に立ちます。

同様の方法で分数を使うことで、長く伸びた音楽を圧縮することができます。それによりそれぞれの音符、和音、休符には分数が掛け合わせられたかのようになります。これは楽譜要素の見た目をそのままにして、要素の内部演奏時間に与えられた伸縮比の要素、たいていは分子/分母を掛け合わせます。ここで、音楽がどのように圧縮され、伸張されるかを示す例を挙げます:

>     \relative {
>       \time 2/4
>       % 通常の演奏時間
>       <c'' a>4 c8 a
>       % 2/3 を掛けます
>       \scaleDurations 2/3 {
>         <c a f>4. c8 a f
>       }
>       % 2 を掛けます
>       \scaleDurations 2 {
>         <c' a>4 c8 b
>       }
>     }

このコマンドの応用例の 1 つは多拍子記譜法での使用です。多拍子記譜法 を参照してください。

#### 参照

記譜法リファレンス: 連符, 不可視の休符, 多拍子記譜法

コード断片集: Rhythms

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

小節内での位置の計算はその小節の音符に適用される全ての演奏時間の伸縮や、それより前の小節からの計算結果を考慮する必要があります。この計算は分数を用いて行われています。計算の途中で分子あるいは分母が 2^30 を超えると、プログラムの実行と譜刻はその時点でエラーを発生せずに止まります。 (訳注: 内部的に、分子と分母をそれぞれ整数型として持つ分数型を用いているため、あまりに複雑な演奏時間の伸縮を行うと、計算の途中で分子や分母が2^30 を超えてしまい譜刻が途中で止まってしまうということです。)

#### タイ

タイは同じピッチの隣り合う符頭を結び付けます。タイは音符の演奏時間を伸張する効果があります。

Note: タイを音楽的なフレーズを表す スラー や フレージング スラー と混同しないでください。タイは音符の演奏時間を伸ばす働きを持ち、音価を増やすドットに似ています。

タイは、結ばれる 2 つの音符の 1 つ目にチルド記号 (`~`) を付加することで入力します。この記号は音符が次の音符とタイで結ばれるということを示し、次の音符は同じピッチでなければなりません。

>     { a'2~ 4~ 16 r r8 }

タイでは、演奏時間のみを入力することで‘最後に明示されたピッチ’を用いることができます:

>     { a'2~ 4~ 16 r r8 }

タイは、音符が小節線をまたがる場合か、リズムを表すためにドットを使うことができない場合に使用されます。さらに、以下の例のように音価が小節の区画をまたがる場合にも使用されます (訳者補足: 4/4 拍子では 1 小節は 1/4, 1/4, 1/4, 1/4 の区画に分けられます。下の例の第 2 小節では半音符が区画をまたがっているので良くない書き方であり、第 1 小節のように書くべきです。):

>     \relative {
>       r8 c'4.~ 4 r4 |
>       r8^"こうすべきではありません" c2~ 8 r4
>     }

小節線をまたいで多くの音符をタイで結び付ける必要がある場合、自動音符分割を使用したほうが簡単かもしれません – 自動音符分割 を参照してください。これは長い音符を自動的に分割して、小節線をまたがる音符をタイで結び付けます。

タイを和音に適用する場合、ピッチが一致する符頭すべてが結ばれます。一致する符頭が無い場合、タイは作成されません。和音の内部にタイを置くことによって、和音の一部だけをタイで結ぶことができます。

>     \relative c' {
>       <c e g>2~ 2 |
>       <c e g>4~ <c e g c>
>         <c~ e g~ b> <c e g b> |
>     }

繰り返しの 2 回目の差し替え部分はタイで結ばれた音符で始まっています。そのような繰り返し部分でのタイは以下のように指定する必要があります:

>     \relative {
>       \repeat volta 2 { c'' g <c e>2~ }
>       \alternative {
>         % 1 番目の差し替え部分: 後に続く音符は通常通りタイで結ばれます
>         { <c e>2. r4 }
>         % 2 番目の差し替え部分: 後に続く音符にはリピート用のタイを付けます
>         { <c e>2\repeatTie d4 c }
>       }
>     }

L.v. タイ (レセ ヴィブレ: laissez vibrer) は音符を終端で途切れさせないということを示します。ピアノ、ハープ、他の弦楽器、それに打楽器のための楽譜で使用されます。L.v. タイは以下のように入力します:

>     <c' f' g'>1\laissezVibrer

タイを手動で上向きまたは下向きに配置することができます。 向きと配置 を参照してください。

タイを破線、点線、実線と破線の組み合わせにすることができます。

>     \relative c' {
>       \tieDotted
>       c2~ 2
>       \tieDashed
>       c2~ 2
>       \tieHalfDashed
>       c2~ 2
>       \tieHalfSolid
>       c2~ 2
>       \tieSolid
>       c2~ 2
>     }

破線パターンのカスタマイズを指定することができます:

>     \relative c' {
>       \tieDashPattern #0.3 #0.75
>       c2~ 2
>       \tieDashPattern #0.7 #1.5
>       c2~ 2
>       \tieSolid
>       c2~ 2
>     }

タイの破線パターン定義の構造は、スラーの破線パターン定義と同じです。複雑な破線パターンについての更なる情報は スラー を参照してください。

タイとの間に隙間を作りたいオブジェクトには、whiteout レイアウト プロパティと layer レイアウト プロパティをオーバライドしてください。

>     \relative {
>       \override Tie.layer = #-2
>       \override Staff.TimeSignature.layer = #-1
>       \override Staff.KeySignature.layer = #-1
>       \override Staff.TimeSignature.whiteout = ##t
>       \override Staff.KeySignature.whiteout = ##t
>       b'2 b~
>       \time 3/4
>       \key a \major
>       b r4
>     }

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

`\tieUp`, `\tieDown`, `\tieNeutral`, `\tieDotted`, `\tieDashed`, `\tieDashPattern`, `\tieHalfDashed`, `\tieHalfSolid`, `\tieSolid`

#### Selected Snippets

#### アルペジオにタイを使用する

タイはアルペジオを表記する際にも使われます。この場合、タイの始端となる複数の音符は同時である必要はありません。これは `tieWaitForNote` プロパティを `#t` にセットすることで実現できます。この機能は例えば、和音のトレモロにタイを繋ぐ場合などに有用ですが、通常の音符に対して用いることもできます。

>     \relative c' {
>       \set tieWaitForNote = ##t
>       \grace { c16[ ~ e ~ g] ~ } <c, e g>2
>       \repeat tremolo 8 { c32 ~ c' ~ } <c c,>1
>       e8 ~ c ~ a ~ f ~ <e' c a f>2
>       \tieUp
>       c8 ~ a
>       \tieDown
>       \tieDotted
>       g8 ~ c g2
>     }

#### タイを手動で譜刻する

タイは `TieColumn` オブジェクトの `tie-configuration` プロパティを変更することで手動で譜刻することができます。最初の数値が中央の譜線からの距離を譜スペースの半分の単位で表し、次の数値が向きを表します (1 = 上, -1 = 下)。

LilyPond は最初の数値の正確な値と不正確な値を区別することに注意してください。正確な値 (つまり、整数または `(/ 4 5)` のような分数) を使用する場合、値はおおよその垂直位置として機能し、LilyPond によってさらに調整され、タイが譜線を避けるようにします。浮動小数点数のような不正確な値を使用する場合は、それ以上調整せずに垂直位置と見なされます。

>     \relative c' {
>       <c e g>2~ <c e g>
>       \override TieColumn.tie-configuration =
>         #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
>       <c e g>2~ <c e g>
>       \override TieColumn.tie-configuration =
>         #'((0 . 1) (-2 . 1) (-4 . 1))
>       <c e g>2~ <c e g>
>     }

#### 参照

音楽用語集: tie, laissez vibrer

記譜法リファレンス: スラー, 自動音符分割

コード断片集: Expressive marks, Rhythms

内部リファレンス: LaissezVibrerTie, LaissezVibrerTieColumn, TieColumn, Tie

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

タイがアクティブなときに譜を切り換えても斜めのタイは作られません。

タイの最中に音部記号やオクターブを変更することはきちんと定義されていません。そのような場合には、スラーを用いる方が好ましいです。

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

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