Hi all, See herewith the structure I'd like to achieve. Ideally, I'd like the startBar to be dashed. This coding: http://lilypond.1069038.n5.nabble.com/dashed-initial-barline-with-SystemStartBar-td51231.html works great until I add \RemoveEmptyStaves which gives an error. Any idea? TIA, cheers, Pierre
\version "2.19.84"
#(define (make-round-filled-box x1 x2 y1 y2 blot-diameter)
(ly:make-stencil (list 'round-filled-box (- x1) x2 (- y1) y2 blot-diameter)
(cons x1 x2)
(cons y1 y2)))
#(define-public (make-dashed-system-start-bar grob extent thickness)
(let* ((blot (ly:output-def-lookup (ly:grob-layout grob) 'blot-diameter))
(line-thickness (ly:staff-symbol-line-thickness grob))
(staff-space (ly:staff-symbol-staff-space grob))
(height (interval-length extent))
(gap (ly:grob-property grob 'gap 0.5))
(dash-size (- 1.0 gap))
;(num (ceiling (/ (* 1.5 height) (+ dash-size staff-space))))
(num (ceiling height))
(factors
(map
(lambda (x) (* x dash-size))
(iota (* 2 (- num 2)))))
(scaling (/ (- (+ height line-thickness) (* 3.0 dash-size))
(car (reverse factors))))
(stencil
(ly:stencil-add
(ly:stencil-translate-axis
(make-round-filled-box 0 thickness
(/ dash-size -2) 0 blot)
(+ (interval-end extent)(* 0.5 line-thickness))
Y)
(ly:stencil-translate-axis
(make-round-filled-box 0 thickness 0
(/ dash-size 2) blot)
(- (interval-start extent) (* 0.5 line-thickness))
Y))))
(define (helper args)
(set! stencil
(ly:stencil-add
stencil
(ly:stencil-translate-axis
(make-round-filled-box 0 thickness
(car args) (cadr args) blot)
(+ (* 1.5 dash-size) (- (interval-start extent) (* 0.5 line-thickness)))
Y)))
(if (null? (cddr args))
stencil
(helper (cddr args))))
(set! factors (map (lambda (x) (* scaling x)) factors))
(if (zero? num)
empty-stencil
(helper factors))))
dashedStart = \override Score.SystemStartBar.stencil =
#(lambda (grob)
(let*((stencil (ly:system-start-delimiter::print grob))
(stencil-y-extent (ly:stencil-extent stencil Y))
(line-thickness (ly:staff-symbol-line-thickness grob))
(new-stencil-extent (interval-widen stencil-y-extent (* -0.5 line-thickness)))
(thickness (ly:grob-property grob 'thickness))
(grob-thickness (* line-thickness thickness)))
(make-dashed-system-start-bar grob new-stencil-extent grob-thickness)))
\score {
<<
\new Staff { \repeat volta 2 { \repeat unfold 5 { 1 \break } 1 } 1\bar "|." }
\new Staff { \repeat unfold 3 c'1 s1*4 }
>>
\layout {
%\daschedStart %% <= uncomment here gives error
\context {
\Staff
\RemoveEmptyStaves
}
}
}
dashed_pps.pdf
Description: Adobe PDF document
