Han-Wen Nienhuys writes:
> > "beamAuto"
> > "beamAutoBegin"
> > "beamAutoBegin" + type_str
> > "beamAutoEnd"
> > "beamAutoEnd" + type_str
>
> Jan?
These properties instruct the auto-beam engraver when to end or begin
a beam. Note that almost always beams should begin whenever possible,
the beam endings are more significant.
When a beam should end (or begin) is determined by the time-signature,
and the smallest duration in the beam. To avoid listing the matrix of
all time-signatures and all durations, some ellipses are allowed.
>From a comment in the code:
Determine end moment for auto beaming (and begin, mostly 0==anywhere)
In order of increasing priority:
i. every beat <den>
ii. time<num>_<den>beamAutoEnd
iii. time<num>_<den>beamAutoEnd<type>
iv. beamAutoEnd
v. beamAutoEnd<type>
Rationale:
[to be defined in config file]
i. easy catch-all rule
ii. exceptions for time signature
iii. exceptions for time signature, for specific duration type
[user override]
iv. generic override
v. override for specific duration type
The user overrides should be required for common cases.
In the file ly/auto-beam-settings.ly, all necessary i-iii settings should
be listed, here's a new version with more comments, (hw, please include).
% auto-beam-settings.ly
% setup for auto-beam engraver
%
% specify generic beam end times
% format:
%
% [time-signature]'beamAutoEnd'[duration]
%
% where
%
% time-signature = 'time'[numerator]'_'denominator; eg: 3_4
% duration = [numerator]'_'denominator; eg: 3_8, _16
%
% in 3/2 time:
% end beams each 1/2 note
% end beams with 16th notes each 1/4 note
% end beams with 32th notes each 1/8 note
time3_2beamAutoEnd = "1/2";
time3_2beamAutoEnd_16 = "1/4";
time3_2beamAutoEnd_32 = "1/8";
time3_4beamAutoBegin = "1/4";
time3_4beamAutoEnd_8 = "3/4";
time3_4beamAutoBegin_32 = "1/8";
time3_4beamAutoEnd_32 = "1/8";
time3_8beamAutoBegin = "1/8";
time3_8beamAutoEnd = "3/8";
% in common time:
% end beams each 1/2 note
% end beams with 32th notes each 1/8 note
% end beams with 1/8 triplets each 1/4 note
time4_4beamAutoEnd_8 = "1/2";
time4_4beamAutoEnd_12 = "1/4";
time4_4beamAutoEnd_32 = "1/8";
time4_8beamAutoEnd_8 = "1/4";
time4_8beamAutoEnd_16 = "1/4";
time4_8beamAutoEnd_32 = "1/8";
time4_16beamAutoEnd = "1/8";
time6_8beamAutoEnd_8 = "3/8";
time6_8beamAutoEnd_16 = "3/8";
time6_8beamAutoEnd_32 = "1/8";
time9_8beamAutoEnd_8 = "3/8";
time9_8beamAutoEnd_16 = "3/8";
time6_8beamAutoEnd_32 = "1/8";
----------
Users may override in most cases, simply by issuing
% from here on consider ending beam every 1/4 note
\property Voice.beamAutoEnd = "1/4"
% no autobeaming
\property Voice.beamAuto = "0"
or, more globally, by doing:
\paper{
\translator{
\VoiceContext
% consider ending beam at every 1/2 note
beamAutoEnd = "1/2";
}
}
see also input/test/auto-beam-override.ly
Jan.
Jan Nieuwenhuizen <[EMAIL PROTECTED]> | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien/ | http://www.lilypond.org/