Autor Thema: Haltebogen nur in Klammer zwei  (Gelesen 4203 mal)

eluze

  • Member
Re: Haltebogen nur in Klammer zwei
« Antwort #15 am: Montag, 20. Mai 2013, 22:50 »
hallo Christa

ist ja klar - die volta-klammer ist über dem ersten systen (staff) und bis zum zweiten geht's natürlich ganz weit hinunter!

ich habe deinen code (nach korrekturen >:( ) mit #'(-8 . -30) ersetzt und es funktioniert wieder. (probier mal den trick von Torsten mit .9 setgray aus, damit du siehst wieviel es eigentlich braucht)

alternativ könntest du auch die volta-klammer aus dem Scor in den Staff context versetzen (und transparent machen) und wieder mit normaleren zahlen operieren

Eluze

Be-3

  • Member
Re: Haltebogen nur in Klammer zwei
« Antwort #16 am: Montag, 20. Mai 2013, 22:59 »
die Freude ist getrübt. Warum funktioniert die Geschichte wunderbar in dem einstimmigen Beispiel,
nicht aber im vierstimmigen Satz?

Liebe Christa,

laß die Freude nicht getrübt sein, Pfingsten ist noch nicht vorbei und die Erleuchtung kommt bestimmt noch. ;)
Im vierstimmigen Satz war Dein "weißes Rechteck" einfach nicht weit genug nach unten ausgedehnt - deshalb wurde der Bogen nicht wie gewünscht verdeckt.
Im Gegensatz dazu war es aber so hoch, daß es stattdessen das System darüber "mit erwischt" hat.

Ich habe, um das zu illustrieren, das weiße Recheck grau eingefärbt und somit kenntlich gemacht. Links Deine Variante, rechts meine Veränderung (siehe Bild im Anhang).

Das entsprechend geänderte Coding:

\version "2.16.1"
\paper {
#(layout-set-staff-size 17.3)
%page-count = 1
%system-count = #2
        indent = #0
        top-margin = #14
        inner-margin = #14
        outer-margin = #18
        two-sided = ##t
        %bottom-margin = #23
        ragged-last-bottom = ##t
        ragged-right = ##f
        %ragged-last = ##t
        tagline = ##f       
        %first-page-number = #3
        print-page-number = ##f
        print-first-page-number = ##t
        oddHeaderMarkup = \markup \fontsize #2 \fill-line { \null \on-the-fly #not-first-page  \fromproperty #'page:page-number-string }
        evenHeaderMarkup = \markup \fontsize #2 \fill-line { \fromproperty #'page:page-number-string \null }
}

                             
rochade = \once \override Score.BreakAlignment #'break-align-orders =
  #(make-vector  3
    '(left-edge
      ambitus
      breathing-sign
      clef
      time-signature
      staff-bar
      key-cancellation
      key-signature
      custos))
padTsBar = \once \override Score.TimeSignature #'space-alist = #'(
      (first-note fixed-space . 2.0)
      (right-edge extra-space . 0.5)
      (staff-bar minimum-space . 3.0))
raus = \once \override DynamicText #'extra-offset = #'(+1.0 . -0.0)

ignore = \override NoteColumn #'ignore-collision = ##t








\markup \fill-line \bold \fontsize #2.5 { "168. Du hast uns, Herr, gerufen"  \null \null }
\markup \fill-line { }
\markup \fill-line { }

upper = \relative c' { 
  \clef treble
  \key f \major
  \time 2/2
\override Score.BarNumber #'transparent = ##t
\override Score.BarLine #'hair-thickness = #1.425
\override Score.BarLine #'thick-thickness = #4.5
%\override Score.BarLine #'transparent = ##t
%\override Score.TimeSignature #'stencil = #'()


\overrideProperty #"Score.NonMusicalPaperColumn"
     #'line-break-system-details #'(
                                           (alignment-distances . (13)))
\numericTimeSignature
<<{\partial 4 d4 d e f g a2 a4 a bes bes c c a2. \bar ":|" \repeat volta 2 {a4 a a d d
  \break
\overrideProperty #"Score.NonMusicalPaperColumn"
     #'line-break-system-details #'(
                                            (alignment-distances . (13))) 
   
     c2 a4 a f2} \alternative {{g2 | a2.}{ d,2 | d1}}
    \break
\overrideProperty #"Score.NonMusicalPaperColumn"
     #'line-break-system-details #'(
                                            (alignment-distances . (13)))   
   
 
   
   }\\   
   {a4 d2. e4 f e d f~f2 g4. f8 e2. e4 f2 a4 g a g f2~f4 e d f e2. d4 bes a1 }>>
  \revert Score.BarLine #'transparent \bar "|."
}
% LSR In 2_13_0 and earlier, the following
% LSR warning may be triggered multiple times:
% LSR  warning: Ignoring grob for slur: <grob>. avoid-slur not set?
% LSR This issue has been resolved in 2_13_1

#(define (parse-grob-sym grob-sym)
   (let* ((grob-str (symbol->string grob-sym))
          (dot-index (string-index grob-str #\.))
          (context (if dot-index
                       (string-take grob-str dot-index)
                       "Voice"))
          (grob (if dot-index
                    (substring grob-str (+ dot-index 1))
                    grob-str)))
     (cons context grob)))

hideCurvesFrom =
#(define-music-function
   (parser location grob-sym x-padding y-padding)
   (symbol? pair? pair?)
   (let* ((context (car (parse-grob-sym grob-sym)))
          (top-grob (cdr (parse-grob-sym grob-sym))))
     #{
        \override Tie #'layer = #-2
        \override Slur #'layer = #-2
        \override PhrasingSlur #'layer = #-2

        \override $context . $top-grob #'avoid-slur = #'ignore
        \override $context . $top-grob #'layer = #-1
        \override $context . $top-grob #'stencil =
        #(lambda (grob)
           (define (get-stil-proc alist)
             ;; removes the first 'stencil entry from the grob-property
             ;; alist, implicitly created by this callback:
             ;;   (stencil . #<procedure #f (grob)>)
             ;; and then retrieves the original 'stencil procedure.
             (let ((stil-proc (ly:assoc-get 'stencil alist)))
               (if (procedure-name stil-proc)
                   stil-proc
                   (begin (set! alist (assoc-remove! alist 'stencil))
                          (get-stil-proc alist)))))
           (let* ((basic-props (ly:grob-basic-properties grob))
                  (stil-proc (get-stil-proc basic-props))
                  (this-stil (stil-proc grob)))
              (if (ly:stencil? this-stil)
                  (let* ((stil-x-ext (ly:stencil-extent this-stil 0))
                         (stil-y-ext (ly:stencil-extent this-stil 1))
                         (box-x-ext (cons (- (car stil-x-ext) (car x-padding))
                                          (+ (cdr stil-x-ext) (cdr x-padding))))
                         (box-y-ext (cons (- (car stil-y-ext) (car y-padding))
                                          (+ (cdr stil-y-ext) (cdr y-padding))))
                         (box-w (- (cdr box-x-ext) (car box-x-ext)))
                         (box-h (- (cdr box-y-ext) (car box-y-ext))))
                    (ly:stencil-add
                     (ly:make-stencil
                      (list 'embedded-ps
                            (ly:format
                             (string-append "gsave\n"
                                            "currentpoint translate\n"
                                            "1 setgray\n"
                                            "~4f ~4f ~4f ~4f rectfill\n"
                                            "grestore\n")
                             (car box-x-ext)
                             (car box-y-ext)
                             box-w
                             box-h))
                      stil-x-ext
                      stil-y-ext)
                     this-stil))
                  '())))
     #}))

revertHideCurvesFrom =
#(define-music-function (parser location grob-sym) (symbol?)
   (let ((context (car (parse-grob-sym grob-sym)))
         (top-grob (cdr (parse-grob-sym grob-sym))))
     #{
        \revert Tie #'layer
        \revert Slur #'layer
        \revert PhrasingSlur #'layer
        \revert $context . $top-grob #'avoid-slur
        \revert $context . $top-grob #'layer
        \revert $context . $top-grob #'stencil
     #}))


lower = \relative c {
  \clef bass
  \key f \major
\numericTimeSignature
<<{f4 g2 bes c f,4 e d d' a b cis2. cis!4 d2. e4~e a,2 c4~
 
   
    c
    \set tieWaitForNote = ##t
    \hideCurvesFrom #'Score.VoltaBracket #'(-0.2 . 0.2) #'(14 . -14)
    \tieUp a~   
     bes d | cis2.
     \revertHideCurvesFrom #'Score.VoltaBracket     
       \set Timing.measurePosition = #(ly:make-moment 2 4) 
       a4 g | fis1
   
  } 
\\
  {d4 bes2 g d'4 c bes a g2 e a2. a4 d c bes2 c d~d4 c bes e, a2. bes4 c d1 }>>
  \revert Staff.BarLine #'transparent \bar "|."
}
music = {               
  \new StaffGroup \with {   
    \override StaffGrouper #'staff-staff-spacing #'basic-distance = #3
    \override StaffGrouper #'staff-staff-spacing #'stretchability = #30
    \override ScoreSystem-System-Spacing #'basic-distance = #100
    %\override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #7                             
                         }
                     
           <<
                \new Staff <<\upper >>
                \new Staff <<\lower >>
        >>

}
\score {
   \music
   
\midi {
                \context {
                        \Score
                        tempoWholesPerMinute = #(ly:make-moment 110 4)
                } 
              }
 
              \layout { }
}
\markup "Kurt Rommel, 1967"

Mit dem rechten und linken Padding (der erste Pair-Parameter) kannst du durch leichte Anpassungen erreichen, daß mehr oder weniger vom Bogen sichtbar wird.

Viele Grüße
Torsten

PS: Ah, Eluze ist mir zuvorgekommen. :)
Dann mußt Du ja jetzt quasi eine Doppel-Erleuchtung haben ;)
« Letzte Änderung: Montag, 20. Mai 2013, 23:02 von Be-3 »