lilypond-user
[Top][All Lists]
Advanced

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

Re: Autobeaming with subdivision in 4/4


From: Mats Bengtsson
Subject: Re: Autobeaming with subdivision in 4/4
Date: Wed, 05 Mar 2008 23:52:01 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20061113 Debian/1.7.8-1sarge8

Hugo Flordal wrote:

On Tue, 4 Mar 2008, Hans Aberg wrote:

On 4 Mar 2008, at 13:20, Hugo Flordal wrote:

The problem is that you want to beam differently than
implied by the time signature you want to write. So you
want to beam in what might be described as 8 =
(1+1)+(1+1)+(1+1)+(1+1), whereas the common interpretation
of 4 is (1+1)+(1+1) or perhaps 1+1+1+1. If taken
literally, your beaming implies that the 4/4 has one
primary accent, and on the 1/4s have secondary accents.
Then each 1/4 has a yet subordinate accent on the second
1/8 of it. And LilyPond does not a dedicated function
doing just that, though it might be possible to do write
one.
Thank you for the reply, but I'm not sure I get it... Are
you saying (indirectly) that when I set the beatLength to
1/8, I implicitly change the timing to 8/8? Should I then
use 8/8 beaming rules? Is that why my 4/4 auto-beam rules do
not work but the */* rules do?
No. LilyPond currently only has ready-made high-level functions for some standard situations, where time signature and beaming agree. In other cases one will have to use low level functions, as I showed you.

  Hans Aberg

Well, believe it or not, it _does_ work "as it should" when I change the rules to

 #(override-auto-beam-setting '(end * * 8 8) 1 4 'Voice)
 #(override-auto-beam-setting '(end * * 8 8) 1 2 'Voice)
 #(override-auto-beam-setting '(end * * 8 8) 3 4 'Voice)

That is to say, 8/8 instead of 4/4. But the timing is still unchanged, i.e. 4/4, just like I wanted it. (I have only tried it for the example that I posted originally, perhaps this is a freak example, I'll experiment more later.)
 Clearly, this is not a bug---it is an accidental feature!
Right! A look into the implementation of the auto-beaming
functions reveal that they determine the denominator of the
time signature from the beatLength setting and the numerator
by dividing the measureLength by the beatLength.
I honestly don't understand why this solution was used
instead of reading both values from the |timeSignatureFraction.
|In general, there seems to be several unfortunate couplings
between the subdivision mechanism and the automatic
beaming, which prohibits certain combination of settings.

   /Mats
|
   /Mats
|




reply via email to

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