Bric <b...@flight.us> writes:

> On 11/05/2013 03:08 PM, David Kastrup wrote:
>> Paul Morris <p...@paulwmorris.com> writes:
>>
>>> But I think what you really want is a music function:
>>>
>>> \version "2.17.29"
>>>
>>> boo =
>>> #(define-music-function
>>>       (parser location the-music)
>>>       (ly:music?)
>>>     #{
>>>       \override NoteHead.color = #red
>>>       #the-music
>>>       \revert NoteHead.color
>>>     #})
>>>
>>> \relative c' { c4 d e f \boo { g a b } c d e }
>> For such fixed override/revert pairings you should write
>> \temporary\override in the music function instead of just \override:
>> otherwise any previous \override NoteHead.color = #blue will get
>> overwritten and not get restored afterwards.
>
> You rock!  This forum rocks!  Lilypond rocks!
>
> That said:  how do I parametrize \boo ?
>
> With the color as parameter, for example, for something like:
>
>  c4 d e f \boo #'red  { g a b } c d e f8 g \boo #'blue { b d a4 d }
> dis e fis
>
> I realize I'm completely clueless about the syntax

boo =
#(define-music-function
      (parser location color the-music)
      (color? ly:music?)
    #{
      \temporary \override NoteHead.color = #color
      #the-music
      \revert NoteHead.color
    #})

But colors are not symbols but triplets.  The default colors
red/blue/black... are stored in variables of that name.  So you'd have
to write

\boo #red { g a b } ...

rather than \boo #'red ...

-- 
David Kastrup


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to