Hairpin am Systemumbruch

Begonnen von chf, Montag, 7. September 2020, 18:47

« vorheriges - nächstes »

chf


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

Manuela

#1
In Anlehnung an diesen Thread 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.

Danke für eure Hilfe
viele Grüße
-- Manuela

chf


Danke, Manuela!

Gibt es auch eine Variante für horizontales Verschieben?

Manuela

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.
Danke für eure Hilfe
viele Grüße
-- Manuela

chf