Ich hatte mal einen Ansatz gefunden, die Taktzahlen zu erweitern:
Changing the bar-number string.
Die Hauptprobleme sind (a) dass Lily den Wert der Taktnummer dynamisch bestimmt, weswegen (b) dieser Wert
vor dem Aufruf ermittelt, dann geändert und anschließend zurückgespeichert werden muss, und (c)
barNumber vom Typ
integer (Ganzzahl) ist (wodurch
\set Score.currentBarNumber = #15a eben nicht funktioniert).
Das Beispiel aus der englischen Liste klappt also ganz gut, um Taktzahlen bspw. einzuklammern, indem der BarNumber-
stencil überschrieben wird.
Zunächst wird der neue
stencil definiert:
#(define (bis-bar-number BarNumber)
"Append bis to the bar number."
(let* (
; Set barNumber to the current value
(barNumber (ly:grob-property BarNumber 'text))
; Append " bis" to it
(bisBarNumber (string-append barNumber " bis")))
; Store the new value back
(ly:grob-set-property! BarNumber 'text bisBarNumber))
; and print it
(ly:text-interface::print BarNumber))
Die entscheidende Zeile ist Zeile 7, in der man die anzufügenden Zeichen (per
string-append) definieren kann. Um Taktzahlen z.B. einzuklammern, ändert man die Zeile in
(bisBarNumber (string-append "(" barNumber ")")))Anschließend wird der
stencil ab der gewünschten Stelle ersetzt:
\override Score.BarNumber #'stencil = #bis-bar-numberEs wäre jetzt aber all zu mühselig, für jede einzelne Taktzahl einen eigenen Stencil zu schreiben. Vielleicht findet sich jemand, der mit dieser Scheme-Vorlage mehr als ich etwas anfangen und anpassen kann?
Viele Grüße, Robert