|
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 workfor 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 standardtime 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 thebeatGrouping of (2 2 2 1) was overridden by your explicit rule to breakbeams 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 hadby default.If you want beams to be subdivided at (2 2 2 1), then just set beatLength to1/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 | } >> } ----
[Prev in Thread] | Current Thread | [Next in Thread] |