lilypond-devel
[Top][All Lists]
Advanced

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

Re: Issue 3917: Add \alternatingTimeSignatures (issue 97110045)


From: lilyliska
Subject: Re: Issue 3917: Add \alternatingTimeSignatures (issue 97110045)
Date: Mon, 12 May 2014 07:31:37 +0000

This notation _may_ make a score harder to read than typing all meter
changes explicitly.
But the intention of this patch is not to provide a better notation but
to better support an existing notation.


https://codereview.appspot.com/97110045/diff/80001/ly/music-functions-init.ly
File ly/music-functions-init.ly (right):

https://codereview.appspot.com/97110045/diff/80001/ly/music-functions-init.ly#newcode130
ly/music-functions-init.ly:130: alternatingTimeSignatures =
On 2014/05/10 23:50:11, Keith wrote:
The function does not do what its name implies, alternate time
signatures, so
you need a long explanation.

LilyPond has a more understandable way to change the *printed*
time-signature,
with \override..stencil.  I suggest you make a function to handle just
the part
that users might find difficult to do themselves:
fractionList = #(define-scheme-function
   (parser location timesigs) (list?)
   (lambda (grob)
      (grob-interpret-markup grob
  ...

\new Staff  \relative c' {
   \time 6/8
   \once\override Score.TimeSignature.stencil =
     \fractionList #'((6 8)(5 8)(1))
   c8 c c c c c
   \override Score.TimeSignature.stencil = ##f
   \time 5/8
   c8 c c c c
   \revert Score.TimeSignature.stencil
   \time 3/4
  ...

After some consideration I agree that it is better to make the function
a little bit more basic. This leaves the user somewhat more to type, but
also leaves some flexibility to him:

- user can decide which context to override in (e.g. if Timing has been
moved)
- user can decide to make the first actual \time different from the
displayed (although I can't think that's an actual use case)

https://codereview.appspot.com/97110045/diff/80001/ly/music-functions-init.ly#newcode144
ly/music-functions-init.ly:144: #{ \once\override
Staff.TimeSignature.stencil =
On 2014/05/10 23:50:12, Keith wrote:
On 2014/05/10 22:38:29, uliska wrote:
> I have the impression that Staff. works just as well?

Well, if there are many staves, your function changes the initial time
signature
for the whole score, but prints the special indication only on one
Staff, unless
the user includes the function in each staff.  (There is a context
called Timing
for the general case; Timing is usually the same as Score, unless the
user has
different meter in each Staff.)

That's true and a case I missed to check. So overriding in the Score
context is the correct way.
Of course this is obsolete with the principal change to the function I'm
going to do.

https://codereview.appspot.com/97110045/



reply via email to

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