[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 行の幅 ] | [ 上へ : 水平方向のスペース ] | [ 音楽を少ないページに収める > ] |
4.5.5 プロポーショナル ノーテーション
LilyPond はプロポーショナル ノーテーションをサポートします。この記譜法では、各音符は演奏時間に相当する水平方向のスペースをとります。このタイプの水平スペースは、方眼紙上の水平方向スペースと同等です。20 世紀後半、21 世紀前半の楽譜の中には、複雑なリズムをわかりやすく示すため、あるいは、時間軸や他の図の配置を容易にするために、プロポーショナル ノーテーションを使っているものがあります。
LilyPond はプロポーショナル ノーテーション用に 5 つの設定をサポートします。それらの設定は一緒に使われることもありますし、単独で使われることもあります:
-
proportionalNotationDuration
-
uniform-stretching
-
strict-note-spacing
-
\remove Separating_line_group_engraver
-
\override PaperColumn.used = ##t
以下の例では、これら 5 つのプロポーショナル ノーテーション用の設定を見ていき、それらがどのように相互に作用するかを調べます。
以下のような 1 小節の例から始めます。これは、ragged-right
が ON であり、クラシック音楽でのスペースを使用します。
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> }
小節の始まりに配置された 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) } } }
今度は、小節の前半に配置された 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) } } }
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 } } >> }
このスペースのとり方は良くありません。なぜなら、下の譜の音符の間隔が一様ではないからです。クラシック音楽の譜刻には複雑な連符はほとんど含まれないため、クラシック音楽の譜刻規則はこのような結果を生み出す可能性があります。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) } } }
しかしながら、注意深く見ると、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 } } }
今度は、適切にスペースが割り当てられました。リズムは視覚的に明快になり、必要があれば時間軸や図を挿入することができます。
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 }
この前置きのスペースの量は、前にあるのが拍子記号、調号、あるいは音部記号のいずれであっても、同じです。Separating_line_group_engraver
はこのスペースに責任を負います。Separating_line_group_engraver
を削除すると、このスペースはゼロになります。
\paper { indent = #0 } \new Staff \with { \remove Separating_line_group_engraver } { c'1 \break c'1 }
拍子記号、調号、音部記号、それに臨時記号のような非音楽要素は、プロポーショナル ノーテーションでは問題になります。これらはすべて演奏時間を持ちません。しかしながら、これらはすべて水平方向のスペースを消費します。この問題に対して、プロポーショナルな楽譜はいくつかの異なるアプローチをとります。
調号のスペースの問題は、調号を持たないことで回避できるかもしれません。これは有効な選択肢です。なぜなら、たいていのプロポーショナルな楽譜は現代音楽だからです。拍子記号についても同じことが言えるかもしれません。時間軸や他の図を持つ楽譜であれば特にそうです。しかしながら、そのような楽譜は例外的なものであり、たいていのプロポーショナルな楽譜は少なくともいくつかの拍子記号を持ちます。さらに、音部記号と臨時記号はより必須のものです。
それでは、プロポーショナルなコンテキストにおける非音楽要素のスペースに対してどのような解決法が存在するのでしょうか?とり得る選択肢の 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 }
どちらの楽譜もプロポーショナルです。しかしながら、最初の楽譜は音部変更があるため広がりすぎています。2 番目の楽譜は、strict-note-spacing
を ON にしているため、プロポーショナルな間隔を維持しています。strict-note-spacing
を ON にすると、拍子記号、調号、音部記号、それに臨時記号の幅は、スペース アルゴリズムの中で何の役割も果たさなくなります。
この設定に加えて、他にもプロポーショナルな楽譜で頻出する設定があります。以下のような設定です:
-
\override SpacingSpanner.strict-grace-spacing = ##t
-
\set tupletFullLength = ##t
-
\override Beam.breakable = ##t
-
\override Glissando.breakable = ##t
-
\override TextSpanner.breakable = ##t
-
\remove Forbid_line_break_engraver in the Voice context
これらの設定は、装飾小音符のスペースを厳密にし、連譜の囲みをリズム的な開始点、終了点まで拡張し、(連桁のような) 広がりを持つ要素が、システムやページが改まるときに中断されることを許可します。これらの設定について、本書の関連パートを参照してください。
参照
記譜法リファレンス: 新しいスペース セクション
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス] | [ デフォルトを変更する >> ] |
[ < 行の幅 ] | [ 上へ : 水平方向のスペース ] | [ 音楽を少ないページに収める > ] |