Urs Liska <u...@openlilylib.org> writes:

> Am 30.11.2015 um 09:27 schrieb Urs Liska:
>
> Maybe, not for having someone else do the work for me but as an
> incentive to learn:
>
> I assume I could also rewrite the following code in a similar fashion?
>
> % Produce the code for coloring one grob in a (make-music) expression
> #(define (color-element grob color)
>    (make-music
>     'ContextSpeccedMusic
>     'context-type
>     'Bottom
>     'element
>     (make-music
>      'OverrideProperty
>      'once
>      #t
>      'pop-first
>      #t
>      'grob-value
>      color
>      'grob-property-path
>      (list (quote color))
>      'symbol
>      grob)))
>
> What would that be in the newer, LilyPond-ish syntax?

Oh, #{ ... #} is not new.  It's been there since basically forever at
least for straightforward music expressions (rather than layout
definitions, markups, and other stuff).  It became more versatile around
2.14 and started to work nicely with lexical closures at a similar point
of time.

The above would roughly be

#(define (color-element grob color)
  #{ \once \override #grob . color = #color #})

Note that the default context for overrides is Bottom anyway, so you
don't need to write \override Bottom . #grob . color here.

-- 
David Kastrup

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

Reply via email to