lilypond-devel
[Top][All Lists]
Advanced

[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.

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]