Versetzungszeichen an einer Verzierung

Begonnen von Hilflos-im-Code, Freitag, 10. Januar 2020, 11:14

« vorheriges - nächstes »

Hilflos-im-Code

Unter http://lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes.de.html habe ich folgenden Code gefunden:

\relative c''' {
  \once \override TextScript.script-priority = #-100
  a2^\prall^\markup { \sharp }

  \once \override Script.script-priority = #-100
  a2^\prall^\markup { \sharp }
}


Wenn man den Hals umdreht und das Kreuz in angemessene Größe bringt, rutscht das Kreuz zu weit nach unten.

\relative c''' {
\stemUp \once \override TextScript.script-priority = #-100
  a2^\prall^\markup {  \fontsize #-2.5 \sharp }
}


Gibt es einen Befehl wie bei Fingersätzen, dass der Hals berücksichtigt wird? (Tweak als Lösung ist klar.)

Zweite Frage, selbe Kerbe. Je nach musikalischen Zusammenhang müssen die Versetzungszeichen rechts neben dem Verzierungszeichen stehen. Wie bekommt man das hin?

Malte

Hallo Hilflos-im-Code,

ich dachte eigentlich, das Herunterrutschen passiere, weil das kleine Kreuz schmaler ist und deshalb neben den Hals paßt, man könne also extra-spacing-width oder X-extent per \override vergrößern. Damit hatte ich aber kein Glück. Man kann aber mit Y-offset (z. B. \override ... = 7) das Kreuz nach oben schieben, das schiebt den Praller mit.

Ich finde allerdings die Lösung mit TextScript und Script sowieso nicht so gut, und zwar aus mehreren Gründen:

  • Eine Sache (hier eine Verzierung) wird durch zwei unabhängige Grobs dargestellt, die LilyPond im Zweifelsfall einzeln plaziert. Dies führt eben auch dazu, daß das Kreuz verrutscht, obwohl die Verzierung an sich eigentlich über dem Hals stehen sollte. Du mußt beim Anpassen (z. B. von Richtung, Größe, ...) außerdem immer beide Grobs im Auge behalten.
  • Eine semantische Sache: Das Kreuz ist ja Teil der Verzierung, kein Text; es sollte also auch im Grob Script vertreten sein statt im TextScript.
  • Kreuz und Praller stehen erst einmal linksbündig; man kann die beiden nicht aneinander ausrichten, sondern jeweils nur am Notenkopf. Das müßte man extra tun.

Ich würde deshalb dazu tendieren, das Kreuz mit in den Stencil des Scripts zu packen; der einfachste Weg ist über einen Text-Stencil, welcher mit einem Markup gefüllt wird. Das beantwortet dann auch deine zweite Frage.
\version "2.19.83"

\relative {
  \stemUp
 
  \override Script.stencil = #ly:text-interface::print
  \override Script.text =
  \markup
  \override #'(baseline-skip . 2)
  \center-column {
    \musicglyph "scripts.prall"
    \fontsize #-2.5 \sharp
  }
 
  a''2\prall
 
  \override Script.text =
  \markup
  \line {
    \musicglyph "scripts.prall"
    \fontsize #-2.5 \sharp
  }
 
  a\prall
}


harm6

Hallo zusammen,

ist nicht in diesem thread schon alles gesagt?
Vor allem Arnold's code zu dem er explizit verlinkt.

Gruß,
  Harm