Haltebogen am Ende eines Stückesvon \score

Begonnen von Hilflos-im-Code, Mittwoch, 28. März 2018, 12:12

« vorheriges - nächstes »

Hilflos-im-Code

Bei einem Segnoverweis am ende eines \score-Abschnittes brauche ich einen Haltebogen. Der aber nicht erscheint.

\version "2.19.81"

\score {%Rest vom Stück
{  \time 9/8  e'2.    gis'16^\markup  { D.S al \raise #0.8 \musicglyph "scripts.coda" e Coda } ( a' )  \set tieWaitForNote = ##t b'4~ }
%Da kommt nichts mehr
}



"\set tieWaitForNote = ##t" hat auch nichts gebracht.


harm6

Hallo,

das Problem hat nichts mit dem Segnoverweis zu tun. Insofern wäre ein minimal-example:
{ c'~ }

Um einen Haltebogen setzen zu können braucht LilyPond eine Verankerung des Haltebogens an einer linken und an einer rechten Note (die spanner-bouds). Es gibt aber kein rechte Note, deshalb wird kein Haltebogen gedruckt. `tieWaitForNote' verzögert lediglich das Erkennen des rechten Ankers von der direkt folgenden Note auf eine irgenwann vorhandene Note gleicher Tonhöhe. Ist also hier nicht wirksam.

Falls ich das richtig verstanden habe, so versucht Dan einen Reihe von patches zu entwerfen, welche segno-Verweise etc anhand von RehearsalMarks  (z.B. gehe von "D" zu "B") umsetzt. Aber da ist noch viel zu tun, ich erwarte keine kurzfristige Umsetzung.
Aber auch falls das klappt, hat man immer noch das Problem, wie man einen Spanner wie den Haltebogen rechtsseitig verankert.
Vielleicht an der PaperColumn, wie man es beim Zeilenumbruch macht. Aber auch da seh ich Schwierigkeiten dräuen...

Soviel zum Hintergrund.
Der populärste workaround ist LaissezVibrerTie zu verwenden, welcher nur einen linken Anker benötigt, aber deshalb auch nur einen standard-output liefert. Das kann aber mittles \shape eingeregelt werden.



\version "2.18.2"

{
  c'\laissezVibrer
}

{
  c'-\shape #'((0 . 0) (0.4 . -0.3) (1.6 . -0.3) (2 . 0)) \laissezVibrer
}



Gruß,
  Harm


Malte

Zitat von: harm6 am Mittwoch, 28. März 2018, 14:57
Falls ich das richtig verstanden habe, so versucht Dan einen Reihe von patches zu entwerfen, welche segno-Verweise etc anhand von RehearsalMarks  (z.B. gehe von "D" zu "B") umsetzt. Aber da ist noch viel zu tun, ich erwarte keine kurzfristige Umsetzung.
Aber auch falls das klappt, hat man immer noch das Problem, wie man einen Spanner wie den Haltebogen rechtsseitig verankert.
Vielleicht an der PaperColumn, wie man es beim Zeilenumbruch macht. Aber auch da seh ich Schwierigkeiten dräuen...
Off-topic: Solche ,,halben" Spanner wären aber mal eine Sache, die sich wirklich lohnen würde. Gefühlt ist das mit Abstand die häufigste Frage auf lilypond-user und die mit dem blödesten Workaround (Problem ist als issue 2884 gelistet).

Andere Kandidaten auf dieser Liste wären issue 34, Tempoangaben mit Gleichungen wie Note = Note (siehe issue 5215) und RehearsalMarks auf StaffGroup-Ebene (issue 2199, ganz aktuell gefixt, aber noch nicht in Changes erwähnt).

Hilflos-im-Code

#3
Zitat von: harm6 am Mittwoch, 28. März 2018, 14:57
Hallo,

das Problem hat nichts mit dem Segnoverweis zu tun. Insofern wäre ein minimal-example:
{ c'~ }


Zusatznachfrage gilt für shape allgemein.

-\shape #'((0 . 0) (20% von x . 0.3) (80% von x . 0.3) (x . 0)).

Gibt es für x eine Angabe die gleichbedeutend mit Zeilenende ist? Weil so muss man sich das für jede Situation zurecht probieren.

Zusatzzusatzfrage: Chaplik spricht in seinem Buch über ein Raster, dass dem Notenstich zugrunde liegt. Kann an sich das in Lilypond einblenden lassen, sodass man Abstände für solche Aktionen ablesen kann?


Arnold

Ja, Malte,

und bei den Volten hat man gelegentlich sogar drei Bögen (tie, slur, phrasing_slur) die man »am Taktstrich« anfangen oder abbrechen müßte - wie bei einem "unsichtbaren Akkord von Null-Dauer, dessen Notenköpfe genau dem dem Taktstrich (bzw. den beiden Umbruch-Taktstrichen, für endende und beginnende Bögen getrennt) liegen".

Und zwei off-topic-Ergänzungen:
(5215) Einen l_istesso_tempo-Engraver fände ich auch ganz gut.
(34) Und meinen experimental-grace-syncer wollte ich schon vor Monaten um Voices als Ziel erweitern, auch wenn ich damit nicht 100 % abdecken kann und Probleme bei "relative über repeat" vorprogrammiert sind. Habe aber leider noch nicht die Zeit dazu gefunden.

Arnold

Malte

#5
Zitat von: Hilflos-im-Code am Donnerstag, 29. März 2018, 10:12
Zusatznachfrage gilt für shape allgemein.

-\shape #'((0 . 0) (20% von x . 0.3) (80% von x . 0.3) (x . 0)).

Gibt es für x eine Angabe die gleichbedeutend mit Zeilenende ist? Weil so muss man sich das für jede Situation zurecht probieren.
Soweit ich weiß, gibt es eine sehr viel flexiblere und praktischere Funktion mit dem meiner Meinung nach etwas merkwürdigen Namen \shapeII in openLilyLib. Ich habe allerdings immer noch keinen Versuch gestartet, openLilyLib mal zu nutzen, vielleicht, weil ich keine anständige Dokumentation gefunden habe ...

Edit: Habs ausprobiert. Einen wirklich großen Vorteil bringt sie in diesem Fall aber nicht, denn LaissezVibrerTies haben einfach das Problem, daß sie nicht zwischen zwei Noten oder zwischen einer Note und einer horizontalen Position (wie Zeilenanfang oder -ende) stehen und deshalb ihre Länge nicht vom horizontalen Spacing abhängt. Früher oder später wärs also doch schön, ,,halbe" Bögen nicht nur an Zeilenumbrüchen, sondern auch am Anfang/Ende eines Stücks oder einer Wiederholung zu haben (vielleicht etwas allgemeiner: Bögen können nicht nur zwischen zwei Noten, sondern auch zwischen Note und Taktstrich gezogen werden).