lilypond-devel
[Top][All Lists]
Advanced

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

Re: TimeSignature with note in denominator


From: Carl Sorensen
Subject: Re: TimeSignature with note in denominator
Date: Mon, 15 Nov 2021 18:46:58 +0000
User-agent: Microsoft-MacOutlook/10.10.1b.201012


´╗┐On 11/15/21, 10:21 AM, "lilypond-devel on behalf of Flaming Hakama by Elaine" 
<lilypond-devel-bounces+carl.d.sorensen+digest=gmail.com@gnu.org on behalf of 
elaine@flaminghakama.com> wrote:

    
    According to the semantics quoted several times, the denominator describes
    the length/duration of the unit, the numerator describes how many units are
    in the measure.

There is some space for confusion in the LilyPond world.  Moments represent a 
musical moment, an instant in time.  But a moment is also used to represent a 
time interval between the current moment and the zero moment (such as the 
beginning of  a measure).  So a moment also can be used to represent an 
interval, as is applied in the time signature.  I should have been more 
sensitive to this, because I created the BaseMoment property to be used in 
autobeaming; this property represents and interval starting at 0 and ending at 
the moment BaseMoment.
    
    In terms of semantics, numerals and note representation operate exactly the
    same.  There is  a 1-1 mapping between numbers interpreted as fractions of
    a whole note, and the graphical symbols used to represent those
    durations/lengths.
    
    What makes you say that tuplet notation is incorrect semantics by
    my classification?
    
    Do you think that "my classification" differs from the standard
    definition?
    
<snip>    
    
    
    * What is the best place to learn about the duration/moment topic?

There's a little bit about timing in the Notation Reference:  
https://lilypond.org/doc/v2.23/Documentation/notation/special-rhythmic-concerns#time-administration
 
This explains the use of the function ly:make-moment.

The internals reference provides some information (I don't know if it's the 
best place to learn or not).
The scheme function ly:make-moment shows how to create a moment (that can 
include both main and grace timing).
The scheme function ly:make-duration shows how to create a duration, and states 
that "a duration is a musical duration, i.e. a length of time described by a 
power of two (whole, half, quarter, etc.) and a number of augmentation dots.

With the lilypond definition of "duration", tuplets are clearly not durations.  
So it was wrong of me to indicate that LilyPond should consider the lower 
number on the time signature to be a duration.  In LilyPond terms, I believe 
that the lower number on the time signature should be (and is) a moment -- 
meaning the time interval between the zero moment and the moment indicated by 
the lower number.  So the time interval implied by a second number in the time 
signature is given by (ly:make-moment 1 second-number) if I understand 
correctly.

Now, music expressions also have a length, even if they don't have a lilypond 
duration.  And it is possible to get the length of a music expression and 
return it as a Moment using ly:music-length.  So if it were possible to  have 
the parser (or a music function) take two arguments for a time signature, with 
the first being an integer and the second being a music expression, it would be 
relatively straightforward to convert this into a reasonable time signature.

What follows is pseudocode -- I'm not looking up the details to make sure it 
works, just getting a sketch

(define-scheme-function newTimeSignatureFraction count mus)(integer? Music?)
  (let* (mom (ly:music-length mus))
            (mn  (moment-main-numerator mom))
            (md  (moment-main-denominator mom)))
     (cons (* mn count) md))

If IIUC, this function would do the following, given the input 
\newTimeSignatureFraction 5 {8.}

1. set mom to (3 16 0 0)
2. set mn to 3
3. set md to 16
4. return the fraction (15 . 16)

Which I think is the right measureLength for the indicated time signature.

Of course, to make this work according to the composer's intent, it's very 
likely that one would need to set the appropriate beat structure (3 3 3 3 3) in 
this case.
And we'd wand to set the BaseMoment to 3/16 (which is actually the value of 
mom).

I recognize that getting this to parse properly with \time may be a huge 
challenge, and may not be worth it.

Thanks,

Carl



    
    
    Elaine Alt
    415 . 341 .4954                                           "*Confusion is
    highly underrated*"
    elaine@flaminghakama.com
    Producer ~ Composer ~ Instrumentalist ~ Educator
    
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    


reply via email to

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