lilypond-devel
[Top][All Lists]
Advanced

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

Re: Getting beam subdivision working


From: Carl Sorensen
Subject: Re: Getting beam subdivision working
Date: Fri, 16 Jun 2023 18:26:42 -0600

Jason,

Great work!

On Fri, Jun 16, 2023 at 5:23 PM Jason Yip <sripedia_getpgrp@slmail.me>
wrote:

> Hey all,
>
>
>
> The other "failing" regression tests concern the purpose of baseMoment.
>
> https://gitlab.com/lilypond/lilypond/uploads/9f968b929162a0d70d212ac2e99ec841/beam-subdivisions--notes-for-reimplementation--urs-liska.pdf
> points out the flaw of the current implementation's dependence on the
> value of baseMoment to subdivide beams.


The way I read Urs's document, your results on input/regression/
beam-subdivide-shortened-beam.ly are actually correct.  The shortened beams
*should* be subdivided as if the notes were there, because the rests are
part of the group.

beam-subdivide-quarter-notes.ly likely fails because there is a special
rule for subdividing 16 sixteenth notes by quarter notes; we'd like to
subdivide by the quarter, but we have to keep a single beam to keep the
beam alive, so it looks like we're subdividing by eighths.  Urs addresses
this in having rhythmic importance values < 8 on page 4.

Before you work too hard on beam-subdivide-tuplets.ly, you may wish to
investigate Urs's comment on local beat structure for tuplets.  As far as I
know now, you don't have a beat structure yet implement for subbeams; that
may be a very powerful construct that could be helpful.

I suspect that much of the concern about baseMoment and subdivision in
Urs's paper can actually be resolved with baseMoment and beatStructure
(including local beat structures).  And using baseMoment and beatStructure
would potentially resolve the problem of only allowing 1/x subdivision
discussed on page 3.

You have created a Sub_beam class.  Is there a reason to use a
Sub_beam class instead of just creating a new Beaming_pattern element as
Urs suggests on page 7?  Can a Sub_beam just be a Beaming_pattern?  Perhaps
using the same class of object would prevent duplication.

Anyway this looks terrific!

Carl

P.S. Have you tried any of Urs's hard examples to see if  your code works
on them?  It would be nice to see how many you have already solved!  I
suspect it's most of them.




>


reply via email to

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