lilypond-user
[Top][All Lists]
Advanced

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

Re: problems trying to write a conditional \transpose


From: Mark Polesky
Subject: Re: problems trying to write a conditional \transpose
Date: Mon, 19 Aug 2013 21:46:11 -0700 (PDT)

David Kastrup wrote:
>> I'm trying to write a conditional version of the \transpose
>> function, that would work something like this...
>>
>> input = {
>>   c c
>>   \conditionalTransposition c c' { c c }
>> }
>>
>> \input
>> => { c c c c }
>>
>> \processConditionalTransposition \input
>> => { c c c' c' }
>
> conditionalTransposition =
> #(define-music-function (parser location from to music)
>   (ly:pitch? ly:pitch? ly:music?)
>   (set! music #{ \transpose c' c' #music #})
>   (set! (ly:music-property 'from-to music) (cons from to))
>   music)
>
> processConditionalTransposition =
> #(define-music-function (parser location music) (ly:music?)
>   (map-some-music
>     (lambda (m)
>       (and (music-is-of-type? m 'transposed-music)
>            (pair? (ly:music-property m 'from-to music))
>            #{ \transpose #(car (ly:music-property m 'from-to-music))
>                          #(cdr (ly:music-property m 'from-to-music))
>                          #(ly:music-property m 'element)
>            #}))
>      music))


David, 

sorry for the delayed response.  Your solution is excellent!
I'm learning so much from you.

Thanks again.
- Mark



reply via email to

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