[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GSoC 2020: blot diameter and positioning of flags
From: |
Martin Neubauer |
Subject: |
Re: GSoC 2020: blot diameter and positioning of flags |
Date: |
Fri, 7 Aug 2020 03:11:08 +0200 |
User-agent: |
Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 06/08/2020 22:57, Owen Lamb wrote:
> Sure! I've lined the stems up with a staff line for clarity and included
> Frescobaldi's display-grob-anchors.ily, slightly modified to make sure the
> anchor dots don't dwarf the actual grobs. As you can see, Bravura's flags
> are expected to be anchored exactly at the stem's top-left corner, while
> Emmentaler's are moved far enough down to steer clear of the rounded
> corners. (At the moment, I'm having all flags attach to the left edge of
> the stem, as per SMuFL specs. This isn't ideal, of course, given
> LilyPond's customizable stem width; hopefully the minimalStems distinction
> would fix it.) Is this satisfactory?
>
On a somewhat tangential note, I handled that issue (with the old font
loading mechanism) in the style-sheet:
====
flag-stems =
\override Flag.before-line-breaking =
#(lambda (grob)
(let* ((stem-grob (ly:grob-parent grob X)))
(let ((new-length (- (ly:grob-property stem-grob 'length) 1))
(offset (ly:flag::calc-y-offset grob)))
(ly:grob-set-property! stem-grob 'length new-length)
(ly:grob-set-property! grob 'Y-offset (+ offset
(if (= DOWN
(ly:grob-property stem-grob 'direction))
-0.5
0.5)))
)
))
shorten-stems =
\override Stem.before-line-breaking =
#(lambda (grob)
(if (and (null? (ly:grob-object grob 'beam))
(not (null? (ly:grob-object grob 'flag))))
(let ((new-length (- (ly:grob-property grob 'length) 1)))
(ly:grob-set-property! grob 'length new-length))))
\layout {
\context {
\Staff
\flag-stems
\shorten-stems
}
}
====
The approach you suggested seems to be the proper way to handle the
issue, but it might be less of a showstopper after all.
Keep up the good work,
Martin
--
Record drums. Send band on cruise.
signature.asc
Description: OpenPGP digital signature