Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Mittwoch, 27. Juli 2011, 18:03

Titel: arpeggio in Doppelgriffen
Beitrag von: chf am Mittwoch, 27. Juli 2011, 18:03
Liebe Freunde,

warum ist die Arpeggio-Linie bei beiden Doppelgriffen beinahe unsichtbar?
(Und wie kann man das ändern?)

Gruß
chf

Titel: Re: arpeggio in Doppelgriffen
Beitrag von: trulli am Mittwoch, 27. Juli 2011, 18:22
Hallo Christa,

ein bekanntes Problem, das ich auch oft habe. Eine Verlängerung kann man bestimmt auch definieren (das zeigen uns bestimmt bald ein paar Leute, gell, harm 6?).

Ich habe es mit einer versteckten Stimme gelöst.

\version "2.14.0"
<<
\relative c' {
    <d fis>
}
\\
\relative c' {
  \hideNotes
  \arpeggioArrowUp
  <b a'> \arpeggio
}
>>

Grüße von Trulli
Titel: Re: arpeggio in Doppelgriffen
Beitrag von: RobUr am Mittwoch, 27. Juli 2011, 18:27
Hallo Christa,

bei Terzen ist offenbar nicht genug Platz, um Arpeggio + Pfeil unterzubringen. Du kannst die positions-Eigenschaft benutzen:
\version "2.12.3"

\relative c' {
\once \override Arpeggio #'positions = #'(-3 . 0)
\arpeggioArrowUp
<d fis>4\arpeggio a8[
\once \override Arpeggio #'positions = #'(-5 . -2)
\arpeggioArrowUp <g b>->]\arpeggio
}

Grüße, Robert
Titel: Re: arpeggio in Doppelgriffen
Beitrag von: harm6 am Mittwoch, 27. Juli 2011, 20:59
Hallo zusammen,

@trulli:
Zitat von: trulli
Eine Verlängerung kann man bestimmt auch definieren (das zeigen uns bestimmt bald ein paar Leute, gell, harm 6?).
Eigentlich hat Robert das Problem gelöst, aber da Du ja unbedingt eine Funktion haben wolltest  ;), habe ich mich mal etwas intensiver mit dem Thema befaßt.

Zunächst ist festzustellen, daß das Arpeggio korrekt und nicht verschoben dargestellt wird, wenn man \arpeggioArrowUp rausnimmt. Es ist allerdings zu klein.
Insofern halte ich das Verhalten, bei gesetztem \arpeggioArrowUp für einen Bug.
Weiterhin scheint die triller-artige zick-zack-Linie eines normalen Arpeggios nur in ganzen links-rechts-Blöcken erweiterbar zu sein, und nicht in Bruchteilen davon. Anders als bei \arpeggioBracket, denn dort kann man stufenlos einstellen.

Meine Funktion growArpArrowUp orientiert sich an LSR-Snippet 639 (http://lsr.dsi.unimi.it/LSR/Item?id=639) und liest die von lilypond benutzten positions aus und fügt unten und oben etwas hinzu. \arpeggioArrowUp ist genauso wie eine Angabe für \arpeggio schon enthalten. Ansonsten braucht sie keine weiteren Eingaben.

\version "2.12.3"

growArpArrowUp =
  #(define-music-function (parser location) ()
    #{
       #(define (grow-arpeggio grob)
           (let* ((coords (ly:arpeggio::calc-positions grob)))
           
             (define (add-offsets coords)
               (if (null? coords)
               '()
               (cons (+ (car coords) -0.6)
                     (+ (cdr coords) 0.5))
               ))
               
        (add-offsets coords)))

       \arpeggioArrowUp
       \once \override Arpeggio #'positions = #grow-arpeggio
       $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
    #})

%--------------------- Test ----------------------------------------------------
   
\relative c' {
   \growArpArrowUp  <d fis>4
      a8
  \growArpArrowUp   <g b>->
}

Mit besonderem Gruß an trulli, ;)
  Harm

Titel: Re: arpeggio in Doppelgriffen
Beitrag von: trulli am Mittwoch, 27. Juli 2011, 21:35
@Rob und harm6

Danke Jungs, ich wusste, dass ihr es könnt!  :)
Titel: Re: arpeggio in Doppelgriffen
Beitrag von: chf am Donnerstag, 28. Juli 2011, 15:38
Liebe Freunde,

ich soll dauernd zu einem anderen Programm überredet werden, aber solange ich euch habe...
Ihr seid wirklich unschlagbar.
Danke!

Gruß
Christa