Hi,
wie kriege ich das hin wie im Screenshot?
Wenn ich den Code wie in diesem Snippet (http://lsr.di.unimi.it/LSR/Item?id=470) anwende
csBracket = \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
\score{
\new PianoStaff \with { connectArpeggios = ##t } <<
\new Staff {
\arpeggioBracket c''1\arpeggio
\csBracket c'' \arpeggio
}
\new Staff << \clef bass
\new Voice { s1 < c e >\arpeggio }
\new Voice {
\arpeggioBracket c'1 \arpeggio
\csBracket c' \arpeggio
}
>>
>>
}
erhalte ich nur eine einzige eckige Verbindungsklammer. Ich bin ratlos.
Hallo Manuela,
du könntest hier schummeln:\version "2.21.0"
\language "deutsch"
csBracket = \tweak stencil #ly:arpeggio::brew-chord-bracket \etc
\score{
\new PianoStaff \with { connectArpeggios = ##t } <<
\new Staff {
c''1\arpeggio
\set PianoStaff.connectArpeggios = ##f
c''
-\csBracket
-\tweak positions #'(-6 . 0.5)
-\tweak Y-extent #'(0 . 0)
-\arpeggio
}
\new Staff <<
\clef bass
\new Voice { s1 < c e >\arpeggio }
\new Voice {
c'1 \arpeggio
c'
}
>>
>>
}
Den Wert -6 müßtest du aber zum Schluß, wenn alle Zeilenumbrüche etc. und damit die Abstände zwischen den Systemen feststehen, ggf. anpassen.
Vielleicht könnte man noch irgendwie was bauen, was den Abstand zwischen den Systemen rausfindet und die positions-Eigenschaft in der after-line-breaking-Eigenschaft setzen. Hab jetzt aber keine Zeit dafür, sorry ...
Danke, Malte. Ich habe jetzt eine andere Lösung gefunden, allerdings weiß ich noch nicht, wie ich die Klammer auf die Höhe der Note bringe
#(define-markup-command (openBracket layout props heitgh) (number?)
(interpret-markup layout props
(markup #:line (#:with-dimensions (cons 0 0) (cons 0 0)
(#:path 0.25
(list (list (quote moveto) 0 0)
(list (quote lineto) -1 0)
(list (quote lineto) -1 (* heitgh -1))
(list (quote lineto) 0 (* heitgh -1))))))))
\score{
\new PianoStaff <<
\new Staff {
c''1^\markup\openBracket #8
}
\new Staff << \clef bass
\new Voice { < c e >1\arpeggio }
\new Voice {
c'1
}
>>
>>
}
Hallo Manuela,
ich würde es wahrscheinlich eher wie unten machen.
Dann braucht man sich um den vertikalen Abstand keinerlei Sorgen machen, evtl müssen aber Vorzeichen verschoben werden, und die NoteColumn mit skalierter Dauer ebenfalls ein kleines bißchen.
Die notwendigen Werte ändern sich je nach layout aber leider auch mit dieser Methode.
csBracket = \override PianoStaff.Arpeggio.stencil =
#ly:arpeggio::brew-chord-bracket
\new PianoStaff \with { connectArpeggios = ##t }
<<
\new Staff
<<
\new Voice { \voiceOne e'4. }
\new Voice { \voiceTwo \once \csBracket cis'1\arpeggio }
>>
\new Staff
<<
\new Voice {
\voiceOne
\tweak Accidental.X-offset -2.2
fis1\arpeggio
}
\new Voice {
\clef bass
\voiceTwo
s1*1/100
\once \override NoteColumn.X-offset = -0.08
<ais,, ais,>1*99/100\arpeggio
}
>>
>>
Gruß,
Harm
Danke Harm für deine Idee. Eine gewagte Konstruktion :)
Leider lässt sich die vertikale Achse nicht nach links verschieben.
\version "2.19.82"
csBracket = \override PianoStaff.Arpeggio.stencil =
#ly:arpeggio::brew-chord-bracket
\new PianoStaff \with { connectArpeggios = ##t }
<<
\new Staff
<<
\new Voice { \voiceOne e'4. }
\new Voice { \voiceTwo \once \csBracket c'1\arpeggio }
>>
\new Staff
<<
\new Voice {
\voiceOne
\tweak Accidental.X-offset -2.2
f1\arpeggio
}
\new Voice {
\clef bass
\voiceTwo
s1*1/100
\once \override NoteColumn.X-offset = -1 % bleibt wirkungslos
<ais,, ais,>1*99/100\arpeggio
}
>>
>>
Hallo Manuela,
Zitat
Eine gewagte Konstruktion
Leider lässt sich die vertikale Achse nicht nach links verschieben.
Die NR sagt, daß Dein Vorhaben nicht möglich sei, deshalb der Versuch die Arpeggios zu verschiedenen Zeitpunkten zu setzen und dann eine Verschiebung zu erwirken.
In meinem Beispiel klappt es, in Deinem nicht.
Das ist also nicht der richtige Weg. Schade.
Da seh ich nur noch den Weg es zu faken.
Dein `openBracket´ geht ja in diese Richtung.
Gruß,
Harm
Ich habe jetzt eine einigermaßen zufriedenstellende Lösung gefunden, unter Einsatz des oft geschmähten extra-offset
\version "2.19.82"
#(define-markup-command (openBracket layout props heitgh) (number?)
(interpret-markup layout props
(markup #:line (#:with-dimensions (cons 0 0) (cons 0 0)
(#:path 0.25
(list (list (quote moveto) 0 0)
(list (quote lineto) -1 0)
(list (quote lineto) -1 (* heitgh -1))
(list (quote lineto) 0 (* heitgh -1))))))))
\score{
\new PianoStaff <<
\new Staff {
\once \override TextScript.extra-offset = #'(-0.5 . -2)
c''1^\markup\openBracket #6.5
}
\new Staff <<
\clef bass
\new Voice {
\once \override PianoStaff.Arpeggio.positions = #'(-2.2 . 1)
< e a, >1\arpeggio
}
\new Voice {
\voiceOne
c'1
}
>>
>>
}
Höhe der eckigen Klammer und Ausmaß der Verschiebung müssen natürlich individuell angepasst werden, aber besser als gar nix...