Hallo Trulli,
ich habe mal versucht meine stufenlose Einstellbarkeit des Striches in Deine Lagenwechsel-Definition einzubauen:
-\tweak #'text #(markup #:concat ( #:raise 0.5 #:draw-line '(-2 . -0.4) "3")) -3Mir persönlich gefällt es aber besser, wenn zwischen dem Strich und dem Fingersatz etwas Platz ist.
Also habe ich concat rausgenommen und stattdessen pad-to-box als variablen Platzschaffer eingeführt.
Auch habe ich die Definition aufgeteilt auf zwei Fingersatzangaben.
(<b-5-4\7\8> funktioniert zu meiner großen Überraschung.)
Den Platz hätte ich gerne, insbesondere wenn ich daran denke, daß noch ein Barré irgendwo hin soll, den ich am liebsten nach dem Führungsstrich und vor der Fingersatzzahl sehe.
(Anm.: #:box ist auskommentiert, dient nur der besseren Sichtbarkeit beim Einstellen der Werte)
-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(-2 . 0) '(0 . 0)
#:raise -0.5
#:draw-line '(-2 . -0.4)))
-3Mir ist es aber nicht gelungen einige weitere Verbesserungen umzusetzen:
- 1. Es würde Bearbeitungszeit sparen, wenn man in draw-line nicht die x/y-Koordinaten angäbe, sondern x-Koordinate und Winkel.
- 2. Es würde ebenfalls Zeit sparen und die Übersichtlichkeit der Datei verbessern, wenn man das ganze in eine scheme-Routine packen könnte.
- 3. Das überschreiben der StringNumber analog zum Überschreiben des fingering klappt nicht so ganz: Ich konnte den circle-Vorgang nicht abstellen.
Anbei noch ein Beispiel. Es mag als Pseudo-change-log und Anwendungstest dienen.
\version "2.12.3"
\pointAndClickOff
% Meine Barre-Definition. (brauch ich nur fürs testen)
bracketsArpTwo =
#(define-music-function (parser location ext transp)(pair? boolean?)
#{
\once\override Voice.Arpeggio #'stencil = #ly:text-interface::print
\once\override Voice.Arpeggio #'text = \markup { \stencil #(ly:bracket Y $ext 0.1 0.4) }
\once\override Voice.Arpeggio #'X-extent = #'( 0 . 0.2)
\once\override Voice.Arpeggio #'script-priority = #125 % default ist 0
\once\override Voice.Arpeggio #'transparent = #$transp
$(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
#})
\paper {
ragged-right = ##t
indent = 0
}
\relative c'' {
\clef "treble_8"
\set fingeringOrientations = #'(left)
%1
<b>8
<d-\tweak #'text
#(markup #:concat (
#:rotate 10
#:raise -0.4 "—" "3"))
-3
>
c2.^"Original Trulli"
\break
%2
<b-5-4\7\8>8
<d-\tweak #'text
#(markup #:concat (
#:raise 0.5
#:draw-line '(-2 . -0.4) "3"))
-3
>
c2.^"2. mit draw-line und concat"
\break
%3
b8
<d-\tweak #'text #(markup #:line (
#:raise 0.5
#:draw-line '(-2 . -0.4)
"3" ))
-3
>
c2.^"3. mit draw-line ohne concat"
\break
%4
b8
<d-\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(-3 . 0) '(0 . 0)
#:raise 0.5
#:draw-line '(-2 . -0.4)
"3" ))
-3
>
c2.^"4. mit draw-line und pad-to-box (um variablen Platz zu schaffen) ohne concat"
\break
%5
b8
\once\override Arpeggio #'extra-offset = #'(3 . 0)
\bracketsArpTwo #'(-1.5 . 6.5) ##f
<d-\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(-2 . 0) '(0 . 0)
#:raise 0.5
#:draw-line '(-2 . -0.4)
"3" ))
-3
>
c2.^"5. Dieselbe Funktion plus barré"
\break
%6
b8
<d-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(-2 . 0) '(0 . 0)
#:raise -0.5
#:draw-line '(-2 . -0.4)))
-3
>
c2.^"6. Dieselbe Funktion aufgeteilt! (raise-Wert ändert sich !)"
\break
%7
b8
\once\override Arpeggio #'extra-offset = #'(3 . 0)
\bracketsArpTwo #'(-1.5 . 6.5) ##f
<d-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(-2 . 0) '(0 . 0)
#:raise -0.5
#:draw-line '(-2 . -0.4)))
-3
>
c2.^"7. Dieselbe Funktion (aufgeteilt) plus barré"
\break
%8
\set fingeringOrientations = #'(right)
b8
<d-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(0 . 2.2) '(0 . 0)
#:raise 1
#:draw-line '(2 . 0.7)))
-3
>
<f-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(0 . 2.2) '(0 . 0)
#:raise -1.3
#:draw-line '(2 . -1)))
-3
>2.^"8. Dieselbe Funktion (aufgeteilt) nach rechts plus Zeilenumbruch"
\break
%9
\set fingeringOrientations = #'(left)
<d-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(0 . 0) '(0 . 0)
#:raise -1.2
#:draw-line '(-2 . -0.7)))
-3
>1
\break
%10
\set fingeringOrientations = #'(right)
\set stringNumberOrientations = #'(right)
b8
<d-3 -\tweak #'text #(markup #:line (
;#:box
#:pad-to-box `(0 . 2.2) '(0 . 0)
#:raise -1
#:draw-line '(2 . 0.7)))
\7
>
<f-3
-5
>2.^"9. Dieselbe Funktion als Stringnumber-Ersetzung"
}Im Anhang noch das Bild dazu.
Gruß,
Harm