lilypond-user
[Top][All Lists]
Advanced

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

Re: complex time signatures: scheme help


From: Carl Sorensen
Subject: Re: complex time signatures: scheme help
Date: Fri, 14 Aug 2009 16:30:07 -0600



On 8/14/09 4:12 PM, "James E. Bailey" <address@hidden> wrote:

> 
> On 14.08.2009, at 23:59, Mark Polesky wrote:
>> 
>> Umm, that's probably not the best way of asking for help... We
>> usually prefer "can someone point me in the right direction" or
>> something like that...
> 
> Usually I do, except here, a point in the right direction wouldn't be
> sufficient for me. I kinda need templates with easy to figure out changes when
> it comes to Scheme hacks.
> 
>> Anyway, look at the scheme code. The compound-time procedure takes
>> three arguments, one two and num. In the doc example, the stencil
>> override is:
>> #(compound-time "2" "3" "8")
>> That means one is "2", two is "3", and num is "8".
>> 
>> You see where it says (#:column (one num)) in the scheme
>> procedure? That means that those two arguments (one and num) are
>> put in a column:
>> 2
>> 8
>> 
>> You see where it says #:vcenter "+"? That means that the "+" is
>> put in the vertical center. You can see what happens when you
>> remove the #:vcenter command.
>> 
>> So, you have to make a couple of changes.
>> 
>> 1) you need another argument in your scheme procedure (3+2+2 as
>>    compared to 2+3).
>>    * you might call this additional argument "three"
>>    * logically, you should probably put it between "two" and "num"
> Got it, #(define ((compound-time one two three num) grob)
>> 
>> 2) so now you need to make sure you pass four values to the
>>    procedure within your music expression, instead of the 3 values
>>    there now.
>>    (you need to change this)... #(compound-time "2" "3" "8")
> Got it,   \override Staff.TimeSignature #'stencil = #(compound-time "3" "3"
> "2" "8")
>> 
>> 3) decide if you want
>>    (#:column (one num))
>>    ...or just...
>>    one
>>    etc.
> This bit I don't understand. (#:column (one num)) would be the equivalent of
> \markup \center-column { one num }, right? How would I do \markup
> \center-column {\line {one + two + three} num }?

See Notation Reference 6.4.1 Markup construction in Scheme

(markup #:center-column ((#:line (one two three)) num))

> 
>> 
>> 4) decide if you want to keep the #:vcenter command
> Probably not. I'm guessing.
>> 
>> 5) somehow incorporate your new argument (three) in with the rest
>>    of the arguments.
> This bit confuses me. Isn't it incorporated by adding "three" everywhere?

Yep, you seem to have it right.

Carl





reply via email to

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