Hi,
bei der Kombination von Nachschlag ("\afterGrace"), einem darüber notierten (\set suggestAccidentals = ##t), "erzwungenen" ("!") Vorzeichen und einem Legatobogen erhalte ich immer eine Warnung mit dem Hinweis "Grob für Legatobogen wird ignoriert: AccidentalSuggestion. avoid-slur nicht gesetzt?". Was passiert hier? Wie vermeide ich die Warnung?
\version "2.20.0"
\language english
\relative {
d'2 \afterGrace e4( { \once \set suggestAccidentals = ##t d!16 e) }
}
Danke, Gruß,
--ingmar
=> (https://code.google.com/archive/p/lilypond/issues/3729):
\version "2.20.0"
\language english
\relative {
d'2
\afterGrace
e4( {
\once \set suggestAccidentals = ##t
\once \override AccidentalSuggestion.avoid-slur = #'inside
d!16 e) }
}
~Pierre
OK, ist also nicht zu vermeiden, und keiner weiß so recht, warum eigentlich... oder der Fall tritt einfach zu selten auf, als dass ihn jemand reparieren möchte.
Hab mal versucht, die Warnung künstlich zu unterdrücken (https://archiv.lilypondforum.de/index.php/topic,2203.msg12254.html#msg12254). Leider klappt das so einfach auch nicht. Muss ich mal analysieren; ich werde dafür möglicherweise einen neuen Thread aufmachen.
Danke!
--ingmar
ich habe auch so eine Warnung, die ich nicht verstanden habe, diese Mal bei dem Setzen eines Trillers.
\version "2.20.0"
\include "deutsch.ly"
\score {
\new Staff {
\time 4/4
\key c \major
\clef treble
%\autoBeamOff
\relative c' {
\acciaccatura h8^"Lento lugubre" h2~\pp\<^( h8 gis4\p h8~ |
h8) gis4^( h8~ \tuplet 3/2 { h8 gis! h~ } \tuplet 5/4 { h16[ gis! h gis! h~] } |
\tuplet 6/4 { h16[ gis h gis! h gis!] } \pitchedTrill h4^~\startTrillSpan_\markup {\parenthesize \dynamic f } gis! h2)\stopTrillSpan
}
}
}
Hallo Amateur:
\version "2.20.0"
\include "deutsch.ly"
\score {
\new Staff {
\time 4/4
\key c \major
\clef treble
%\autoBeamOff
\relative c' {
\acciaccatura h8^"Lento lugubre" h2~\pp\<^( h8 gis4\p h8~ |
h8) gis4^( h8~ \tuplet 3/2 { h8 gis! h~ } \tuplet 5/4 { h16 gis! h gis! h~ } |
\tuplet 6/4 { h16 gis h gis! h gis! }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\once\override TrillPitchAccidental.avoid-slur = #'inside
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pitchedTrill
h4^~ _\markup { \parenthesize \dynamic f } \startTrillSpan gis! h2)\stopTrillSpan
}
}
}
Auch wenn es in den Beispielen dieses Threads nicht so aussieht, so gibt es doch Fälle bei denen der Wert auf den avoid-slur gesetzt wird, zu unterschiedlichen Ergebnissen führt.
Ich spekuliere, daß kein default gesetzt ist, weil in den Fällen in denen es tatsächlich einen Unterschied ausmacht, die Meinungen zu oft divergieren.
Falls ich da richtig liege, ist das nicht-setzen eines default aber durchaus diskutabel, imho.
Warnungen kann man ausschalten mittels
#(ly:expect-warning "Ignoring grob for slur")
Bzw dem deutschsprachigen Äquivalent. Allerdings braucht es für jede einzelne Warnung ein neues ly:expect-warning.
Gruß,
Harm
Zitat von: harm6 am Samstag, 20. Juni 2020, 13:20
Auch wenn es in den Beispielen dieses Threads nicht so aussieht, so gibt es doch Fälle bei denen der Wert auf den avoid-slur gesetzt wird, zu unterschiedlichen Ergebnissen führt.
Ja, vermutlich... aber mir ist natürlich überhaupt nicht klar, welche Werte da auftreten könnten und welche Effekte sie hätten.
Daher: Ich hab jetzt das Handwerkszeug, um nun entweder den Wert für avoid-slur 'künstlich' zu setzen oder die Fehlermeldung zu unterdrücken. Ich würde aber nicht gerne in jedem Fall beim Setzen eines Vorzeichens über eine Note erstmal prüfen, ob das innerhalb eines Legatos ist und in diesem Fall dann ausprobieren, ob eine Fehlermeldung kommt, welche das ist, und ob ein Fehler zu sehen ist... Da wär es natürlich schon besser, zu verstehen, welchen Effekt das im schlimmsten Fall haben kann, und sich anschließend generell für einen der beiden Wege (künstliches
avoid slur versus Fehlermeldung abknipsen) zu entscheiden.
Gruß,
--ingmar
Grundsätzlich kann 'avoid-slur auf 'inside, 'outside, 'around bzw 'ignore gesetzt werden.
Es gibt auch den regtest slur-script-inside.ly dazu, hier in einer etwas ausgeweiteten Variante:
\relative c''{
\clef alto
\slurUp
\override Script.slur-padding = #0.3
\once \override Script.avoid-slur = #'inside
c4(^\downbow b)
\once \override Script.avoid-slur = #'around
c4(^\downbow b)
\once \override Script.avoid-slur = #'outside
c4(^\downbow b)
\once \override Script.avoid-slur = #'ignore
c4(^\downbow b)
}
Den Unterschied zwischen 'outside und 'around habe ich nie verstanden, ist auch hier nicht bemerkbar.
Grundsätzlich wird also das Verhalten von manchen Objekten, die einem Slur im Wege stehen, geregelt. Wobei sowohl das Objekt selbst als auch der Slur verändert werden kann (manchmal aber nicht zwangsläufig).
Im konkreten Fall, AccidentalSuggestion, würde ich wahrscheinlich avoid-slur auf 'ignore setzen, da sich die beiden sowieso meist aus dem Wege gehen (falls keine sonstigen Setzungen erfolgt sind) und nur auftretende Unschönheiten manuell fixen.
Gruß,
Harm
Herzlichen Dank an @Schneider und @harm6 – ich weiß jetzt alles, was ich wissen wollte und habe mein Problem gelöst!
@amateur – wie siehts bei dir aus? bist du geholfen!? : - )
Gruß,
--ingmar
Zitat von: harm6 am Sonntag, 21. Juni 2020, 16:21
Den Unterschied zwischen 'outside und 'around habe ich nie verstanden, ist auch hier nicht bemerkbar.
Ohne irgendetwas nachgelesen oder getestet zu haben: Könnte 'around so etwas sein wie ,,'inside, falls da Platz ist, sonst 'outside"? Also so nah wie möglich, ohne dafür aber den Bogen zu verschieben.