[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
figured bass: how to use scheme-function in event-chord?
From: |
Thomas Morley |
Subject: |
figured bass: how to use scheme-function in event-chord? |
Date: |
Fri, 20 Jun 2014 11:08:28 +0200 |
Hi,
for the first time since I use LilyPond I have to deal with figured
bass notation and noticed some problems. Here the first:
The following works as expected:
\figures { <6 4>2 }
\figures { <"a" "b">2 }
\figures { <\markup \with-color #red "a" \markup \with-color #green "b"> }
even this works:
one = \markup \with-color #red "a"
two = \markup \with-color #green "b"
\figures { <\one \two>2 }
Though using a scheme-function to create mrkups returns an error:
foo = #(define-scheme-function (parser location strg)(markup?) strg)
\figures { <\foo "a" \foo "b">2 }
-> syntax error, unexpected SCM_FUNCTION
\figures { <
\foo "a" \foo "b">2 }
Well, I can make it work with:
#(define (make-bass-figure-event fig dur)
(make-music
'BassFigureEvent
'duration dur
(if (markup? fig)
'text
'figure)
fig))
#(define (make-bass-figure-ev-chrd lst dur)
(make-event-chord
(map
(lambda (e) (make-bass-figure-event e dur))
lst)))
buzz =
#(define-music-function (parser location lst duration)(list? ly:duration?)
(make-bass-figure-ev-chrd lst duration))
\figures { \buzz #'("a" "b") 1 }
\figures { \buzz #`(,one ,two) 1 }
\figures { \buzz #`(,#{ \foo "a" #} ,#{ \foo "b" #}) 1 }
Probably the syntax could be simplified, though I assume it will stay
not very nice.
Is there a better way to use a scheme-function here?
or
Can \figures { <\foo "a" \foo "b">2 } be made work?
Cheers,
Harm
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- figured bass: how to use scheme-function in event-chord?,
Thomas Morley <=