連桁を細分する
16 分音符 (あるいはそれより短い音符) の連桁は、デフォルトでは細分されません。つまり、3 つ以上の音符全体が分かれることなく平等に連桁で繋がれます。この挙動は、subdivideBeams
プロパティをセットすることで、連桁を細分するように変更することができます。このプロパティがセットされると、連桁が現在の beatBase
の間隔で細分されて表示されるようになります。分割された後の音符全体の長さが分割長より短い (不完全な連桁) 場合は、連桁の本数は可能な最長分割グループが基になります。しかし、分割された後の音符が 1 つしか存在しない場合、この制限は適用されません。
beatBase
は、明示的にセットされなければ、現在の拍子記号の分母分の 1 に設定されます。beatBase
は、このスニペットのように
ly:make-moment
関数を用いて、連桁を分割する単位となる長さを分数で指定する必要があります。また、beatBase
が変更された場合、beatStructure
も新たな
beatBase
に合わせて変更する必要があります:
\relative c'' {
c32[ c c c c c c c]
\set subdivideBeams = ##t
c32[ c c c c c c c]
% Set minimum beam subdivision interval to 1/8 just for this beam
\once \set minimumBeamSubdivisionInterval = \musicLength 8
c32[ c c c c c c c]
% Set maximum beam subdivision interval to 1/16 just for this beam
\once \set maximumBeamSubdivisionInterval = \musicLength 16
c32[ c c c c c c c]
% Set maximum beam subdivision interval to 3/8 just for this beam
\once \set maximumBeamSubdivisionInterval = \musicLength 8*3
[ \repeat unfold 16 c64 ] r2.
% Set maximum beam subdivision interval to 1/64 to limit subdivision depth,
% despite not being metrically correct
\once \set minimumBeamSubdivisionInterval = \musicLength 32
\once \set maximumBeamSubdivisionInterval = \musicLength 64
[ \repeat unfold 32 c128 ] r2.
% Shorten beam by 1/32
c32[ c c c c c c] r32
% Shorten beam by 3/32
c32[ c c c c] r16.
% Respect the incomplete beams of the previous two examples
\set respectIncompleteBeams = ##t
c32[ c c c c c c] r32
% no visual change here as last two stems are exempt from this
% special rule
c32[ c c c c] r16.
}