Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: chf am Dienstag, 10. Dezember 2019, 18:06

Titel: Bindebogen mit Pfeil
Beitrag von: chf am Dienstag, 10. Dezember 2019, 18:06

,
\version "2.19.64"
{
\acciaccatura {g32 (a g \once \override Stem.transparent = ##t a} g4.)
}


Liebe Freunde,

der Komponist verlangt an einem Ende des Bindebogens eine Pfeilspitze (s. Foto)
Wie ist das zu machen?
Wenn es eine Lösung gibt, hätte ich sie gerne für beide Richtungen.

Ich hoffe auf euch.

Gruß Christa
Titel: Antw:Bindebogen mit Pfeil
Beitrag von: harm6 am Dienstag, 10. Dezember 2019, 19:43
https://lists.gnu.org/archive/html/lilypond-user/2019-04/msg00278.html (https://lists.gnu.org/archive/html/lilypond-user/2019-04/msg00278.html)

Bei Unklarheiten, frag nach ;)

Gruß,
  Harm
Titel: Antw:Bindebogen mit Pfeil
Beitrag von: Manuela am Mittwoch, 11. Dezember 2019, 05:40
Nur interessehalber. Ich habe folgendes probiert:
\version "2.19.82"
\language "deutsch"

\relative c'
{
  \override Slur.details.arrow-left = #LEFT
  \override Slur.details.arrow-right = #RIGHT
  c4 ( d e f )
}


Aber der Bindebogen rührt kein Ohrwaschel, kein Pfeil weit und breit.
Titel: Antw:Bindebogen mit Pfeil
Beitrag von: chf am Mittwoch, 11. Dezember 2019, 10:14
@harm:

Wie meinst du das?
Ich habe erfragt, was der Komponist meint...

@Manuela

Es geht ja eben um die "Konstruktion" des Pfeils...
Titel: Antw:Bindebogen mit Pfeil
Beitrag von: chf am Mittwoch, 11. Dezember 2019, 10:23

\version "2.18.0"

slurArrow =
\once \override Slur.stencil =
  #(lambda (grob)
    (let* ((slur-dir (ly:grob-property grob 'direction))
           (right-bound (ly:spanner-bound grob RIGHT))
           (right-bound-stem (ly:grob-object right-bound 'stem))
           (right-bound-stem-dir
             (if (ly:grob? right-bound-stem)
                 (ly:grob-property right-bound-stem 'direction)
                 #f))
           (c-ps (ly:grob-property grob 'control-points))
           (frst (car c-ps))
           (thrd (caddr c-ps))
           ;;; corr-values are my choice
           (corr (cond ((not right-bound-stem-dir)
                        '(0 . 0))
                       ((= slur-dir (* -1 right-bound-stem-dir))
                        (cons -0.4  (* 0.2 slur-dir)))
                       (else '(-0.4 . 0.2))))
           (frth (offset-add (cadddr c-ps) corr)))

      (ly:grob-set-property! grob 'control-points
        (append (list-head c-ps 3) (list frth)))

    (let* ((orig (ly:grob-original grob))
           (siblings (ly:spanner-broken-into orig)))
       (if (or (null? siblings)
               (equal? grob (car (last-pair siblings))))
           (let* ((default-stil (ly:slur::print grob))
                  (default-stil-lngth
                    (interval-length (ly:stencil-extent default-stil X)))
                  (delta-x-cps (- (car frth) (car frst)))
                  (diff (- default-stil-lngth delta-x-cps))
                  (delta-iv
                    (cons (- (car frth) (car thrd)) (- (cdr frth) (cdr thrd))))
                  (radians->degree (lambda (radians) (/ (* radians 180) PI)))
                  (ang (radians->degree (atan (cdr delta-iv) (car delta-iv))))
                  (arrowhead (ly:font-get-glyph (ly:grob-default-font grob)
                                            "arrowheads.open.01"))
                  (rotated-arrowhead (ly:stencil-rotate arrowhead ang 0 0))
                  (arrowhead-lngth
                    (interval-length (ly:stencil-extent rotated-arrowhead X))))
                   
             (ly:stencil-add
               default-stil
               (ly:stencil-translate
                 rotated-arrowhead
                 ;; Ugh, 3.8 found by trial and error
                 (cons (+ diff (/ arrowhead-lngth 3.8) (car frth))
                       (+ (cdr frth) 0)))))
                       
            (ly:slur::print grob)))))


\relative c'' {
\slurArrow
c'4( c \bar "" \break c c)
\slurArrow
\slurDown
c4( c c c)
\slurArrow
\stemUp
\slurUp
c4( c c c)
%% maybe add:
% \shape #'((0 . 0)(0 . 0)(0 . -0.5)(0 . -0.5)) Slur
\slurArrow
\slurDown
c4( c c c)
}


Ganz weit in meinem Hinterkopf war eine Erinnerung...
Das gab es schon mal.
Für alle, die's interessiert...

Gut, dass es das Archiv noch gibt!!!

Allerdings finde ich die "Stellschrauben" für die andere Ausrichtung (s. Foto) nicht.
Titel: Antw:Bindebogen mit Pfeil
Beitrag von: harm6 am Mittwoch, 11. Dezember 2019, 10:35
Zitat
Ganz weit in meinem Hinterkopf war eine Erinnerung...
Das gab es schon mal.
Für alle, die's interessiert...

Gut, dass es das Archiv noch gibt!!!

Dann poste auch den link:
https://archiv.lilypondforum.de/index.php/topic,1744.msg9669.html#msg9669 (https://archiv.lilypondforum.de/index.php/topic,1744.msg9669.html#msg9669)

Allerdings entspricht der dortige code meinem file arrow-slur-02.ly

Der link aus meinem ersten post in diesem thread führt zu arrow-slur-05.ly
Drei Generationen fortschrittlicher.

Mein Satz
ZitatBei Unklarheiten, frag nach
bezog sich auf die Anwendung von arrow-slur-05.ly , nicht auf die Bedeutung eines Slurs mit Pfeilspitze.

Nötig ist natürlich arrow-slur-05.ly zu inkludieren, zumindest alles vor

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXAMPLES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Im layout kann man generell die Möglichkeit zuschalten Pfeilspitzen lenks/rechts zu setzen oder auch Fallweise in der Musik:
mittels details.arrow-left oder details.arrow-right
Z.B. \override Slur.details.arrow-left = ##t
Der konkrete Aufruf der Funktionalität erfolgt mittes
\pointing-curve Slur (oder Tie PhrasingSlur RepeatTie LaissezVibrerTie)


-Harm
Titel: Antw:Bindebogen mit Pfeil
Beitrag von: chf am Mittwoch, 11. Dezember 2019, 19:02
Hallo Harm,

ZitatBei Unklarheiten, frag nach

das hat mich von dem Link abgelenkt - entschuldige bitte!
Lesen ist eben auch nicht immer leicht...

Herzlichen Dank!


Und allen Freunden eine gute Weihnachts- und Jahresend-Zeit!
Christa