Given the following function, each time an override of NoteHead.color occurs, a new color from the list is used:
\version "2.19.30"
#(define test
(let ((colors (circular-list red green blue yellow darkgreen magenta)))
(lambda ()
(let ((color (car colors)))
(set! colors (cdr colors))
color))))
{
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
\once\override NoteHead.color = #(test)
c''4
}
However, when I put the override within a repeat structure, the override only seems to happen once:
%% All darkgreen (we left off with yellow above
{
\repeat unfold 10 {
\once \override NoteHead.color = #(test)
c''4
}
}