Urs, Here's an old email that discusses a proposed different structure for setting beaming characteristics.
The thing that caused me to see this as the most promising is it has settings for both beat grouping (i.e. how to combine beamed notes into groups) and beat subdivision (i.e. how to subdivide beat groups). The proposal has never been fleshed out, but it at least has a placeholder for the two different types of behavior we are after. Thanks, Carl On 4/5/09, 3:35 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))) > > We might then have something like the following in 6/8 time: > > ((8 (3 3) ()) > (16 (6 6) (6 6)) > (32 (4 4 4 4 4 4) (8 8 8))) > > Then, if subdivideBeams were set to #t, we could reduce the beam > count for > a given level of beaming at the appropriate point. > > I don't know if this is a better solution, but it might improve > what > currently seems to me to be a very awkward system. > > One weakness in this approach is that it provides no way to have > an > auto-beam-ending rule for 3/32 beams (but I don't know of any 3/32 > beams, so > I don't think that's a real limitation). > > David Brobroff's request > <http://thread.gmane.org/gmane.comp.gnu.lilypond.general/46316/focus=46323> > could then be met by > > ((8 (4) ()) > (16 (4 4) ()) > (32 (8 8) (4 4 4 4))) > > This would have the downside of requiring a complete redefinition > every time > you changed the time signature, but it would get rid of the > current problem > where you have to revert rules before you can add new ones. It > would also > put all automatic definitions of autobeam rules in one location in > the > source tree, rather than having them spread across two files. > > I don't know if this proposal has merit or not, but it seems like > we really > ought to get to *some* combination of syntax and functionality > that we think > really works. 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) ())) 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. 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. 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) ())) 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? Trevor _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel