Hi Simon,

On Thu, Sep 17, 2015 at 7:20 AM, David Kastrup <d...@gnu.org> wrote:

> Simon Albrecht <simon.albre...@mail.de> writes:
>
> > Hello,
> >
> > I’ve written a music function which applies some tweaks on dynamics to
> > offset them. Unfortunately, it’s not possible to use the offset music
> > function on X-offset, because it is a mutable property.
>
> You can use \offset on DynamicText.X-offset.

{
  c''\> g' -\offset DynamicText.X-offset 3 \f
}

Any property that accepts a number, number-pair, or number-pair-list and
has a default value listed in the grob's page in the Internals Reference is
offset-able.  (This documentation is taken directly from define-grobs.scm.)

Unofrtunately, DynamicLineSpanner has no default value; thus, there's
nothing for offset to work with.

>
> > Thus I have to add a displacement for DynamicText so that it is not
> > aligned to its baseline, but to the ‘center’ like normally.  Now, it
> > would help if the music function could find out by itself whether to
> > apply this displacement, depending on which grob it is applied to. As
> > an example (attached also): %%%%%%%%%% \version "2.19.27"
> >
> > test =
> > #(define-music-function (ev) (ly:music?)
> >    (tweak 'color red ev))
> >
> > {
> >   c''-\test \> g'-\test \f
> > }
> > %%%%%%%%%%
> > How can I modify the function so that only the DynamicText is colored,
> > the Hairpin isn’t?


If you do need the name, try:

test =
#(define-music-function (ev) (ly:music?)
   (if (eq? (ly:music-property ev 'name) 'AbsoluteDynamicEvent)
       (tweak 'color red ev)
       ev))

{
  c''-\test \> g'-\test \f
}


Hope this is helpful--
David
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to