lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Move episema vertically


From: David Nalesnik
Subject: Re: Move episema vertically
Date: Tue, 8 Oct 2013 16:35:32 -0500

Hi Ben,


On Tue, Oct 8, 2013 at 2:32 PM, Ben Hillen <address@hidden> wrote:
Hi,

Who can help me? I want to vertically move the episema above the beam,
preferably automatically coupled to the vertical and if possible also
horizontally to the horizontal beam position.

Well, the issue with the Y positioning is not heard to deal with.  You just need to give Episema an outside-staff-priority.  Unfortunately, it always appears above the staff, so you have do override 'direction if you want it below the staff when the beam is down.

Alternatively, you could override 'Y-offset, but that's a matter of guesswork.

The issue with the X positioning is more difficult.  I've hacked up something below.  It should work unless you try to beam over an initial rest, or break the beam across lines.

Don't know why it shouldn't work with 2.16 (which I haven't got installed at the moment.)

HTH,
David


%%%%%%%%%%%%%%%%%%%

\version "2.17.27"

 \include "gregorian.ly"

#(define modify-episema-X
  (lambda (grob)
    (let* ((refp (ly:grob-system grob))
           (note-head (ly:spanner-bound grob LEFT))
           (stem (ly:grob-object note-head 'stem))
           (beam (ly:grob-object stem 'beam))
           (beam-ext-X (ly:grob-property beam 'X-positions))
           (left-bound-info (ly:grob-property grob 'left-bound-info))
           (right-bound-info (ly:grob-property grob 'right-bound-info)))
      (set! (ly:grob-property grob 'left-bound-info)
            (cons (cons 'X (car beam-ext-X)) left-bound-info))
      (set! (ly:grob-property grob 'right-bound-info)
            (cons (cons 'X (cdr beam-ext-X)) right-bound-info)))))

 \new Voice \with { \consists "Episema_engraver"}  {
   \revert Score.SpacingSpanner #'packed-spacing
   \override Episema #'after-line-breaking = #modify-episema-X
   \override Episema #'outside-staff-priority = #0
   a'8 [b' a']
   a'8\episemInitium  [b' a'] \episemFinis
 }


reply via email to

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