lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Patch to autobeaming code.


From: Trevor Daniels
Subject: Re: Patch to autobeaming code.
Date: Wed, 20 Aug 2008 11:24:30 +0100


Carl D. Sorensen wrote Tuesday, August 19, 2008 7:42 PM

What did you intend to have happen when beatLength is changed?  AFAICS,
\time 12/16 sets measureLength to (ly:make-moment 12 16) and beatLength to
(ly:make-moment 1 16). When a user sets beatLength to (ly:make-moment 1 8) it says to me they want to have an 8 in the denominator of the time signature,
even though they want the printed value to be 16.

For me, that should be the only reason for using beatLength. I don't think beatLength is the appropriate thing to use for changing beaming. That's what
beatGrouping is for.

If it were up to me, I would not allow users to directly change beatLength. I
don't think that a disconnect between the \time setting and the beatLength
setting should be allowed. If users want to fake time signatures, they can --
and the techniques to do this are shown in the manual.

But, as long as we are allowing users to set beatLength to  1/8, when the
measure length is 12/16, aren't we really saying that the measure should be 6/8 (i.e. 12 16th notes = 6 eighth notes, and the measure should be divided
into beats by eighth notes)?

What other interpretation is there for beatLength?

The beatLength value controls the sub-beating within compound
signatures when manual beaming is being used with
subdivided beams.  Try these:

\relative c'' {
 \time 12/8
 \set subdivideBeams = ##t
 %default - 12 sub-beats based on 1/8 notes
 a16[ a a a a a a a a a a a a a a a a a a a a a a a]

 % 3 sub-beats based on 1/2 durations
 \set Score.beatLength = #(ly:make-moment 1 2)
 a16[ a a a a a a a a a a a a a a a a a a a a a a a]

 % 4 sub-beats based on 3/8 durations
 \set Score.beatLength = #(ly:make-moment 3 8)
 a16[ a a a a a a a a a a a a a a a a a a a a a a a]

 % 6 sub-beats based on 1/4 durations
 \set Score.beatLength = #(ly:make-moment 1 4)
 a16[ a a a a a a a a a a a a a a a a a a a a a a a]
}

Is there an easier or better way of doing this?

Trevor





reply via email to

[Prev in Thread] Current Thread [Next in Thread]