Autor Thema: Bindebogen mit Pfeil  (Gelesen 4075 mal)

iugin

  • Gast
Bindebogen mit Pfeil
« am: Montag, 28. April 2014, 13:45 »
Hallo miteinander

ich möchte, wie im Attachement, den Bindebogen so zeichnen, dass es am Schluss wie ein Pfeil aussieht.
Am besten mit einem Befehl wie z.B. \slurArrow (änlich wie \slurDotted) oder so.
Ich habe lange in Internet gesucht, und nichts gefunden. Ist es möglich? (sicher, in Lilypond ist alles möglich). Kann mir jemand helfen?

Liebe Grüsse und einen schönen Tag... und schon jetzt Danke :)

Eugenio

harm6

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #1 am: Dienstag, 29. April 2014, 03:16 »
Hi Eugenio,

schau mal, ob Du damit klar kommst. Bin zu müde für weitere Erklärungen.

\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)
}

HTH,
  Harm

P.S.
Und ja, LilyPond kann alles. :D
Auch wenn ich nicht sicher bin, ob mein Code wirklich immer funktionieren wird ...

iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #2 am: Dienstag, 29. April 2014, 09:28 »
Lieber Harm

das ist fantastisch!!! Das ist genau, was ich brauche!
Bis jetzt funktioniert prima. Und weitere Erklärungen sind nicht nötig, für mich ist Scheme soweiso ein Rätsel :)
Und ich habe wirklich ein schlechtes Gewissen, dass Du um 2 Uhr in der Nacht für mich so ein kompliziertes Ding machst.

Danke vielmals und einen schönen Tag

Ganz einen lieben Gruss

Eugenio

trulli

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #3 am: Dienstag, 29. April 2014, 22:03 »
Ich bin ja dafür, dass man hier Pokale verschenken darf...

Davon hätte harm schon einen Sack voll verdient....

iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #4 am: Dienstag, 29. April 2014, 22:04 »
Lieber Harm

es funktioniert prima! Wirklich super, danke vielmals :)
Jetzt noch eine Frage: kann man so machen, dass die Slurs (in meinem Fall sind es jetzt PhrasingSlurs, ich musste es ändern), oben und immer ausserhalb vom System stehen? (im Attachement ein Beispiel ohne Pfeil, aber gemeint ist mit Pfeil natürlich)
Nur eine Bitte: wenn es etwas ist, dass man in 5 Minuten machen lässt, wäre ich froh wenn Du es machen könntest, sonst lass es, es ist nicht wirklich nötig.

Liebe Grüsse und gute Nacht

Eugenio

iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #5 am: Dienstag, 29. April 2014, 22:07 »
@Trulli: ja, ich finde auch... wie gesagt, ich habe fast ein schlechtes Gewissen, und möchte mich bei ihm irgendwie revanchieren (ist es Deutsch???) können, ist leider nicht möglich.
Wenn ich wenigstens Scheme lernen könnte........ ich werde irgendwann eine Scheme-Hilfe-Sektion öffnen...

Pierre

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #6 am: Mittwoch, 30. April 2014, 00:12 »
Hallo Eugenio,

[...] Jetzt noch eine Frage: kann man so machen, dass die Slurs (in meinem Fall sind es jetzt PhrasingSlurs, ich musste es ändern), oben und immer ausserhalb vom System stehen? (im Attachement ein Beispiel ohne Pfeil, aber gemeint ist mit Pfeil natürlich) [...]

Ja selbstverständlich :

\version "2.18.2"
\relative c' {
  \override Slur.positions = #'(1 . 1)
  c^( d e f e d c)
}

HTH,
~Pierre
« Letzte Änderung: Mittwoch, 30. April 2014, 00:15 von Pierre »

fugenkomponist

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #7 am: Mittwoch, 30. April 2014, 00:18 »
Off-topic:
revanchieren (ist es Deutsch???)
Ja, ist es. Und auch in diesem Zusammenhang korrekt verwendet ;)

iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #8 am: Mittwoch, 30. April 2014, 07:28 »
Hallo miteinander

danke Pierre. Leider macht
\override Slur.positions = #'(1 . 1)nicht genau, was ich möchte. Ich möchte dass jeder Bindebogen immer oberhalb (\slurUp) und ausserhalb vom System ist (also, keine Berührung), unabhängig von der Notenposition.
Sagen wir so: im zweiten Fall (s. Attachement), sollte der Bindebogen wie im ersten aussehen.
\version "2.18.0"
\relative c'' {
  \slurUp
  \override Slur.positions = #'(4 . 4)
  a( b c b a)
}
 
  \relative c' {
  \slurUp
  \override Slur.positions = #'(10 . 10)
  a( b c b a)
}
 
(Gemeint sind immer noch die Pfeile von Harm, das Verhalten ist aber gleich)
Ist aber wie gesagt, nicht soooo wichtig, es wäre der Output nur lesbarer gewesen.

Auch Off-topic:
Zitat
Ja, ist es. Und auch in diesem Zusammenhang korrekt verwendet ;)
In diesem Forum kriegt man nicht nur super Lilypond-Tipps, sondern auch Sprachunterricht! Das ist super! :D

Ciao a tutti!

Eugenio

Pierre

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #9 am: Mittwoch, 30. April 2014, 18:49 »
[...] Leider macht <code> nicht genau, was ich möchte. [...]
Entschuldigen! Ich habe zu schnell gelesen...

iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #10 am: Mittwoch, 30. April 2014, 21:43 »
Ueberhaupt kein Problem... :)
Im Gegenteil, danke, dass du mir helfen wolltest.

Liebe Gruesse

Eugenio

harm6

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #11 am: Donnerstag, 1. Mai 2014, 01:01 »
Hallo Eugenio,

hier mein Vorschlag.
Da das Ganze jetzt etwas länger ist habe ich den Code auch in den Anhang gepackt, sowie ein Bild dazu getan.
Ich schreib' morgen noch was dazu. (Bin mal wieder zu müde ;) )

\version "2.18.0"

% #(use-modules (ice-9 pretty-print))
% #(use-modules (srfi srfi-1))

#(define grob-name
  (lambda (x)
    (if (ly:grob? x)
        (assq-ref (ly:grob-property x 'meta) 'name)
        (ly:error "~a is not a grob" x))))

#(define (add-arrow-head-to-curve control-points)
  (lambda (grob)
    (let* ((orig (if (ly:spanner? grob)
                     (ly:grob-original grob)
                     #f))
           (siblings (if (ly:grob? orig)
                         (ly:spanner-broken-into orig)
                         '()))
           (function (assoc-get 'stencil
                     (reverse (ly:grob-basic-properties grob))))
           (stil ;; Ugh, is there no better way to test that a grob has no
                   ;; 'stencil and that no other previous procedure assigned
                   ;; a stencil-value to said grob?
                   (if (and (procedure? function)
                            (not (eq? (procedure-name function)
                                      'add-arrow-head-to-curve)))
                       (function grob)
                       (begin
                         (ly:warning "~a has no stencil. Ignoring." grob)
                         #f))))
       (if (or (null? siblings)
               (equal? grob (car (last-pair siblings))))
           (let* ((default-stil-lngth
                    (interval-length (ly:stencil-extent stil X)))
                  (frst (car control-points))
                  (thrd (caddr control-points))
                  (frth (cadddr control-points))
                  (delta-x-cps (- (car frth) (car frst)))
                  ;; Get the difference between stil-length and the distance
                  ;; of first-to-last control-point
                  (diff (- default-stil-lngth delta-x-cps))
                  ;; Get the legs of the triangle at third/fourth control-
                  ;; point.
                  (delta-iv
                    (cons (- (car frth) (car thrd)) (- (cdr frth) (cdr thrd))))
                  (radians->degree (lambda (radians) (/ (* radians 180) PI)))
                  (angl (radians->degree (atan (cdr delta-iv) (car delta-iv))))
                  ;; Ties seems to need a lower angle
                  (ang (if (member (grob-name grob)
                                  '(Tie RepeatTie LaissezVibrerTie))
                           (* angl 0.75)
                           angl))
                  (arrowhead-stil (ly:font-get-glyph (ly:grob-default-font grob)
                                            "arrowheads.open.01"))
                  ;; The arrowhead is too small for Tie
                  (arrowhead (if (eq? 'Tie (grob-name grob))
                                 (ly:stencil-scale arrowhead-stil 1.7 1.7)
                                 arrowhead-stil))
                  (rotated-arrowhead (ly:stencil-rotate arrowhead ang 0 0))
                  (arrowhead-lngth
                    (interval-length (ly:stencil-extent rotated-arrowhead X))))
                   
             (ly:stencil-add
               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)))))     
            stil))))
           
#(define arrowed-curve
  (lambda (grob)
    (let* ((curve-dir (ly:grob-property grob 'direction))
           (right-bound (if (ly:spanner? grob)
                            (ly:spanner-bound grob RIGHT)
                            #f))
           (right-bound-stem (if (ly:grob? right-bound)
                                 (ly:grob-object right-bound 'stem)
                                 #f))
           (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))
           ;(function (assoc-get 'control-points
           ;                     (reverse (ly:grob-basic-properties grob))))
           ;(c-pss (function grob))
           (frst (car c-ps))
           (thrd (caddr c-ps))
           ;; corr-values are my choice.
           ;; A little space is needed to make room for the arrowhead
           (corr (cond ((eq? (grob-name grob) 'RepeatTie)
                        (cons -0.25 (* 0.3 curve-dir)))
                       ((not right-bound-stem-dir)
                        '(0 . 0))
                       ((eq? (grob-name grob) 'Tie)
                        (cons -0.4  (* 0.3 curve-dir)))
                       (else (cons -0.4  (* 0.3 curve-dir)))))
           (frth (offset-add (cadddr c-ps) corr))
           (changed-cps (append (list-head c-ps 3) (list frth))))
           
     (ly:grob-set-property! grob 'control-points changed-cps)
     ((add-arrow-head-to-curve changed-cps) grob))))
           
#(define outside-staff-curve
;; prints the curve outside the staff
  (lambda (grob)
    (let* ((function (assoc-get 'control-points
                                (reverse (ly:grob-basic-properties grob))))
           (c-ps (function grob))
           (frst (car c-ps))
           (scnd (cadr c-ps))
           (thrd (caddr c-ps))
           (frth (cadddr c-ps))
           (curve-dir (ly:grob-property grob 'direction))
           (curve-up? (= 1 curve-dir))
           (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))
           (right-bound-beam
             (if (ly:grob? right-bound-stem)
                 (ly:grob-object right-bound-stem 'beam)
                 #f))
           (left-bound (ly:spanner-bound grob LEFT))
           (left-bound-stem (ly:grob-object left-bound 'stem))
           (left-bound-stem-dir
             (if (ly:grob? left-bound-stem)
                 (ly:grob-property left-bound-stem 'direction)
                 #f))
           (left-bound-beam
             (if (ly:grob? left-bound-stem)
                 (ly:grob-object left-bound-stem 'beam)
                 #f))
           ;; If Stem and Slur have same direction, more distance is needed
           ;; But not if a beam is present
           (crr
             (if (and right-bound-stem-dir
                      left-bound-stem-dir
                      (or (= right-bound-stem-dir curve-dir)
                          (= left-bound-stem-dir curve-dir))
                      (not (null? (ly:grob-property left-bound-stem 'stencil)))   
                      (not (null? (ly:grob-property right-bound-stem 'stencil)))   
                      (null? right-bound-beam)
                      (null? left-bound-beam)
                      (or (> (max (cdr frst) (cdr frth)) 2.551)
                          (< (min (cdr frst) (cdr frth)) -2.551)))
                 (* 1.2 curve-dir)
                 0))
           ;; Ensure first and fourth control-points have the same value to
           ;; creat a "flat" curve
           ;; Set second and third appropriate
           ;; The numeric values are my choice.
           (new-cps
             (map
               (lambda (cp)
                 (if (or (eq? cp frst) (eq? cp frth))
                     (cons
                       (car cp)
                       ;; For first and fourth control-point, choose the highest
                       ;; y-value, 2.551 at least.
                       ;; Similiar if the curve is below.
                       (+ crr
                         (if curve-up?
                             (max (cdr frst) (cdr frth) 2.551)
                             (min (cdr frst) (cdr frth) -2.551))))
                     (cons
                       (car cp)
                       ;; For second and third control-point, choose an
                       ;; appropiate y-value, 4.235 at least.
                       ;; Similiar if the curve is below.
                       (+ crr
                         (if curve-up?
                             (max
                               4.235
                               (cdr scnd)
                               (cdr thrd)
                               (+ (max (cdr frst) (cdr frth)) 1.2))
                             
                             (min
                               -4.235
                               (cdr scnd)
                               (cdr thrd)
                               (- (min (cdr frst) (cdr frth)) 1.2)))))))
               c-ps))) 
      new-cps)))
     
     
%     
%slurArrow =
%  \override Slur #'stencil = #arrowed-curve
%
%print-slur-outside-staff =
%  \override Slur #'control-points = #outside-staff-curve
%

curve-arrow =
#(define-music-function (parser location curve outside-staff-slur?)
  (string? boolean?)
"
 Prints a curve with an arrowhead at right end.
 If wanted, Slurs and PhrasingSlurs are printed outside staff.
"
  #{
    \override $curve . stencil = #arrowed-curve
    #(if (or outside-staff-slur?
             (not (member curve '(Tie RepeatTie LaissezVibrerTie))))
         #{
           \override #(string->symbol curve) . control-points =
             #outside-staff-curve
         #}
         #{#})
  #})
 
arrowed-slur-outside-staff = \curve-arrow Slur ##t

neutral-slur = {
\override Slur.stencil = #ly:slur::print
%% Why does a simple revert not work?
%\revert Slur #'stencil
\revert Slur.control-points
\slurNeutral
}

arrowed-phrasing-slur-outside-staff = \curve-arrow PhrasingSlur ##t

neutral-phrasing-slur = {
\revert PhrasingSlur #'stencil
\revert PhrasingSlur.control-points
}

arrowed-tie = \curve-arrow Tie ##f

neutral-tie = {
\revert Tie #'stencil
\revert Tie.control-points
}

arrowed-repeat-tie = \curve-arrow RepeatTie ##f

neutral-repeat-tie = {
\revert RepeatTie #'stencil
\revert RepeatTie.control-points
}

arrowed-laissez-vibrer-tie = \curve-arrow LaissezVibrerTie ##f

neutral-laissez-vibrer-tie = {
\revert LaissezVibrerTie #'stencil
\revert LaissezVibrerTie.control-points
}

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

\relative c'' {
\arrowed-slur-outside-staff
c'( c \bar "" \break  c c)

\slurDown
c( c c c)

<>^\markup \with-color #red "How should it look?"
\stemUp
\slurUp
c,,4( c c c'')

<>^"default"
\neutral-slur
c( c c c)
}
 
m = { c4( d e f e d des c) }

testI = {
  \relative c \m
  \relative c' \m
  \relative c'' \m
  \relative c''' \m
}

\new Staff \with { \arrowed-slur-outside-staff instrumentName = "Slurs" }
{
  <>^"no Slur-Stem-direction"
  \testI
  \break
 
 
  <>^"Slur down, Stem up"
  \slurDown
  \stemUp
  \testI
  \break
 
  <>^"Slur up, Stem down"
  \slurUp
  \stemDown
  \testI
  \break

  <>^"Slur up, Stem up"
  \slurUp
  \stemUp
  \testI
  \break
 
  <>^"Slur down, Stem down"
  \slurDown
  \stemDown
  \testI
  \break
 
  <>^"default"
  \stemNeutral
  \neutral-slur
  \testI
  \break
}

\new Staff \with { instrumentName = "Ties" }
\relative c' {
\arrowed-tie
<c e g c>1~ q
<>^"default"

\neutral-tie
<c e g c>1~ q
}

\new Staff \with { instrumentName = "PhrasingSlur" }
\relative c' {
<>^\markup \with-color #red"How should it look?"
\arrowed-phrasing-slur-outside-staff
<c e g c>1^\( q q <g d' g b g'>\)
<>^"default"
\neutral-phrasing-slur
<c e g c>1^\( q q <g d' g b g'>\)
}

\new Staff \with { instrumentName = "RepeatTie" }
\relative c' {
<>_\markup \fontsize #-2 \with-color #red \column {
"TODO: Better output" "for RepeatTie"
}
\arrowed-repeat-tie
c2\repeatTie
<>^"default"
\neutral-repeat-tie
c2\repeatTie
}

\new Staff \with { instrumentName = "LaissezVibrerTie" }
\relative c' {
\arrowed-laissez-vibrer-tie
c1\laissezVibrer
<>^"default"
\neutral-laissez-vibrer-tie
c1\laissezVibrer
}

\paper { indent = 30 }

#(set-global-staff-size 19)

HTH,
  Harm

P.S. Ich habe das PNG mit höherer Auflösung gemacht, damit man die Feinheiten besser sehen kann.
:)
« Letzte Änderung: Donnerstag, 1. Mai 2014, 01:04 von harm6 »

iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #12 am: Donnerstag, 1. Mai 2014, 08:13 »
Mein Gott, Harm,

ich bin wirklich sprachlos...  :o
Ich hatte geschrieben
Zitat
Nur eine Bitte: wenn es etwas ist, dass man in 5 Minuten machen lässt, wäre ich froh wenn Du es machen könntest, sonst lass es, es ist nicht wirklich nötig.
Ich denke aber, du hattest ein bisschen länger als 5 Minuten.

Was soll ich sagen? Schon wieder danke vielmals... :)
...und natürlich einen schönen Tag...

Eugenio

harm6

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #13 am: Donnerstag, 1. Mai 2014, 12:50 »
Hallo,

wie versprochen noch ein paar Anmerkungen.
Zum "outside-staff":
Pierres Idee mit den 'positions war schon gut, denn Änderungen dort wirken sich auch auf die 'control-points aus. Allerdings nicht ohne Einschränkungen: LilyPond würde nie einen Slur ausgeben, der zu weit entfernt vom default ist.
Siehe auch die Beschreibung von http://lsr.di.unimi.it/LSR/Item?id=684
Es sei denn man zwingt LilyPond dazu. Dann genügte es aber nicht die 'positions neu zu setzen (war auch meine erste Idee), sondern man muß die 'control-points direkt angehen. Ist allerdings mehr Aufwand.
Einen Nachteil hat das Ganze auch: Für Ties kann man keinen zusätzlichen override der 'control-points mehr benutzen, er bleibt ohne Effekt. Ich weiß allerdings nicht warum es bei Slurs, PrasingSlurs doch funktioniert ...
Ansonsten bin ich bei den Slurs mit den rot eingefärbten Anmerkungen nicht sicher, ob sie wirklich in dieser Art und Weise ausgegeben werden sollen.
Eugenio, was meinst Du?

Ansonsten habe ich die 'direction der Slurs, etc nicht hard-coded, das muß man via \slurUp etc, oder ^( etc einstellen. Ebenfalls habe ich das Anfügen der Pfeilspitze, bzw das Versetzen der Slurs in zwei getrennte Definitionen gepackt, damit man sie bei Bedarf auch einzeln verwenden kann. Die einzelne Verwendung ist im Code auskommentiert. In 'curve-arrow' sind beide integriert.

Nicht ganz zufrieden bin ich mit dem Erscheinungsbild, wenn die Noten oberhalb des Notensystems sind und Slur und Notenhals sich ebenfalls über dem System befinden. Ich empfinde den Slur dann als zu stark gekrümmt. In diesem Fall habe ich nämlich den default-slur einfach etwas nach oben geschoben, der default ist aber schon stark gekrümmt.
Tatsächlich gibt es irgenwo ein Coding, IIRC von Janek Warchol, welches ein feature liefert mit dem man da ansetzen könnte. (Man konnte damit den Slur nicht am Notenkopf, sondern am Ende des Stem anfangen/enden lassen.)
Ich habs aber nicht wieder gefunden.
Weiß jemand wo es ist?

Ansonsten sind mir die Dankbarkeitsbezeugungen fast schon ein wenig peinlich ...
Es wäre aber klasse, wenn sich mehr Leute dazu durchringen könnten bei LilyPond mitzuhelfen.
Das geht auf allen Ebenen:
Fragen beantworten auf mailing-lists bzw hier im Forum.
David Kastrup unterstützen.
Mitarbeit bei LilyPonds bug-squad.
Siehe auch: http://lilypond.org/website/help-us.html

Zur bug-squad.
Die Mitarbeit dort erfordert keine Programmierkenntnisse! Wer mehr wissen möchte: http://lilypond.org/doc/v2.19/Documentation/contributor/issues.html Gerade in der bug-squad sind wir notorisch unterbesetzt.


Ich weiß, daß einige hier durchaus schon in dieser Hinsicht aktiv sind, doch wie fast jedes open-source Projekt brauchen wir mehr Köpfe... ;)

Gruß,
  Harm




iugin

  • Gast
Re: Bindebogen mit Pfeil
« Antwort #14 am: Samstag, 3. Mai 2014, 08:53 »
Lieber Harm

Zitat
Ansonsten bin ich bei den Slurs mit den rot eingefärbten Anmerkungen nicht sicher, ob sie wirklich in dieser Art und Weise ausgegeben werden sollen.
Für das, was ich mit dem machen muss, ist es gut.
Vielleicht muss ich kurz erklären: ich bezeichne Partituren alter Musik selten mit Crescendi, sondern vielmehr mit Spannungsabläufe, welche am Schluss wie Crescendi wirken, haben aber auch eine Richtung. (S. Attachement)
Diese Spannungsabläufe zeichne ich mit Pfeilen oberhalb vom System. Ich habe mich gefragt, ob ich es mit Lilypond machen kann. So kann ich alles in einer Partitur eintragen und so Chor- und Orchesterstimmen drucken.
Deshalb: dein Code funktioniert für mich prima!

Zweitens:
Zitat
Ansonsten sind mir die Dankbarkeitsbezeugungen fast schon ein wenig peinlich ...
Kann ich verstehen :)
Allerdings ist für mich nicht selbstverständlich, dass jemand sich (immer) Zeit nimmt und meine Probleme zu lösen, und macht das schnell und unkompliziert. Du kannst sagen, du machst es für Lilypond, oder für das Forum, ist alles ok, aber am Schluss löst du meine Probleme mit dem Programm. Und die Probleme erfordern oft viel Code (und vielleicht hast du es in 5 Minuten, aber du weisst, dass für mich Scheme (immer noch) ein Hocus Pocus ist, und ich habe das Gefühl, du brauchst Stunden... Ausserdem Mitte in der Nacht <- (Kommas auf Deutsch sind für mich genau so ein Hocus Pocus wie Scheme...  ;D )).

Das wars. :)

Ich wünsche dir einen schönen Tag

Liebe Grüsse

Eugenio