This one is a little better.
- Mark


      
\version "2.13.0"

#(define (whiteout-clef-stil grob)
   (let* ((x-pad 0.3)
          (this-stil (ly:clef::print grob))
          (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) x-pad)
                           (+ (cdr stil-x-ext) x-pad)))
          (box-y-ext stil-y-ext)
          (box-w (- (cdr box-x-ext) (car box-x-ext)))
          (box-h (- (cdr box-y-ext) (car box-y-ext)))
          )
     (ly:grob-set-property! grob 'stencil
      (ly:stencil-add
       (ly:make-stencil
        (list 'embedded-ps
         (ly:format
          (string-append "gsave\n"
                         "currentpoint translate\n"
                         "1 setgray\n"
                         "~a ~a ~a ~a rectfill\n"
                         "grestore\n")
          (car box-x-ext)
          (car box-y-ext)
          box-w
          box-h))
        stil-x-ext
        stil-y-ext)
       this-stil))))

#(define (whiteout-time-signature-stil grob)
   (let* ((x-pad 1)
          (this-stil (ly:time-signature::print grob))
          (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) x-pad)
                           (+ (cdr stil-x-ext) x-pad)))
          (box-y-ext stil-y-ext)
          (box-w (- (cdr box-x-ext) (car box-x-ext)))
          (box-h (- (cdr box-y-ext) (car box-y-ext)))
          )
     (ly:grob-set-property! grob 'stencil
      (ly:stencil-add
       (ly:make-stencil
        (list 'embedded-ps
         (ly:format
          (string-append "gsave\n"
                         "currentpoint translate\n"
                         "1 setgray\n"
                         "~a ~a ~a ~a rectfill\n"
                         "grestore\n")
          (car box-x-ext)
          (car box-y-ext)
          box-w
          box-h))
        stil-x-ext
        stil-y-ext)
       this-stil))))
         
whiteoutClefs = {
  \override Slur #'layer = #-2
  \override Staff.Clef #'avoid-slur = ##f
  \override Staff.Clef #'layer = #-1
  \override Staff.Clef #'stencil = #whiteout-clef-stil
}

normalClefs = {
  \revert Slur #'layer
  \revert Staff.Clef #'avoid-slur
  \revert Staff.Clef #'layer
  \revert Staff.Clef #'stencil
}

whiteoutTimeSignatures = {
  \override Slur #'layer = #-2
  \override Tie #'layer = #-2
  \override Staff.TimeSignature #'avoid-slur = ##f
  \override Staff.TimeSignature #'layer = #-1
  \override Staff.TimeSignature #'stencil =
    #whiteout-time-signature-stil
}

normalTimeSignatures = {
  \revert Slur #'layer
  \revert Tie #'layer
  \revert Staff.TimeSignature #'avoid-slur
  \revert Staff.TimeSignature #'layer
  \revert Staff.TimeSignature #'stencil
}

\markup "whiteoutClefs:"
{
  \whiteoutClefs
  \clef bass e2. d4(
  \clef treble c''4) c''2.
}

\markup "whiteoutTimeSignatures:"
{
  \whiteoutTimeSignatures
  c''2. b'4^"(tie)"~
  \time 3/4 b'2 f'4^"(slur)"(
  \time 2/4 b'2)
  
}

\markup "both:"
{
  \whiteoutClefs
  \whiteoutTimeSignatures
  \clef bass d2. d4(
  \clef treble \time 3/4 e'4) e'2
}

<<attachment: white-border_01.png>>

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to