Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Olaf am Dienstag, 26. Mai 2015, 15:05

Titel: SATB Voltenklammer vertikal spiegeln
Beitrag von: Olaf am Dienstag, 26. Mai 2015, 15:05
Hallo!

Nach vielem Suchen im LSR und in diesem Forum frage ich hier an:

Lassen sich Nummern oder Beschriftungen von Voltenklammern in die Klammer verschieben, wenn diese unterhalb eines Systems angeordnet werden?
Meine Versuche mittels VoltaBracket.direction änderten nur die Richtung der Begrenzungslinien, nicht jedoch die Lage der Beschriftung. Das Ergebnis ist in der ersten Grafik zu sehen.
Mein "Wunschergebnis" ist in der zweiten beigefügten Grafik dargestellt.

\version "2.18.0"

\new StaffGroup <<
\new Staff \with { \consists "Volta_engraver" } <<
\new Voice { \voiceOne \relative c' { \repeat volta 2 { d8 d4 f8 g4 f } \alternative { { b4 b\rest b\rest b\rest } { b4 b\rest b\rest c8 b } } a8 a4 a8 g a g4 } }
\new Voice { \voiceTwo \relative c' { \repeat volta 2 { r4 b-. r a-. } \alternative { { d s s s } { d s s a'8 g } } f8 f4 f8 e f e4 } }
>>
\new Staff \with { \consists "Volta_engraver" } <<
\override Staff.VoltaBracket.direction = #DOWN
\override Staff.VoltaBracket.extra-offset = #'(0.0 . -14.0)
\clef F
\new Voice { \voiceThree \relative c' { \repeat volta 2 { r4 b-. r c-. } \alternative { { b-. r r r } { b-. r r d,\rest } } r c'-. r b-. } }
\new Voice { \voiceFour \relative c { \repeat volta 2 { b-. f'-. f,-. f'-. } \alternative { { b,-. f-. g-. a-. } { b-. f-. b-. s } } f-. f'-. g,-. g'-. } }
>>
>>

\layout { indent = #0 \context { \Score \remove "Volta_engraver" } }


(http://jg-koenigswartha.de/grafik/vunschoen.png) (http://jg-koenigswartha.de/grafik/vschoen.png)

Wahrscheinlich braucht es eine gekonnte Manipulation über das text-interface von VoltaBracket oder VoltaBracketSpanner. Wer weiss etwas dazu?

Olaf

Titel: Re: SATB Voltenklammer horizontal spiegeln
Beitrag von: harm6 am Dienstag, 26. Mai 2015, 18:25
Hallo Olaf,

herzlich willkommen im Forum.

Ich hab' mal den Code unten geschrieben, aber er ist so hackisch, daß er Dir höchstwahrscheinlich um die Ohren fliegt sobald Du ihn schief ansiehst.
Insoweit poste ich ihn zwar hier, hab aber direkt eine Frage auf der internationalen Liste gestellt.
http://lists.gnu.org/archive/html/lilypond-user/2015-05/msg00720.html (http://lists.gnu.org/archive/html/lilypond-user/2015-05/msg00720.html)
Mal sehen was dabei rauskommt ...


\version "2.19.20"

\layout {
  indent = #0
  \context { \Score \remove "Volta_engraver" }
}

\new Staff \with {
  \consists "Volta_engraver"
  \override VoltaBracket.direction = #DOWN
  \override VoltaBracketSpanner.direction = #DOWN
 
  \override VoltaBracket.after-line-breaking =
  #(lambda (grob)
    (let* ((default-stil (ly:volta-bracket-interface::print grob))
           (x-ext (ly:stencil-extent default-stil X))
           (y-ext (ly:stencil-extent default-stil Y))
           (stencil-expr (ly:stencil-expr default-stil)))
     
    (ly:grob-set-property! grob 'stencil
      (ly:make-stencil
        (cons 'combine-stencil
          (cons
            (append
              (list 'translate-stencil '(0 . 2.3))
              (list (cadr (third stencil-expr ))))
            (cddr (third stencil-expr))))
           
       x-ext
       y-ext))))
}

%%%%%%%%%%%%%%%%
%% EXAMPLE
%%%%%%%%%%%%%%%%
 
\relative c' {
  \repeat volta 2 { c1 }
  \alternative {
    { c }
    { c }
  }
  c
}

Gruß,
 Harm