lilypond-devel
[Top][All Lists]
Advanced

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

Re: parser variables persist beyond { } scope


From: Ian Hulin
Subject: Re: parser variables persist beyond { } scope
Date: Thu, 06 Aug 2009 16:14:25 +0100
User-agent: Thunderbird 2.0.0.22 (X11/20090608)

Han-Wen Nienhuys wrote:
On Thu, Aug 6, 2009 at 11:19 AM, Mark Polesky<address@hidden> wrote:
  
Han-Wen Nienhuys wrote:

    
I think in general the manual should not encourage users to define or
set variables using Scheme, exactly because the scoping semantics are
confusing.
      
I just had an idea. Why not make afterGraceFraction a context property
for Score? Wouldn't that solve all of these problems?

I'm actually not sure -- let me know.
    

No, afterGrace does not work like that.  It's music function, so it
runs before contexts are created.


  
Bummer. 
Sorry if I'm being dim here, Han-Wen, but I thought after afterGraceFraction was a way of over-riding the default spacing for grace notes if you want the the grace notes to appear at some point other than the spacing of 3/4 of the value of the note to which the \aftergrace _expression_ is attached.  So it's basically a parameter setting for afterGrace.

At the moment it looks like we're setting the equivalent of a global static variable to do this - bad news for such a specific function.

Is there a way of do this sort of thing sometime in the future? 

\afterGrace {d1 {c16[ d] }} % works as now - except extra braces
\afterGrace {d1 {c16[ d] } 15 16} % extra two optional parameter does the biz currently done by

    #(define afterGraceFraction (cons 15 16))
    c1 \afterGrace d1 { c16[ d] } c1
We get the parser to throw a fit if there are any other than two optional parameters or none, or if they are both there and they aren't both numeric.


Does the same restriction re contexts apply to output-suffix?  Could we make that a property setting for a \book block?

Cheers,
Ian





reply via email to

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