Le 21/12/2022 à 01:26, Abraham Lee a écrit :
> Is there a way to turn the stencil into a composite of the original
> with a big block of whiteout that follows the entire group's outer
> skyline so it hides the staff lines? Would be a nice feature, IMO. I
> know the stems can be "frenched", but would be cool if the staff lines
> could be instead.
This has become somewhat easier to do in 2.24 with the new skyline
functions.
\version "2.24"
\layout {
#(use-modules (ice-9 match)
(srfi srfi-1))
\context {
\Score
\override Beam.stencil =
#(grob-transformer
'stencil
(lambda (grob orig)
(define (sanitize lst)
(filter (match-lambda ((x . y) (and (finite? x) (finite? y))))
lst))
(match-let* (((down . up) (ly:skylines-for-stencil orig X))
(down-points (sanitize (ly:skyline->points down X)))
(up-points (sanitize (ly:skyline->points up X))))
(ly:stencil-add
(stencil-with-color
(ly:round-polygon
(append-reverse down-points up-points)
0.0)
"white")
orig))))
\override Stem.layer = 10
}
}
\language "english"
\relative {
\clef bass
\time 4/4
f8 g16 a b c df e f e df c b a g f |
e8 f16 g a b c df e df c b a g f e |
}
This is so cool! I am definitely going to have to try this out on more complicated stuff to see what I think. Could be my new go-to!
I have tried and tried (using after-line-breaking, yes I know, I shouldn't abuse that anymore...), but my Scheme chops are just not this good. All your recent solutions have me in awe. I definitely need more understanding of what you've done here. I've had many other ideas that I've wanted to implement, but never succeeded at.
Thanks for giving me hope,
Abraham