演奏時間を変更する

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

[image of music]

空白休符の演奏時間も掛け算によって変更できます。これは 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
  }
}

[image of music]

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

参照

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

コード断片集: Rhythms

既知の問題と警告

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


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