MultiMeasureRest Darstellung in Kadenz

Begonnen von chf, Mittwoch, 25. Oktober 2017, 19:26

« vorheriges - nächstes »

chf

\
version "2.18.2"
\relative c' {
\override Score.TimeSignature.stencil = #'()
\cadenzaOn
\override MultiMeasureRest.expand-limit = #0
\override MultiMeasureRest.minimum-length = #20
r1*6/4 c4 d c f c c' bes f
\override MultiMeasureRest.expand-limit = #0
\override MultiMeasureRest.minimum-length = #20
r1*7/4 \cadenzaOff
}


Liebe Freunde,

in einer mehrstimmigen Kadenz möchte ich gerne die "Freiräume" mit  einem ordentlichen Balken füllen.
Ist das ein erfüllbarer Wunsch?
Ein ungefähres, noch unfertiges Bild hängt an...

Gruß
Christa

harm6

Du kannst keine MultiMeasureRest in einer Kadenz verwenden. Eine MehrTaktPause in einem Abschnitt zu verwenden in dem keine Takte da sind ist nicht möglich und wäre auch widersinnig.
Dein Code-Beispiel zeigt auch keine.
LilyPond differenziert zwischen einfachen Pausen, deren Länge frei wählbar ist und MehrTaktPausen, die immer einen Takt lang sind (oder vielfaches von einem Takt)

Falls Du solch einen "Balken" haben willst so mußt Du es faken.

Schnell zusammen gekloppt und auf den TextSpanner geschmissen:


\version "2.18.2"

#(define (my-stil grob)
  ;; TODO
  ;; take values from grob-properties, grob-layout etc
  ;; check calculations
  ;; support line-break?
  (let* ((stil-ext
           (interval-widen
             (ly:stencil-extent (ly:line-spanner::print grob) X)
             (ly:grob-property grob 'bound-padding 0)))
         (thick-thick 1)
         (hair-thick 0.1)
         (staff-space 1)
         (line-thick 1) ;; slt 0.1
         (width (max 3 (interval-length stil-ext)))
         (y-thick (* line-thick staff-space))
         (y  (* (/ (* 0.75 thick-thick) 2) staff-space))
         (x-ext (cons 0 (max 0 (* (- width 2) y-thick))))
         (y-ext (cons (- y) y))
         (blot 0)
         (b (ly:round-filled-box x-ext y-ext blot))
         (yb (ly:round-filled-box (cons -0.1  0.1)
                                  (cons (- staff-space) staff-space) blot)))
 
    (ly:stencil-translate-axis
      (ly:stencil-aligned-to
        (ly:stencil-combine-at-edge   
          (ly:stencil-combine-at-edge
            b X RIGHT yb 0)
          X LEFT yb 0)
        Y CENTER)
      (car stil-ext)
      X)))
   

{
  \time 4/4
  \cadenzaOn
  \override TextSpanner.bound-padding = -1.5
  \override TextSpanner.Y-offset = #'()
  \override TextSpanner.outside-staff-priority = #'()
  \override TextSpanner.stencil = #my-stil
  \override TextSpanner.bound-details.left.padding = #3
  \override TextSpanner.bound-details.right.padding = #0
  \hide Rest
  c''1\startTextSpan
  r1*8
  c''1\stopTextSpan
}


Gruß,
  Harm

chf

Hallo Harm,

wunderbar - danke! Ich kann dich  und alle anderen Nothelfer nur bewundern.

Gruß
Christa