Autor Thema: Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.  (Gelesen 713 mal)

Chris

  • Newbie
  • *
  • Beiträge: 6
Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.
« am: Samstag, 16. November 2019, 13:41 »
Hallo allerseits!

Wie kann ich ein Override für die Zahlen in den Volta-Klammern erstellen (siehe angehängten Screenshot)? Ich würde gerne die Schriftart ändern, habe aber bisher dazu nichts finden können. Ich verwende Lilypond Version 2.18.2.

Danke und schöne Grüße!

Manuela

  • Sr. Member
  • ****
  • Beiträge: 418
    • Manuelas Wiki
Antw:Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.
« Antwort #1 am: Samstag, 16. November 2019, 13:49 »
Lustig, zu diesem Thema habe ich gerade in meinem Wiki was geschrieben:

Text unterhalb der Voltenklammer

Ist allerdings für die neueste Lilypond-Version, ich kann nicht garantieren, dass es mit 2.18 auch funktioniert.
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

  • Hero Member
  • *****
  • Beiträge: 631
Antw:Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.
« Antwort #2 am: Samstag, 16. November 2019, 15:03 »
Wenn die Änderungen größer oder komplexer sind, verwende
\set Score.repeatCommands = ...
wie in Manuelas link.

Möglicherweise reicht aber schon:
\override Score.VoltaBracket.font-name = "Purisa"

Allerdings ist der anfängliche default "1.--", hardcoded in volta-repeat-iterator.cc (wär ein context-property nicht besser?).
In diesem Fall kommt also "1.--3." für die erste Klammer raus.

Das doppelte "-" stört mich je nach Schriftart.
Also vielleicht doch besser gleich auf
\set Score.repeatCommands = ...
zuzugreifen.


Gruß,
  Harm

Chris

  • Newbie
  • *
  • Beiträge: 6
Antw:Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.
« Antwort #3 am: Samstag, 16. November 2019, 18:40 »
Oje, das klingt ja wesentlich komplizierter als erwartet. Das Doppelte "-" ist leider keine Option und das, was Manuela beschreibt, ganz schön umständlich - vor allem, wenn ich das über eine Layout-Datei eigentlich für mehrere Musikstücke einrichten möchte. Ich dachte, das müsste ein Standard-Anliegen vieler Lilypond-Nutzer sein, für das es einen Weg mit den üblichen Mitteln gibt.  :'(

harm6

  • Hero Member
  • *****
  • Beiträge: 631
Antw:Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.
« Antwort #4 am: Samstag, 16. November 2019, 20:40 »
Zitat
Oje, das klingt ja wesentlich komplizierter als erwartet. Das Doppelte "-" ist leider keine Option und das, was Manuela beschreibt, ganz schön umständlich - vor allem, wenn ich das über eine Layout-Datei eigentlich für mehrere Musikstücke einrichten möchte.
Deshalb mein Kommentar über das context-property. Und \set repeatCommands ist explizit für die manuelle Eingabe nicht für gerelles layout.

Aber wenns so nicht geht, dann muß man selbst ran:

\version "2.19.83"

#(define format-dash
  (lambda (grob)
    (let* ((text (ly:grob-property grob 'text))
           (splitted-text
             (if (string? text)
                 (string-split text #\-)
                 #f)))
      (if splitted-text
          (ly:grob-set-property! grob 'text
            (make-concat-markup
              (list-join
                (remove string-null? splitted-text)
                #{
                  \markup \concat { \hspace #0.3 - \hspace #0.3 }
                #})))))))
     
\layout {
  \context {
    \Score
    \override VoltaBracket.before-line-breaking = #format-dash
    \override VoltaBracket.font-name = "Comic Sans MS"
  }
}

\repeat volta 4 { R1 } \alternative { R R }

Natürlich kannst Du bei
\markup \concat { \hspace #0.3 - \hspace #0.3 }
auch anders Formatieren. Feel free.


HTH,
  Harm

EDIT code robuster und effizienter gestaltet
« Letzte Änderung: Samstag, 16. November 2019, 20:50 von harm6 »

Manuela

  • Sr. Member
  • ****
  • Beiträge: 418
    • Manuelas Wiki
Antw:Formatierung der Wiederholungs-Zahlen in einer Volta-Klammer.
« Antwort #5 am: Montag, 18. November 2019, 06:45 »
wenn ich das über eine Layout-Datei eigentlich für mehrere Musikstücke einrichten möchte. Ich dachte, das müsste ein Standard-Anliegen vieler Lilypond-Nutzer sein, für das es einen Weg mit den üblichen Mitteln gibt.  :'(

context-property wäre natürlich ideal. Als Vereinfachung beim derzeitigen Zustand könnte man die Anweisungen zu einer Variablen zusammenfassen, etwa so
\version "2.19.48"
\language "deutsch"

voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
voltaEnd = \markup  \text \italic \fontsize #2 { Fine }
startVolta = {       
\once \override Score.VoltaBracket.edge-height = #'(0 . 2)
\set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat)
}
endVolta =  {       
\once \override Score.VoltaBracket.edge-height = #'(2 . 0)
\set Score.repeatCommands = #(list (list 'volta voltaEnd) 'end-repeat)
}
Struktur = {
  \repeat volta 2
  s1
  \alternative
  {
    {
      \startVolta
      \bar "||"
      s1
    }
    {
      \endVolta
      s1
    }
  }
}

\new PianoStaff
<<
  \new Staff
  <<
    { \repeat unfold 8 \mus }
    \new NullVoice \Struktur
  >>
  \new Staff \repeat unfold 8 \mus
>>

\set Score.repeatCommands wirkt sich anscheinend nur genau dort aus, wo es verwendet wird, nicht auf nachfolgende Voltenklammern. Ich vermute mal, dass die Logik ähnlich wie bei den Oktavierungsspannern ist Muss Staff.ottavation tatsächlich nach jedem \ottava neu gesetzt werden?
Danke für eure Hilfe
viele Grüße
-- Manuela