lilypond-devel
[Top][All Lists]
Advanced

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

Re: Compound time signature style


From: David Kastrup
Subject: Re: Compound time signature style
Date: Fri, 07 Nov 2014 14:39:28 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Dan Eble <address@hidden> writes:

> On Nov 7, 2014, at 01:46 , David Kastrup <address@hidden> wrote:
>> 
>> Dan Eble <address@hidden> writes:
>> 
>>> If both \compoundMeter #(2 3 8) and \compoundMeter 4/4 could be made
>>> to work, why bother keeping both \compoundMeter and \time?  Why not
>>> just let \time do all the work?
>> 
>> Because of
>> 
>> \time #'(2 3 2) #'(8 8)
>> 
>> Is it \time (2 + 3)/2 followed by #'(8 8) or is it \time 8/8 with a beat
>> structure of 2+3+2 ?
>
> Shame on me for not reading the code for \time; but if one were
> serious about creating a more uniform interface, one could write a
> conversion rule rather than sticking with the old syntax exactly,
> right?

Right.  I don't currently see an approach that would provide a
significant amount of increase in usability/convenience making it worth
the trouble.  If optional arguments and stuff would have been available
at the time \compoundMeter was designed, it is quite imaginable that its
syntax would have been folded into \time in some manner.

\compoundMeter was added in version 2.13.47 as
commit a2eb9d0a93abab905d4d88c33921ee1b8b8cb67c
Author: Reinhold Kainhofer <address@hidden>
Date:   Fri Jan 14 21:09:57 2011 +0100

    Implement compound time signatures
    
    \compoundMeter is a replacement for \time, allowing complex time
    signatures (like (1+3)/8 or 3/8+(2+5)/16, etc.).
    
    The argument to the music function is a list of lists, each
    describing one fraction in the signature.

and optional function arguments came quite later.

\time was redefined as a music function in version 2.15.17
commit 5ecf990d2bf528e34d73a9d9fcb2e12c31ca4470
Author: David Kastrup <address@hidden>
Date:   Sat Oct 29 23:13:31 2011 +0200

    parser.yy et al: make \time and \times musicfunctions.

but indeed the beat grouping argument was only added in version 2.15.19
commit a512132fed73a94068b91fb0bab473319e477b6e
Author: David Kastrup <address@hidden>
Date:   Wed Nov 9 11:37:39 2011 +0100

    Fold set-time-signature into \time

So I am responsible for that historic decision that was getting us rid
of $(set-time-signature ...).  I probably did not even have
\compoundMeter on my radar at the time.

But at the current point of time, I don't really see a convincing way of
unifying both that would provide users with enough net benefit to make
it worth the trouble.

Maybe an optional context mod?

\time \with { beatGrouping = #'(2 3 2)
              beamExceptions = \beamExceptions { 4[ 4 4] 4[ 4 4 4 4] }
            } 8/8

Or one scheme function that gets a rhythmic expression along the lines
of \beamExceptions but derives _all_ of the Timing context mod from it?

> (Hans just said he uses a separate command to set the beat structure
> anyway.)

That would likely still work as

\time \with { \hans-s-personal-command ... } 3/4

then since context mods can contain arbitrary music commands these days.

> It doesn’t matter right now, though.  I’ll keep \compoundMeter
> numeric.  Thanks for your help.

As long as we have separate commands, that makes the most sense to me.

-- 
David Kastrup



reply via email to

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