Carl
I would have liked to tackle this, but I think it is beyond my
skills at the moment. Changes will be needed to C++ code to
implement the new beam sub-dividing at least, and I have no means of
compiling LilyPond for testing.
Trevor
----- Original Message -----
From: "Carl D. Sorensen" <c_soren...@byu.edu>
To: "Trevor Daniels" <t.dani...@treda.co.uk>; "lilypond-devel"
<lilypond-devel@gnu.org>
Sent: Sunday, April 05, 2009 11:29 PM
Subject: Re: Reverting Beat Grouping Commands
On 4/5/09 3:36 PM, "Trevor Daniels" <t.dani...@treda.co.uk> wrote:
Carl D. Sorensen wrote Sunday, April 05, 2009 7:33 PM
What if we scrapped the current auto-beam code completely, and
replaced it
with a structured beatGrouping, something like
((denominator (ending-beatGroupings) (subdivide-beatGroupings))
(denominator2 (ending-beatGroupings) (subdivide-beatGroupings)))
It definitely has merit! Let's see if I understand it.
The current (ie in 2.13.1) beam-ending rules are used
only to prevent long beamed runs of 16th and 32nd beams.
Your suggestion easily accommodates all these. For example,
in 9/4 time there are 16 rules to do this. These could be
replaced by the far simpler
\set beatGrouping =
#'( 8 (3 3 3) ())
(16 (4 4 4 4 4 4) ())
(32 (8 8 8 8 8 8) ()))
You're missing an opening parentheses, I think.
or rather the equivalent in scm/music-functions.scm. We
could even improve the default by using sub-divided beams,
something we can't do at present.
So do you want to try to implement this, or do you want me
to work on it? If you're interested, I'd just as soon have you do
it.
But if you want me to do it, I'm willing.
I can't see anything this can't do. If by 3/32 beams you
mean beaming 32nd notes in threes, I think it can do this.
No, I don't mean beaming 32nd notes in threes. In the current
auto-beam-settings, there is a beam-numerator, which can be
something other
than 1 (although I don't know what it means to have the beam
numerator be
something else; every beam I know of has a numerator of 1). I just
meant
that this plan would do away with the beam numerator, and the beam
numerator
would always be assumed to be 1.
For example, in 9/4 you'd need to modify the above to
\set beatLength = #(ly:make-moment 1 32)
\set beatGrouping =
#'( 8 (12 12 12) ())
(16 (16 16 16 16 16 16) ())
(32 (3 3 3 3 3 3 3 3 3 3 3 3) ()))
This isn't the way I'd do it. I would never change beatLength; for
me,
beatLength remains the numerator of the time signature. Also, for
me, the
groupings for each beam type are always in the units of that beam
type, so
\set beatGrouping =
#'(( 8 (6 6 6)())
(16 (6 6 6 6 6 6)())
(32 (3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3) ()))
There was a discussion some time ago about auto-
beaming east-European rhythms. See
http://lists.gnu.org/archive/html/lilypond-user/2007-12/msg00032.html
It's getting late now, so I'll leave this until tomorrow,
but I wonder if your scheme would handle this?
I couldn't understand what the issue was in Hans's post. I thought
tuplets
were always beamed, and I don't know what subdivisions he wanted to
have in
the quadruplets.
Carl
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel