Autor Thema: Linie nach einer Saitenangabe  (Gelesen 1956 mal)

trulli

  • Member
Linie nach einer Saitenangabe
« am: Samstag, 21. November 2009, 10:56 »
Hallo,

nach einem Lily-Snippet kann man eine Saitenangabe mit Linie so setzen wie unten auf dem Bild.

Der Code dazu lautet:
\version "2.12.1"
stringNumberSpanner =
#(define-music-function (parser location StringNumber) (string?)
  #{
    \override TextSpanner #'style = #'solid
    \override TextSpanner #'font-size = #-5
    \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER
    \override TextSpanner #'(bound-details right text) = \markup { \draw-line #'(0 . 0.5) }
    \override TextSpanner #'(bound-details left text) = \markup { \circle \number $StringNumber }
  #})


\relative c {
  \clef "treble_8"
  \stringNumberSpanner "5"
  \textSpannerDown
  a4\startTextSpan
  b c d\stopTextSpan}
 

Ich möchte daran jetzt zwei Dinge ändern:
1 - zwischen umkreister Zahl und Linie soll ein Leerzeichen sein (sodass die Linie nicht direkt an den Kreis stößt)
2 - die Linie soll nach rechts noch etwas verlängert werden, damit die Note d noch in der Klammer ist

Könnt ihr mir da helfen?

Grüße von Trulli

trulli

  • Member
Re: Linie nach einer Saitenangabe
« Antwort #1 am: Samstag, 21. November 2009, 11:45 »
Ich habe eben das erste Problem so gelöst:
den TextSpan habe ich in die dritte Stimme (mit versteckten Noten) geschrieben. Da diese ja versetzt notiert wird, umfasst die Klammer jetzt auch die letzte Note.

comper

  • Member
Re: Linie nach einer Saitenangabe
« Antwort #2 am: Samstag, 21. November 2009, 12:49 »
Danke für den Code.

Ding 1 (Leerzeichen)
Text links abändern, zu
  \markup \concat { \circle \number $StringNumber " "}

Ding 2 (verlängern)
Es braucht eine zusätzliche Override
  \once \override TextSpanner #'(bound-details right padding) = #-0.5
und diesen Wert justieren (Voreinstellung ist +0.25)

Gruss

trulli

  • Member
Re: Linie nach einer Saitenangabe
« Antwort #3 am: Samstag, 21. November 2009, 16:09 »
Lieber comper,

ich habe zu danken - wie immer sind deine Lösungsvorschläge hervorragend :)

Mit dem Wert -1.5 sieht es nach meiner Meinung am besten aus:
\once \override TextSpanner #'(bound-details right padding) = #-1.5

Aufgrund deines Vorschlages habe ich den TextSpan aus der 3. Stimme herausgenommen und jetzt doch in die Diskantstimme gesetzt. \start \stopTextSpan nimmt ja nicht viel Platz weg. Das Bild bleibt trotzdem übersichtlich.

Grüße von Trulli

So sieht die Stelle jetzt im Stück aus: