[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.5 水平方向のスペース

@translationof Horizontal spacing


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.5.1 水平方向のスペースの概要

@translationof Horizontal spacing overview

スペース エンジンは異なる演奏時間を異なる長さの可変距離 (‘スプリング’) に翻訳します。長い演奏時間はより多くのスペースをとり、短い演奏時間はより少ないスペースをとります。最短の演奏時間は固定量のスペース (これは (internals)SpacingSpanner section ‘SpacingSpanner’ in Internals Reference オブジェクトの中にある shortest-duration-space によって制御されます) をとります。演奏時間が長くなるほど、より多くのスペースをとります: 演奏時間が倍になると、 spacing-increment 分のスペースがその音符に付け加えられます。

例えば、以下の楽曲には多くの 2 分音符、4 分音符、それに 8 分音符が含まれています。 8 分音符の後には符頭幅 (NHW) 1 つ分が挿入されます。4 分音符の後には 2 NHW が挿入され、2 分音符の後には 3 NHW が挿入されます。

 
\relative c' {
  c2 c4. c8
  c4. c8 c4. c8
  c8 c c4 c c
}

[image of music]

通常、spacing-increment は 1.2 譜スペースに設定されています。これは符頭の幅とだいたい同じです。さらに、shortest-duration-space は 2.0 に設定されています。つまり、最短の音符は 2.4 譜スペース (spacing-increment の 2 倍) の水平方向のスペースをとります。このスペースはシンボルの左端からカウントされます。そのため、最短の音符の後には一般に 1 NHW のスペースが挿入されます。

上記の手順に正確に従った場合、8 分音符や 16 分音符を含む楽譜に 32 分音符を 1 つ付け加えると、楽譜全体が大きく引き伸ばされます。最短の音符はもはや 16 分音符ではなく、32 分音符であり、それぞれの 16 分音符に 1 NHW が付け加えられます。このことを防ぐため、スペースをとるための最短の演奏時間を、その楽譜の中にある最短の音符ではなく、最も頻繁に出現する音符とします。

最も共通する最短演奏時間は以下のように決定されます: 各小節において、最短の演奏時間が決定されます。スペースの基本として、最も共通する最短演奏時間が選択されます。条件として、この最短演奏時間は常に 8 分音符以上の長さになります。

この演奏時間はカスタマイズすることもできます。 (internals)SpacingSpanner section ‘SpacingSpanner’ in Internals Reference の中にある common-shortest-duration を設定した場合、スペースのための基本演奏時間が設定されれます。この基本演奏時間の最大値 (通常、8 分音符) は、base-shortest-duration によって設定されます。

共通の最短音符よりも短い音符の後には、その音符の演奏時間と共通の最短音符の演奏時間の比を反映したスペースが付けられます。そのため、上記の例に 16 分音符を数個付け加えた場合、16 分音符の後には NHW の半分の幅のスペースが付けられます:

 
\relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }

[image of music]

Essay on automated music engraving で説明したように、符幹の向きはスペーシングに影響し ( (essay)Optical spacing section ‘Optical spacing’ in Essay を参照してください)、またそれは ( (internals)Voice section ‘Voice’ in Internals Reference コンテキスト毎に生成される) (internals)NoteSpacing section ‘NoteSpacing’ in Internals Reference オブジェクトの stem-spacing-correction プロパティで調整することができます。

StaffSpacing オブジェクト ( (internals)Staff section ‘Staff’ in Internals Reference コンテキストで生成されます) は、符幹や小節線のスペーシングと同じプロパティを持ちます。

次の例ではそのことを示しています。前者はデフォルトの設定で、後者は修正を誇張しています:

[image of music]

プロポーショナル ノーテーション (proportional notation) がサポートされます。プロポーショナル ノーテーション を参照してください。

参照

Essay on automated music engraving: (essay)Optical spacing section ‘Optical spacing’ in Essay

コード断片集: (snippets)Spacing section ‘Spacing’ in Snippets

内部リファレンス: (internals)SpacingSpanner section ‘SpacingSpanner’ in Internals Reference, (internals)NoteSpacing section ‘NoteSpacing’ in Internals Reference, (internals)StaffSpacing section ‘StaffSpacing’ in Internals Reference, (internals)NonMusicalPaperColumn section ‘NonMusicalPaperColumn’ in Internals Reference

既知の問題と警告

スペースを手動で上書きするための、手軽な仕組みはありません。余分なスペースを楽譜に挿入するために、以下の手段があります – 必要に応じて、パディングの値を調整しています。

 
 \override Score.NonMusicalPaperColumn.padding = #10

スペースを減らすための手段はありません。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.5.2 新しいスペース セクション

@translationof New spacing section

newSpacingSection コマンドで、異なるスペーシング設定を持った新たなセクションを始めることができます。これは、音符の‘長い’/‘短い’について観念が異なるセクションがある場合に有用です。\newSpacingSection コマンドは、その時点に新しい SpacingSpanner を作り出します。

次の例では、拍子記号が変化したところで新たなセクションを作り出しています。そして、16 分音符の間隔が自動的に少し広がっています。

 
\relative c' {
  \time 2/4
  c4 c8 c
  c8 c c4 c16[ c c8] c4
  \newSpacingSection
  \time 4/16
  c16[ c c8]
}

[image of music]

自動的なスペース調整が要求に合わない場合は、手動で \override を SpacingSpanner のプロパティに適用することができます。これらは、\newSpacingSection コマンドそのものと同じ音楽タイミングで適用される必要があり、それに続く音楽から新たなスペース セクションでプロパティが変更されるまでの間のスペースに影響します。例を示します:

 
\relative c' {
  \time 4/16
  c16[ c c8]
  \newSpacingSection
  \override Score.SpacingSpanner.spacing-increment = #2
  c16[ c c8]
  \newSpacingSection
  \revert Score.SpacingSpanner.spacing-increment
  c16[ c c8]
}

[image of music]

参照

コード断片集: (snippets)Spacing section ‘Spacing’ in Snippets

内部リファレンス: (internals)SpacingSpanner section ‘SpacingSpanner’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.5.3 水平方向のスペースを変更する

@translationof Changing horizontal spacing

水平方向のスペースを、base-shortest-duration で変更することができます。ここで、同じ音楽を比較します。1 つではこのプロパティを変更せず、もう 1 つでは変更します。ly:make-moment の値が大きくなると、楽譜は小さくなります。ly:make-moment は演奏時間を構成するため、1/4 は 1/16 よりも長い演奏時間であるということに注意してください。

 
\score {
  \relative {
    g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
  }
}

[image of music]

 
\score {
  \relative {
    g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
    d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
    g4 e e2 | f4 d d2 | c4 e g g | c,1 |
  }
  \layout {
    \context {
      \Score
      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
    }
  }
}

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

連符を均等に割り付ける

@translationof Uniform stretching of tuplets

デフォルトでは、連符のスペースは演奏時間とは関係の無い要素 (臨時記号、音部記号の変化など) に依存します。そのような記号を無視して、同じ演奏時間に等しいスペースを割り当てるには、Score.SpacingSpanner.uniform-stretching を使用します。このプロパティは、楽譜の先頭でのみ、変更することができます。

 
\score {
  <<
    \new Staff \relative c' {
      \tuplet 5/4 { c8 c c c c } c8 c c c
    }
    \new Staff \relative c' {
      c8 c c c \tuplet 5/4 { c8 c c c c }
    }
  >>
  \layout {
    \context {
      \Score
      \override SpacingSpanner.uniform-stretching = ##t
    }
  }
}

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

厳密な音符のスペーシング

@translationof Strict note spacing

strict-note-spacing がセットされている場合、音部記号、小節線、それに装飾小音符を考慮せずに、音符にスペースが割り当てられます。

 
\override Score.SpacingSpanner.strict-note-spacing = ##t
\new Staff \relative {
  c''8[ c \clef alto c \grace { c16 c } c8 c c]  c32[ c] }

[image of music]

参照

コード断片集: (snippets)Spacing section ‘Spacing’ in Snippets


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.5.4 行の幅

@translationof Line width

スペースに影響を与える最も基本的な設定は、indent と line-width です。これらは \layout ブロックの中で設定されます。これらの設定は、楽譜の最初の行のインデントと、行の長さを制御します。

\layout ブロックの中で ragged-right が真にセットされている場合、システムは行全体を埋めるように水平方向に引き伸ばされず、本来の長さで終了します。これは、小さな楽譜の場合や、本来のスペースがどれくらいの密度なのかをチェックする場合に有用です。通常のデフォルト設定は偽ですが、1 つしかシステムを持たない楽譜の場合のデフォルト値は真です。

ragged-last オプションは ragged-right に似ていますが、楽曲の最後の行だけに影響を与えます。最後の行には、何の制限も加えられません。この結果は、文章の段落をフォーマットする場合と同じです。文章の段落において、最後の行は単純にそのままの長さにフォーマットされます。

 
\layout {
  indent = #0
  line-width = #150
  ragged-last = ##t
}

参照

コード断片集: (snippets)Spacing section ‘Spacing’ in Snippets


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.5.5 プロポーショナル ノーテーション

@translationof Proportional notation

LilyPond はプロポーショナル ノーテーションをサポートします。この記譜法では、各音符は演奏時間に相当する水平方向のスペースをとります。このタイプの水平スペースは、方眼紙上の水平方向スペースと同等です。20 世紀後半、21 世紀前半の楽譜の中には、複雑なリズムをわかりやすく示すため、あるいは、時間軸や他の図の配置を容易にするために、プロポーショナル ノーテーションを使っているものがあります。

LilyPond はプロポーショナル ノーテーション用に 5 つの設定をサポートします。それらの設定は一緒に使われることもありますし、単独で使われることもあります:

以下の例では、これら 5 つのプロポーショナル ノーテーション用の設定を見ていき、それらがどのように相互に作用するかを調べます。

以下のような 1 小節の例から始めます。これは、ragged-right が ON であり、クラシック音楽でのスペースを使用します。

 
\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
  >>
}

[image of music]

小節の始まりに配置された 2 分音符がその小節で占める水平方向のスペースは、半分よりもずっと少ないということに注意してください。そのため、小節の後半に配置された 16 分音符と、16 分音符からなる 5 連符 (すなわち、20 分音符) がその小節で占める水平方向のスペースは、半分よりもずっと多くなっています。

クラシック音楽の譜刻では、このスペースのとり方が望ましいかもしれません。なぜなら、2 分音符から水平方向のスペースを借りてきて、小節全体としてスペースを維持することができるからです。

他方で、時間軸や他の図を楽譜の上または下に挿入しようとした場合、プロポーショナル ノーテーションが必要になります。proportionalNotationDuration 設定でプロポーショナル ノーテーションを有効にします。

 
\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
  >>
 \layout {
    \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 1/20)
    }
  }
}

[image of music]

今度は、小節の前半に配置された 2 分音符と、後半に配置された短い音符の集まりが占める水平方向のスペースは等しくなりました。これで、この例の上または下に、時間軸や他の図を配置することが可能になりました。

proportionalNotationDuration 設定は、Score の中にあるコンテキスト設定です。入力ファイルの中でコンテキスト設定が出現するのは、3 つの場所のどれかだということを思い出してください – \with ブロックの中、\context ブロックの中、あるいは、\set コマンドを前に置いた形で音楽エントリの中に直接配置します。他のすべてのコンテキスト設定と同様に、ユーザはこれら 3 つの場所のどれか 1 つを選択して、そこで proportionalNotationDuration をセットすることができます。

proportionalNotationDuration 設定は引数を 1 つとります。これはすべての音楽要素へのスペースに関係する参照演奏時間です。LilyPond Scheme 関数 make-moment は 2 つの引数をとります – 全音符の分数を表す分子と分母です。それゆえ、(ly:make-moment 1/20) という呼び出しは、20 分音符の参照演奏時間となります。(ly:make-moment 1/16), (ly:make-moment 1/8), それに (ly:make-moment 3/97) という値はすべてとり得る値です。

では、どのように proportionalNotationDuration に渡す適切な参照演奏時間を決めるのでしょうか?通常、その楽曲の最速 (あるいは最小) の演奏時間に近い演奏時間から始めて、トライ&エラーで決めます。小さな参照演奏時間にすると疎な楽譜となり、大きな参照演奏時間にすると密な楽譜になります。

 
\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
  >>
  \layout {
    \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 1/8)
    }
  }
}

\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
  >>
  \layout {
    \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 1/16)
    }
  }
}

\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
  >>
  \layout {
    \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 1/32)
    }
  }
}

[image of music]

8 分音符以上などのようなあまりにも大きな演奏時間にすると、楽譜が密になりすぎて、符頭の衝突が発生する可能性があるということに注意してください。さらに、一般にプロポーショナル ノーテーションはクラシック音楽のスペースよりも多くの水平方向スペースをとるということに注意してください。プロポーショナル ノーテーションは、多くの水平方向スペースを使うことで、明快なリズムを提供します。

次に、重複する連符に最適なスペースを割り当てる方法を検証します。

まず、クラシック音楽のスペースで、異なるタイプの連符を付け加えたときに、何が起こるかを見ていきます。

 
\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
    \new RhythmicStaff {
      \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
    }
  >>
}

[image of music]

このスペースのとり方は良くありません。なぜなら、下の譜の音符の間隔が一様ではないからです。クラシック音楽の譜刻には複雑な連符はほとんど含まれないため、クラシック音楽の譜刻規則はこのような結果を生み出す可能性があります。proportionalNotationDuration を設定することにより、この状況はかなり修正されます。

 
\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
    \new RhythmicStaff {
      \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
    }
  >>
  \layout {
    \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 1/20)
    }
  }
}

[image of music]

しかしながら、注意深く見ると、9 連符の後半の音符の間隔が、前半の音符の間隔よりもわずかに広くなっています。間隔を一様にするため、SpacingSpanner のプロパティである uniform-stretching を ON にします。

 
\score {
  <<
    \new RhythmicStaff {
      c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
    }
    \new RhythmicStaff {
      \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
    }
  >>
  \layout {
    \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 1/20)
      \override SpacingSpanner.uniform-stretching = ##t
    }
  }
}

[image of music]

今度は、適切にスペースが割り当てられました。リズムは視覚的に明快になり、必要があれば時間軸や図を挿入することができます。

LilyPond のプロポーショナル ノーテーション パッケージは、すべてのプロポーショナルな楽譜は SpacingSpanner の 'uniform-stretching 属性が ##t に設定されているものと見なします。SpacingSpanner の 'uniform-stretching 属性が ##t に設定されずに、proportionalNotationDuration が設定されると、例えば、スキップ (空白音符) の水平方向のスペースが適切に割り当てられません。

SpacingSpanner は Score コンテキストの中にある抽象的なグラフィカル オブジェクトです。proportionalNotationDuration の設定と一緒に、SpacingSpanner をオーバライドする場所は、入力ファイルの 3 つの場所のいずれかになります – Score \with ブロックの中、Score \context ブロックの中、あるいは音符入力の場所に直接配置するかです。

デフォルトでは、Score ごとに SpacingSpanner が 1 つあります。つまり、デフォルトでは、uniform-stretching は楽譜全体で ON であるか、OFF であるかのどちらかであるということです。しかしながら、この振る舞いをオーバライドして、楽譜内の異なる場所で異なるスペース機能を設定することができます。これを実現するには、コマンド \newSpacingSection を用います。更なる情報は、新しいスペース セクション を参照してください。

次に、Separating_line_group_engraver の効果を検証し、なぜプロポーショナルな楽譜は頻繁にこのエングラーバを削除するのかを見ていきます。以下の例は、各システムの最初の音符の直前に小さな “前置きの” スペースがあることを示しています。

 
\paper {
  indent = #0
}

\new Staff {
  c'1
  \break
  c'1
}

[image of music]

この前置きのスペースの量は、前にあるのが拍子記号、調号、あるいは音部記号のいずれであっても、同じです。Separating_line_group_engraver はこのスペースに責任を負います。Separating_line_group_engraver を削除すると、このスペースはゼロになります。

 
\paper {
  indent = #0
}

\new Staff \with {
  \remove "Separating_line_group_engraver"
} {
  c'1
  \break
  c'1
}

[image of music]

拍子記号、調号、音部記号、それに臨時記号のような非音楽要素は、プロポーショナル ノーテーションでは問題になります。これらはすべて演奏時間を持ちません。しかしながら、これらはすべて水平方向のスペースを消費します。この問題に対して、プロポーショナルな楽譜はいくつかの異なるアプローチをとります。

調号のスペースの問題は、調号を持たないことで回避できるかもしれません。これは有効な選択肢です。なぜなら、たいていのプロポーショナルな楽譜は現代音楽だからです。拍子記号についても同じことが言えるかもしれません。時間軸や他の図を持つ楽譜であれば特にそうです。しかしながら、そのような楽譜は例外的なものであり、たいていのプロポーショナルな楽譜は少なくともいくつかの拍子記号を持ちます。さらに、音部記号と臨時記号はより必須のものです。

それでは、プロポーショナルなコンテキストにおける非音楽要素のスペースに対してどのような解決法が存在するのでしょうか?とり得る選択肢の 1 つに、SpacingSpanner の strict-note-spacing プロパティがあります。以下の 2 つの楽譜を比べてください:

 
\new Staff {
  \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
  c''8 8 8 \clef alto d'2 2
}

\new Staff {
  \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
  \override Score.SpacingSpanner.strict-note-spacing = ##t
  c''8 8 8 \clef alto d'2 2
}

[image of music]

どちらの楽譜もプロポーショナルです。しかしながら、最初の楽譜は音部変更があるため広がりすぎています。2 番目の楽譜は、strict-note-spacing を ON にしているため、プロポーショナルな間隔を維持しています。strict-note-spacing を ON にすると、拍子記号、調号、音部記号、それに臨時記号の幅は、スペース アルゴリズムの中で何の役割も果たさなくなります。

この設定に加えて、他にもプロポーショナルな楽譜で頻出する設定があります。以下のような設定です:

これらの設定は、装飾小音符のスペースを厳密にし、連譜の囲みをリズム的な開始点、終了点まで拡張し、(連桁のような) 広がりを持つ要素が、システムやページが改まるときに中断されることを許可します。これらの設定について、本書の関連パートを参照してください。

参照

記譜法リファレンス: 新しいスペース セクション

コード断片集: (snippets)Spacing section ‘Spacing’ in Snippets


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]

This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.

他の言語: English, català, deutsch, español, français, italiano
About automatic language selection.