On 21 Jun 2009, at 20:16, Carl D. Sorensen wrote:
I think you misunderstand how beatGrouping works.
In previous versions of LilyPond (2.10, and less than 2.11.x, where
I don't
remember what x is -- it was about August 2008), beatGrouping didn't
work
for autoBeaming.
It is rather that LilyPond has changed a couple of times in the past,
so the code I have compiled differently, and therefore I gave up on it
for a while.
beatGrouping sets the points at which autobeams end, unless there are
explicitly set rules.
beatLength sets the points at which beams are automatically
subdivided.
By default, beatLength is the numerator of the time signature.
By default, beatGrouping is set according to the time signature for
standard
time signatures (you can see the defaults in scm/music-functions.scm).
In your case, LilyPond was doing exactly what you asked it to.
subdivideBeams set to ##f, the beams were not subdivided. And the
beatGrouping of (2 2 2 1) was overridden by your explicit rule to
break
beams at 4/16.
With subdivideBeams set to ##f, beams were broken at 4/16 (according
to your
rule), and subdivided every 1/16 note, since that's the beatLength
you had
by default.
If you want beams to be subdivided at (2 2 2 1), then just set
beatLength to
1/8, and you'll get what you want.
Yes, beatLength will do a (2+2)+(2+1) beaming. Though this is one
possible beaming for what I am writing now, my problem is that I have
bunch of different meters. For example, I may want (2+2)+3,
(2+2)+3+(2+2) and so on.
I have looked at the stuff you describe above ("Sub-dividing beams",
page 60/70 in the manual). It seems that beatLength assumes that
subdivisions should happen on multiples of this time values. This does
not work with a meter beaming like 3+(2+2) or (2+1)+(2+2). See code
below - it seems that this 3 causes problems.
The auto-beaming model is perhaps too crude for subbeaming all these
meters - in some, a trick might do.
Hans
----
\version "2.13.1"
\score {
\new Staff <<
\relative {
\time 7/16
\set beatGrouping = #'(2 1 2 2)
% \set beatGrouping = #'(3 4)
\set subdivideBeams = ##t
% \set beatLength = #(ly:make-moment 1 8)
f8 f16 f f16 f f | f16 f8 f8 f16 f | f16 f16 f16 f16 f f8 |
#(override-auto-beam-setting '(end * * 7 16) 3 16)
f8 f16 f f16 f f | f16 f8 f8 f16 f | f16 f16 f16 f16 f f8 |
}
>>
}
----
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user