• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Wellenlinie über Noten

Begonnen von temuta, Sonntag, 5. Juni 2016, 12:02

Vorheriges Thema - Nächstes Thema

temuta

Hallo allerseits,
Torsten hat in https://archiv.lilypondforum.de/index.php?topic=1311.msg7190#msg7190 eine tolle \squiggle-Funktion für Wellenlinien über Noten gepostet. Gibt es eine Variante davon, die ebenfalls eine Wellenlinie über Noten erzeugt, bei der man aber nicht die Anzahl der Wiederholungen der Welle als Parameter angibt, sondern die Ausdehnung von einer Startnote zu einer Endnote - ähnlich wie bei TextSpanner mit \startTextSpan und \stopTextSpan? Je nach Formatierung soll also die Wellenlinie über den Noten kürzer oder länger sein, aber immer von der Startnote bis zur Endnote reichen. Anhängend ein Beispiel einer Handschrift aus dem 18. Jhdt; in den Takten 3 und 5 sind die Wellenlinien jeweils über den Noten 2-4 gefordert - so sollte das Ergebnis aussehen. Danke!
Danke!
Burkard

fugenkomponist

Probiers mal mit \startTrillSpan und \stopTrillSpan, sieht auch ein bisschen eleganter aus und ist vermutlich für diesen Stil passender.

Wofür steht denn die Wellenlinie im Original? Bogenvibrato? Das würde man heutzutage doch mit Bögen (+ evtl. Strichen oder Punkten) schreiben, oder?

temuta

Hallo Fugenkomponist,
ja, an \startTrillSpan und \stopTrillSpan hatte ich auch schon gedacht, wenn nur das Trillerzeichen "tr" nicht wäre. Kann man denn das "tr" abschalten (unsichtbar machen)?
Und in der Tat: Wahrscheinlich (nicht sicher) ist ein Bogenvibrato gemeint. Wenn es keine Alternative gibt, werde ich das Problem auch mit einem Bogen lösen.
Burkard

harm6

Du könntest mit TextSpanner.style experimentieren.
Oder den TextSpanner.stencil überschreiben.


\version "2.19.42"

\paper { ragged-last = ##t indent = 0 }

\relative {
\override TrillSpanner.bound-details.left.text = ##f
b''8\startTrillSpan 8 8 8\stopTrillSpan
}

\relative {
    \override TextSpanner.style = #'zigzag
b''8\startTextSpan 8 8 8\stopTextSpan
}

\relative {
    \override TextSpanner.style = #'trill
b''8\startTextSpan 8 8 8\stopTextSpan
}
               
foo =
\override TextSpanner.stencil =
#(lambda (grob)
  (let* ((stil (ly:line-spanner::print grob))
         (stil-x-ext (ly:stencil-extent stil X)))
  (grob-interpret-markup grob
  #{
    \markup
      \override #'(height . 0.2) %% default: 0.5
      \draw-squiggle-line
        #0.5 %% squiggle-length
        #(cons (cdr stil-x-ext) 0) %% destination
        ##f %% equal start-end?
  #})))
 

\relative {
  \time 2/4
  \foo
  b''8\startTextSpan 8 8 8
  \break
  b8 8 8 8\stopTextSpan
}

\markup \bold "Funny squiggles"

fooII =
\override TextSpanner.stencil =
#(lambda (grob)
  (let* ((stil (ly:line-spanner::print grob))
         (stil-x-ext (ly:stencil-extent stil X)))
  (grob-interpret-markup grob
  #{
    \markup
      \override #'(angularity . 5) %% default: 0
      \override #'(height . 1) %% default: 0.5
      \override #'(thickness . 1) %% default: 0.5
      \draw-squiggle-line
        #1 %% squiggle-length
        #(cons (cdr stil-x-ext) 0) %% destination
        ##f %% equal start-end?
  #})))

\relative {
  \time 2/4
  \fooII
  b''8\startTextSpan 8 8 8
  \break
  b8 8 8 8\stopTextSpan
}


png im Anhang

HTH,
  Harm

temuta

Hallo Harm,
super, vielen Dank! Das tut genau das, was ich wollte. Selbst wenn ich noch mit der stabilen Version 2.18.2 arbeite und somit die Funktion \draw-squiggle-line nicht zur Verfügung steht, klappt es mit der Änderungen bei TrillSpanner und TextSpanner sehr gut! Danke nochmals!
Burkard

fugenkomponist

Oh, entschuldige, hab nicht an ,,tr" gedacht, wusste wohl unterbewusst, dass man das relativ einfach abschalten kann (harms erste Lösung).