Überbindung nach unten verschieben [GELÖST]

Begonnen von juppes, Freitag, 5. Februar 2021, 16:57

« vorheriges - nächstes »

juppes

Liebe Forumsmitglieder,

manchmal landen Überbindungen so unglücklich in den Notenlinien, daß bei eng beieinanderstehenden Noten sie kaum noch wahrnehmbar sind. Ich habe in der Dokumentation herumgesucht, habe aber nur Möglichkeiten gefunden, den Bogen nach oben zu versetzen (braucht man manchmal auch), und nicht nach unten.
Habe ich etwas übersehen oder eine Logik nicht kapiert? Ich kriege es einfach nicht hin. Ich hänge ein Minimalbeispiel an, damit man besser sieht, was gemeint ist.

ingmar

Ich kann dir vermutlich nicht helfen. Aber ein Tip: Gib uns mal den Quellcode, den du verwendest. Und vermittel, was du genau willst. Im ersten Takt des ersten Beispiels liegt der Bogen sehr hoch, oberhalb des Systems; ist es das, was du dir wünschst? Sieht nicht sehr natürlich aus.

Könnte es sein, dass du Legatobögen "c( c)" statt richtig Bindebögen "c ~c" verwendest?

Gruß,
--ingmar

kilgore

Hallo juppes,

ingmar hat Recht. Ich habe dein Beispiel eingegeben, und wenn man Bindebogen benutzt: ~  dann sieht es richtige aus.

juppes

Ich danke Euch für Eure Antworten. Es handelt sich natürlichum  Kleinkram.Meinen Code habe ich bereits an meine Anfrage drangehängt, und schon da taucht nach der Kompilation eine Merkwürdikeit auf, wie ich ja auch auf dem Notenblatt angemerkt habe: in dem Ausschnitt, um den es mir geht (erste Zeile), sieht die Überbindung am Ende des zweiten Taktes akzeptabel aus. Kompiliere ich jedoch das komplette Liedchen wie darunter stehend, dann sitzt die Überbindung im 5. Takt relativ schlecht sichtbar zwischen den beiden Noten und zwischen den Notenlinien, warum auch immer.

Die höherstehenden Überbindungen, die Euch aufgefallen sind, sehen in der Tat ein wenig unnatürlich aus, aber man sieht sie wenigstens, und sie lassen sich wohl auch noch besser justieren. Die waren vorher nämlich auch so ähnlich wie in Takt 5, und ich finde das unbefriedigend. Wenn ich mit der Hand schreiben würde, würde ich diese Überbindungen niemals so halb versteckt schreiben wie dort. Und auch als Notenstecher (wenn ich das gelernt hätte), würde ich sie etwas anders plazieren.

Man kann sich über solche Dinge natürlich streiten, und die Empfindlichkeitsschwellen verschiedener Menschen sind da sicher auch unterschiedlich.

Aber was ich ganz prinzipiell suche, ist eine Möglichkeit, so eine Situation nach eigenem Gusto zu bereinigen. Mit Lilypond kann man ja erstaunliche Sachen anstellen, und deswegen hat es mich gewundert, daß man so eine relativ simple Sache wie eine Überbindung vertikal tiefer zu verschieben (nicht zu verwechseln mit einer Bindung, für die ich zahlreiche Manipulationsmöglichkeiten gefunden habe) nicht machen können soll.

Lilypond macht ja die meisten Dinge gleich richtig, aber es gibt eben auch immer mal wieder relativ selten die Situation, daß man mit dem Angebot nicht ganz glücklich ist, so wie eben hier. Und dann sucht man eben nach Lösungsmöglichkeiten, wenn man selber nicht weiterkommt.

juppes

An Ingmar:
ich habe nochmal nachgesehen: da steht eine Überbindung, also:

g8 ~ g2

juppes

Sorry, ich hatte bei meinem ursprünglichen Beitrag gar nicht die .ly-Datei dranhängen, obwohl ich das dachte gemacht zu haben. Hier ist sie nun...
Tut mir leid für das Versehen. Braucht man schließlich doch, um die Sache besser beurteilen zu können.

ingmar

#6
1. Setz doch bitte die Versionsangabe in die erste Zeile – wie die Fehlermeldung verlangt.
2. Bitte bei solchen Fragen möglichst immer ein Minimalbeispiel.
3. Natürlich kannst du außer positiven auch negative Zahlen angeben, z. B.: staff-position = #-4.5
4. Ich persönlich finde die Defaultdarstellung von LilyPond um Klassen besser als mit einem unnatürlich aus dem Notensystem hinausgeschobenen Bogen.

Gruß,
--ingmar

ingmar

Es bleibt die sehr berechtigte Frage, warum der gleiche Code \relative { bes'8 bes a g ~ g2 } hier zu verschiedenen Ergebnissen führt.

Mein Verdacht ist, dass LilyPond den Bindebogen dann nach oben verschiebt, wenn eine weitere Zeile folgt. Mir ist in den Version 2.20 aufgefallen, dass sich der Umgang mit der vertikalen Raumaufteilung geändert hat – die Änderung scheint mir ziemlich komplex, so dass ich bisher nicht die Zeit gefunden habe, das nachvollziehbar zu dokumentieren.

Man kann sich davon überzeugen, indem man in dem von Juppes gelieferten Beispiel den Code der zweiten Zeile des zweiten (langen) Beispiels auskommentiert.

Frage: Sind diese Änderungen irgendwo dokumentiert?

--ingmar

juppes

Lieber Ingmar,

vielen Dank für Deine Anmerkungen. Ja, es hat sich seit Lilypond 2.18 Diverses auch in der Syntax geändert, wie ich auch schon feststellen mußte....
Nun zu Deinen Punkten:

zu 1. Komischerweise hat die Versionsangabe in der letzten Zeile bei mir gar keine Fehlermeldung produziert, sonst hätte ich sie natürlich noch verschoben.
zu 2. Mein Minimalbeispiel war nicht so minimal dieses Mal, weil es ja merkwürdigerweise einen Unterschied zwischen dem kompilierten Fragment, um das es mir ging, und dem kompletten Stück gibt (welches gottseidank nur kurz ist)
zu 3. Da liegt der Hase im Pfeffer: ich hatte das auch schon probiert, weil ich die Möglichkeit kenne, aber ohne Ergebnis. Der Grund: ich hatte den Hashtag vor dem Wert vergessen - ich muß wohl schon ziemlich müde gewesen sein. Sache ist also gelöst. Uff!
zu 4. Du hast Recht in dem, was Du da sagst. Was im Moment da erscheint, ist auch für mich nicht der Weisheit letzter Schluß. Aber jetzt muß ich ja nur noch mit den Werten ein wenig herumspielen, und dann wird etwas Zufriedenstellendes herauskommen. Auffallend in meinem Liedchen ist ferner, daß die Überbindung zwischen den zwei g in Takt 5 und in Takt 10 unterschiedlich ausfällt. Ohne Nachbearbeitung steht sie in Takt 5 fast zwischen den Noten und ist dazu noch ziemlich kurz, während sie in Takt 10 völlig in Ordnung ist.

Fazit: ich kann mich Deiner Frage in die Runde nur anschließen. Ich habe mal mit meinem Code herumgespielt und den Takt 5 auch noch in die 2. Zeile kopiert. Und siehe da: da steht der Bogen wunderbar, so daß ich niemals den Wunsch hätte, seine Position zu verändern. Wenn ich ihn in der ersten Zeile an der gleichen Stelle haben will, muß ich so etwas wie

\once \override Tie.staff-position = #-4.5

dazuschreiben. Verrückt...
Ich hänge diese Version von meinem früheren Beispiel hier an zur Begutachtung.

harm6

Zitat von: ingmar
Es bleibt die sehr berechtigte Frage, warum der gleiche Code \relative { bes'8 bes a g ~ g2 } hier zu verschiedenen Ergebnissen führt.

Mein Verdacht ist, dass LilyPond den Bindebogen dann nach oben verschiebt, wenn eine weitere Zeile folgt.

Afaik, hat das nichts damit zu tun, ob eine Zeile folgt oder nicht. Sondern für eine einzelne Zeile gilt per default
ragged-right = ##t
Außerdem kommen evemtuell noch Taktangabe sowie zu berücksichtigender indent für die erste Zeile zum tragen, nicht aber für Folgezeilen.
Bei mehreren Zeilen gilt per default
ragged-right = ##f
Also werden die Zeilen gestreckt bzw gestaucht, um ein gleiches Zeilenende zu wahren. Spanner wie der Tie sehen dann jedesmal anders aus.
Insoweit ist der Vergleich eine einzeilgen Scores mit einem mehrzeiligen irreführend.

Der Tie selbst ist überaus komplex in der Implementierung. In der IR kann man die details-subproperties betrachten und findet viele die xyz-penalty heißen. Das sind subproperties die bonus- bzw malus-Punkte für eine bestimmte Situation beinhalten. LilyPond versucht unter anderem an diesem System abzuschätzen wie der beste Tie wohl zu setzen wäre.
Allerdings ist das bei weitem nicht pefekt...

In Juppes' Beispiel habe ich mal versuchsweise zwei subproperties verändert:

  \override Tie.details.horizontal-distance-penalty-factor = 25 %% default 10
  oder (nicht gleichzeitig)
  \override Tie.details.vertical-distance-penalty-factor = 1  %% default 7

Und damit für mich zufriedenstellende Ergebnisse erzielt.
Allerdings ist in Juppes' Beispiel jeder Tie innerhalb des Systems und alle Noteköpfe auf den Linien.
Deshalb ist es als Test nicht umfassend genug, als daß man diese overrides ohne weitere Prüfung einfach übernehmen sollte.

Zitat von: ingmar
Mir ist in den Version 2.20 aufgefallen, dass sich der Umgang mit der vertikalen Raumaufteilung geändert hat
[...]
Frage: Sind diese Änderungen irgendwo dokumentiert?

Jede LilyPond-Version versucht besser zu sein als die vorherige zu sein.
Mir selber ist eher das horizontale spacing aufgefallen.
Ich denke nicht, daß das irgendwo dokumentiert ist, es sind zu viele Stellschrauben an denen man drehen kann...
Falls eine große grundsätzliche Änderung vollzogen wird, dann wird das natürlich ausführlich dokumentiert. Iirc, war das nach 2.12.3 so.
Aber wenn Du etwas darstellen kannst, was eindeutig schlechter geworden ist kann man einen bug-report schreiben...

Gruß,
  Harm

juppes

Lieber Harm,

danke für die interessanten Erläuterungen zum Thema. Es ist klar, daß bei einem so mächtigen Programm wie Lilypond unglaublich viele Dinge vorhanden sind, an denen man "drehen" kann. Und auch, daß manche davon ziemlich versteckt sein können. Aber es ist dann eben auch so, daß man nahezu alles "bauen" kann, was man will oder braucht, wenn man nur beharrlich und geduldig genug ist und auch vor einiger Zusatzarbeit nicht zurückschreckt, bevor das gewünschte Ergebnis herauskommt.

Ich habe als Lilypond-Vielnutzer schon eine Menge Dinge für meinen Bedarf/meine Anforderungen "gebaut" und mir einen inzwischen zu einer privaten NR angeschwollenen Spickzettel geschrieben, auf den alles kommt, was ich je irgendwann mal gebraucht habe, so daß ich es leicht wieder nachsehen kann, denn vieles braucht man ja nur ziemlich selten, je nachdem, was man gerade schreibt. Und wenn's wiederkommt, hat man es natürliich längst vergessen, vor allem, wenn es etwas Kompliziertes war.

Allen Beteiligten hier noch ein schönes Wochenende und nochmals vielen Dank. Ich markiere den Thread jetzt mal als gelöst.

ingmar

#11
Zitat von: harm6 am Sonntag,  7. Februar 2021, 13:16
Aber wenn Du etwas darstellen kannst, was eindeutig schlechter geworden ist kann man einen bug-report schreiben...

Weil du fragst: Es ist nicht "eindeutig schlechter". Die Logik reagiert spürbar anders als zuvor und entscheidet sich eher, fünf Seiten mit teils drei, teils vier Systemen pro Seite zu nehmen statt (wie früher) vier Seiten mit fünf und vier Systemen. Das auszutricksen ist umständlich, hässlich, nicht immer erfolgreich, und es bleibt die subtile Angst, dass die Bastellösung den nächsten Versionssprung nicht überdauert...

Details sind aber kompliziert und nicht in einem Minimalbeispiel abzuhandeln. Und gehören auch nicht in einen Thread, der von Überbindungen spricht... ; - )

--ingmar