On 5/16/20, David Kastrup wrote:
> Like the warning LilyPond prints out indicates, the X11 #rrggbb
> convention is not supported for specifying colors. x11-color instead
> supports _named_ colors like "green".
Chris, you *could* simply change the definition or your function as follows:
color =
#(define-music-function (parser location color) (string?)
(define (hexa->decimal x)
(let ((num (string->number x 16)))
(if (= 0 num)
num
(exact->inexact
(/ 255 num)
(let* ((str (string-take
(if (string-prefix? "#" color)
(string-drop color 1)
color)
6))
(r (string-take str 2))
(g (string-drop (string-drop-right str 2) 2))
(b (string-take-right str 2))
(translated-color
(map hexa->decimal
(list r g b)))
(lily-color (primitive-eval
(cons rgb-color translated-color
#{
%\override Staff.StaffSymbol.color = #lily-color
\override Staff.LedgerLineSpanner.color = #lily-color
\override Staff.Clef.color = #lily-color
\override Staff.KeySignature.color = #lily-color
\override Staff.TimeSignature.color = #lily-color
%% Remove Staff. below to only affect individual voices:
\override Staff.NoteHead.color = #lily-color
\override Staff.Stem.color = #lily-color
\override Staff.Flag.color = #lily-color
\override Staff.Beam.color = #lily-color
\override Staff.Accidental.color = #lily-color
\override Staff.AccidentalCautionary.color = #lily-color
\override Staff.Rest.color = #lily-color
\override Staff.MultiMeasureRest.color = #lily-color
\override Staff.MultiMeasureRestText.color = #lily-color
\override Staff.MultiMeasureRestNumber.color = #lily-color
\override Staff.Dots.color = #lily-color
\override Staff.Slur.color = #lily-color
\override Staff.PhrasingSlur.color = #lily-color
\override Staff.Tie.color = #lily-color
\override Staff.Script.color = #lily-color
\override Staff.TextScript.color = #lily-color
\override Staff.TupletBracket.color = #lily-color
\override Staff.TupletNumber.color = #lily-color
\override Staff.DynamicText.color = #lily-color
\override Staff.DynamicTextSpanner.color = #lily-color
\override Staff.DynamicLineSpanner.color = #lily-color
\override Staff.Hairpin.color = #lily-color
#}))
Cheers,
-- V.