Hallo walt,
das ist jetzt etwas komplizierter.
Ich habe:
- die ganze Note aus Takt 2 um ein 128-tel gekürzt und eine 128-tel Note am Ende dieses Taktes eingefügt.
- diese eingefügte Note dann per \hideNotes unsichtbar gemacht.
- die Silbe "na" des Textes mittels \override Lyrics . LyricText #'transparent = ##t ebenfalls unsichtbar gemacht.
- einen Pharsierungsbogen im zweiten Takt gesetzt
- diesen Phrasierungsbogen dann verlängert.
Zur Verlängerung des Phrasierungsbogens:
Das geschieht laut Handbuch mittels
[\once]\override PhrasingSlur #'control-points = #'((x1 . y1) (x2 . y2) (x3 . y3) (x4 . y4)) Wobei die x- bzw y-Werte durch ausprobieren zu ermitteln sind.
Mittlerweile gibt es aber eine angenehmere Methode:
\shapePhrasingSlurMan muß zwar immer noch alle x- und y-Werte setzen, allerdings werden diese Werte zu den von lilypond errechneten addiert. Das macht die Sache wesentlich einfacher und das ganze funktioniert auch beim Zeilenumbruch.
Wenn Du willst kannst Du den links folgen um mehr zu erfahren. Bzw
hier hin schauen. Oder
hier.
Das ganze klappt dann (leicht verändert) auch mit Slur und Tie. Die entsprechenden Definitionen habe ich mit dazu gepackt, auch wenn sie im vorliegenden Fall nicht gebraucht werden.
Und hier alles zusammen:
\version "2.14.2"
% http://old.nabble.com/file/p32185810/shapeSlur_rev1.ly
#(define ((alter-slur-curve offsets) grob)
(let ((coords (ly:slur::calc-control-points grob)))
(define (add-offsets coords offsets)
(if (null? coords)
'()
(cons
(cons (+ (caar coords) (car offsets))
(+ (cdar coords) (cadr offsets)))
(add-offsets (cdr coords) (cddr offsets)))))
(if (null? offsets)
coords
(add-offsets coords offsets))))
#(define ((shape-slur offsets) grob)
(let* ((orig (ly:grob-original grob))
(siblings (if (ly:grob? orig)
(ly:spanner-broken-into orig) '() ))
(total-found (length siblings)))
(if (>= total-found 2)
(let loop ((n 0))
(if (eq? (list-ref siblings n) grob)
((alter-slur-curve (list-ref offsets n)) grob)
(if (< n total-found)
(loop (1+ n))
((alter-slur-curve '()) grob))))
((alter-slur-curve offsets) grob))))
% Changed definition to shape ties
#(define ((alter-tie-curve offsets) grob)
(let ((coords (ly:tie::calc-control-points grob)))
(define (add-offsets coords offsets)
(if (null? coords)
'()
(cons
(cons (+ (caar coords) (car offsets))
(+ (cdar coords) (cadr offsets)))
(add-offsets (cdr coords) (cddr offsets)))))
(if (null? offsets)
coords
(add-offsets coords offsets))))
#(define ((shape-tie offsets) grob)
(let* ((orig (ly:grob-original grob))
(siblings (if (ly:grob? orig)
(ly:spanner-broken-into orig) '() ))
(total-found (length siblings)))
(if (>= total-found 2)
(let loop ((n 0))
(if (eq? (list-ref siblings n) grob)
((alter-tie-curve (list-ref offsets n)) grob)
(if (< n total-found)
(loop (1+ n))
((alter-tie-curve '()) grob))))
((alter-tie-curve offsets) grob))))
shapePhrasingSlur =
#(define-music-function (parser location offsets)(list?)
#{
\once \override PhrasingSlur #'control-points = #(shape-slur $offsets)
#})
shapeSlur =
#(define-music-function (parser location offsets)(list?)
#{
\once \override Slur #'control-points = #(shape-slur $offsets)
#})
shapeTie =
#(define-music-function (parser location offsets)(list?)
#{
\once \override Tie #'control-points = #(shape-tie $offsets)
#})
\header {
tagline = ##f
}
\paper {
indent = 0\mm
ragged-right = ##f
}
\relative c'
{ c1 ~ c ~ c2 d }
\addlyrics { Do -- na }
\relative c' {
c1 ~
\shapePhrasingSlur #'(0.1 0.5 0 1 0 1 4 0.5)
c1*127/128 \( \hideNotes c128 \)
}
\addlyrics { Do -- \override Lyrics . LyricText #'transparent = ##t na }HTH,
Harm