Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Sonntag, 13. Januar 2013, 13:46

Titel: hairpinMolto (new Dynamics) in 2.14.2
Beitrag von: chf am Sonntag, 13. Januar 2013, 13:46
Liebe Freunde,

wenn ich
hairpinWithCenteredText =
#(define-music-function (parser location text) (markup?)
#{
  \override Voice.Hairpin #'stencil = #(lambda (grob)
    (ly:stencil-aligned-to
     (ly:stencil-combine-at-edge
      (ly:stencil-aligned-to (ly:hairpin::print grob) X CENTER)
      Y DOWN
      (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER))
     X LEFT))
#})

hairpinMolto = \hairpinWithCenteredText \markup { \italic molto }

in 2.14.2 anwenden will, kommt folgende Fehlermeldung:
ERROR: Unbound variable: text

In 2.16.1. funktioniert alles wunderbar.
Gibt es eine Anpassung?
(Ich habe eine größere Datei, die beim konvertieren auf 2.16.1 ziemlich durcheinanderkommt...)

Gruß
chf
Titel: Re: hairpinMolto (new Dynamics) in 2.14.2
Beitrag von: Be-3 am Sonntag, 13. Januar 2013, 14:08
Hallo Christa,

Du mußt einfach nur in der Definition von hairpinWithCenteredText ein $-Zeichen vor die Variable "text" schreiben. Dahingehend hat sich die Syntax mittlerweile geändert.

So muß es für Version 2.14.2 sein (Änderung fett und rot):

hairpinWithCenteredText =
#(define-music-function (parser location text) (markup?)
#{
  \override Voice.Hairpin #'stencil = #(lambda (grob)
    (ly:stencil-aligned-to
     (ly:stencil-combine-at-edge
      (ly:stencil-aligned-to (ly:hairpin::print grob) X CENTER)
      Y DOWN
      (ly:stencil-aligned-to (grob-interpret-markup grob $text) X CENTER))
     X LEFT))
#})


Viele Grüße
Torsten
Titel: Re: hairpinMolto (new Dynamics) in 2.14.2
Beitrag von: chf am Sonntag, 13. Januar 2013, 15:00
Danke, Torsten - sowas hatten wir schon mal in umgekehrter Form, es war mir entfallen.
chf