bug-lilypond
[Top][All Lists]
Advanced

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

Re: Beaming override problem


From: Colin Hall
Subject: Re: Beaming override problem
Date: Sun, 1 Jul 2012 00:04:43 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

On Sat, Jun 30, 2012 at 10:50:46AM -0400, Mark Mathias wrote:
> On Mon, Jun 25, 2012 at 4:35 AM, David Kastrup <address@hidden> wrote:
> 
> > Colin Hall <address@hidden> writes:
> >
> > > On Mon, Jun 25, 2012 at 07:15:53AM +0200, David Kastrup wrote:
> > >> Colin Hall <address@hidden> writes:
> > >>
> > >> > On Mon, Jun 25, 2012 at 12:38:34AM +0200, David Kastrup wrote:
> > >> >> Nick Payne <address@hidden> writes:
> > >> >>
> > >> >> > If I set beamExceptions to beam 32nd notes by fours in 4/4 time,
> > this
> > >> >> > has the side effect of changing the beaming of 8th notes:
> > >> >> >
> > >> >> > %=====================
> > >> >> > \version "2.15.40"
> > >> >> >
> > >> >> > changeBeaming = \set beamExceptions =
> > >> >> >     #'((end . (((1 . 32) . (4 4 4 4 4 4 4 4)))))
> > >> >> >
> > >> >> > \relative c'' {
> > >> >> >     c8 c c c c c c c
> > >> >> >     \repeat unfold 32 { c32 }
> > >> >> > }
> > >> >> > \relative c'' {
> > >> >> >     \changeBeaming
> > >> >> >     c8 c c c c c c c
> > >> >> >     \repeat unfold 32 { c32 }
> > >> >> > }
> > >> >> > %=====================
> > >> >
> > >> > Thanks for the report, Nick.
> > >> >
> > >> > I just checked the docs, Nick, and I agree with you that:
> > >> >
> > >> > "Beaming-rules is a scheme alist (or list of pairs) that indicates the
> > >> > beam type and the grouping to be applied to beams containing notes
> > >> > with a shortest duration of that beam type."
> > >> >
> > >> > would lead me to expect that an exception that only mentions 32nds
> > >> > would only apply to 32nds.
> > >>
> > >> It does.  But if he _replaces_ the existing list, previously entered
> > >> exceptions are cleared out.
> > >
> > > Thanks, David, that makes it plain.
> > >
> > > I've re-read the docs and here is my new understanding:
> > >
> > > Common time has already established some exceptions to the beaming
> > > rules, which is why Nick's first bar is beamed in groups of four 8th
> > > notes in the first place.
> >
> > Well, it may be problematic that we don't have a user-accessible way of
> > telling LilyPond "please _add_ to the current exception list".  To do
> > that, one would need separate lists for "system exceptions" and "user
> > exceptions", and then one would also need a way to say "please forget
> > the system exceptions".  Ok, possibly in this case just explicitly
> > reentering the on-beat behavior for 8th notes would do.
> >
> > > I think the source of my confusion (and perhaps Nick's also) is that
> > > the norm, to which we are creating an exception, is unclear.
> > >
> > > He and I assumed that the normal behaviour is "what Lilypond does if I
> > > make no special statements about beaming" whereas what normal actually
> > > means is "terminate a beam at the end of a beat."
> > >
> > > The behaviour of Lilypond does agree with the documentation so there's
> > > no bug here.
> >
> > Setting/overriding whole lists when the default is non-empty is probably
> > not leading to the most convincing user interfaces.
> >
> > --
> > David Kastrup
>
> It's not clear to me what response is needed from the bug squad on this at
> this point. Colin, I'm passing the buck...
> Mark
>

Fine, that's the right thing to do, Mark, if you're unsure.

In brief, there is no bug here. Beaming is complicated. There is an
opportunity for a doc enhancement and perhaps a feature request.

In detail, I believe the facts (corrections welcome) are:

Beams occupy a single beat, by default.

Other beaming behaviour can be obtained by setting the value of the
beamExceptions variable.

The default time signature (common time) sets the value of
beamExceptions so that quavers (eighth notes) are beamed in groups of
four.

So the same control, beamExceptions, is already used by the default
time signature and must be used for anything special the user wants to
do.

So, in order to create their own special bit of beaming the user must
take whatever is already in beamExceptions and add their adaptations
to it.

All of the above is documented, but it is not easy reading.

The value of beamExceptions set by each time signature is not
documented.

Cheers,
Colin.

-- 

Colin Hall



reply via email to

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