Hi David,
this is great!
Am 29.09.2013 09:51, schrieb David Kastrup:
David Kastrup <d...@gnu.org> writes:
colorizeDir =
#(define-music-function (parser location item)
(symbol-list-or-music?)
(define (grob-colorize-dir grob)
(let ((ev (event-cause grob)))
(and ev (ly:event-property ev 'direction #f)
red)))
#{ \tweak color #grob-colorize-dir #item #})
Not everything might be prepared to deal with a color #f, so it may be
safer to write the slightly more complex
(if (and ev (ly:event-property ev 'direction #f))
red '())
expression inside.
Could you please explain to me (or give a few hints) what this last
(and) expression does exactly?
I would like to extend this to treat up/down independently
I tried to modify it as follows:
colorizeDir =
#(define-music-function (parser location item)
(symbol-list-or-music?)
(define (grob-colorize-dir grob)
(let ((ev (event-cause grob)))
(if (and ev (ly:event-property ev 'direction #f))
(cond ((equal? 'direction 1) red)
((equal? 'direction -1) blue))
'())))
#{ \tweak color #grob-colorize-dir #item #})
and hoped if would work like this:
"if we are dealing with the right grob, and this grob has a 'direction then
execute the 'cond' expression and assign grob-colorize-dir 'red' or
'blue' depending on the 'direction being 1 or -1"
It compiles without complaints but doesn't color anything.
So I assume that either the if expression or both cond expressions
return false.
TIA
Urs
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user