On Sun, Nov 22, 2015 at 1:21 PM, David Kastrup <d...@gnu.org> wrote: > > > Is there any way to get the override to be reevaluated with each repeat? > > No. Written in that manner, the override is evaluated at _input_ time. > If you put it in a variable and use that variable 3 times, the colors > will be the same each time. What you want is > > #(define test > (let ((colors (circular-list red green blue yellow darkgreen magenta))) > (lambda (grob) > (let ((color (car colors))) > (set! colors (cdr colors)) > color)))) > > and > > \override NoteHead.color = #test > > That way you'll get one call per actual _grob_ since then each grob is > then initialized with the callback, and the callback is replaced by the > value when the property is first used. > > OK, I get it. I need to override NoteHead.color with a procedure, rather than the evaluation of the procedure. (And a grob callback must of course have a grob argument. Passing my original as a procedure results in an error.)
Thanks so much! David
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user