Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: chf am Montag, 7. September 2020, 18:47

Titel: Hairpin am Systemumbruch
Beitrag von: chf am Montag, 7. September 2020, 18:47

Liebe Freunde,

l[code
\version "2.20.0"
\relative c' {
\once \override Hairpin.after-line-breaking = #'()
\once \override Hairpin.to-barline = ##f
g g g\<  g
\break
a a\! a a
}  ]


ist es möglich, den zweiten Teil der Gabel (nach dem Zeilenumbruch) vertikal zu verschieben?

Gruß Christa
Titel: Antw:Hairpin am Systemumbruch
Beitrag von: Manuela am Montag, 7. September 2020, 19:30
In Anlehnung an diesen Thread (https://archiv.lilypondforum.de/index.php/topic,2313.msg13029.html) aus dem Archiv

\version "2.20.0"
\language "deutsch"

\paper {
  tagline = ##f
}

hairShift =
#(define-music-function (offsets)
   (list?)
   #{
     \once \override Hairpin.outside-staff-priority = #'()
     \once \override Hairpin.Y-offset = 0
     \once \override Hairpin.after-line-breaking =
     #(lambda (grob)
        (let* ((orig (ly:grob-original grob))
               (pieces (ly:spanner-broken-into orig)))
          (if (null? pieces)
              (ly:grob-set-property! grob 'extra-offset (car offsets))
              (map (lambda (piece offset)
                     (ly:grob-set-property! piece 'extra-offset offset))
                pieces offsets))))
   #})

\relative c' {
  g g
  \hairShift #'((0 . 0) (0 . 2))
  g\<  g
  \break
  a a\! a a
}

\relative c' {
  g g
  g\<  g
  \break
  a a\! a a
}


Als Parameter sollen so viele Paare übergeben werden, wie Zeilenumbrüche auftreten. Die Funktion muss unmittelbar vor Beginn des Hairpin aufgerufen werden, sonst wirkt sie nicht.

Titel: Antw:Hairpin am Systemumbruch
Beitrag von: chf am Dienstag, 8. September 2020, 11:01

Danke, Manuela!

Gibt es auch eine Variante für horizontales Verschieben?
Titel: Antw:Hairpin am Systemumbruch
Beitrag von: Manuela am Dienstag, 8. September 2020, 13:33
Zitat von: chf am Dienstag,  8. September 2020, 11:01
Gibt es auch eine Variante für horizontales Verschieben?

Der erste Wert jedes Paares der Form (x . y) gibt den horizontalen Versatz an. Einfach ausprobieren, am besten zuerst mit großen Zahlenwerten, damit du den Effekt siehst.
Titel: Antw:Hairpin am Systemumbruch
Beitrag von: chf am Dienstag, 8. September 2020, 19:14

Danke!!!