lilypond-user
[Top][All Lists]
Advanced

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

Re: subdivideBeams broken?


From: Hans Aberg
Subject: Re: subdivideBeams broken?
Date: Sun, 21 Jun 2009 23:27:54 +0200

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 |
  }
>>
}
----





reply via email to

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