lilypond-user
[Top][All Lists]
Advanced

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

Re: Kievan_ligature_engraver for normal staff


From: Svetlana Lobanova
Subject: Re: Kievan_ligature_engraver for normal staff
Date: Thu, 16 Jun 2016 13:42:32 +0300

Thomas, thaks a lot! Your workaround is wery interesting and fits for simple 
cases.

Now I thought carefully about all complex examples which are not fixed this way.
1) Eights (rare) and sixteens (wery specific use, there is even no special sign 
for a single sixteenth note in kievan scores) have beams and flags, which also 
should be shifted. 
2) Dotted notes should have shifted dots.
3) Sometimes I use \prall and it also is not in place this way.

Looking at all of these I wonder if we have to move all of them forwards or 
just move a noteheads and slurs backwards?

Also, could we use the fix only inside ligatures and not outside of them? In 
ideal case I wouldn't put single notes inside ligature brackets, and there is 
no problem with shifted notes ouside of ligatures already.

Two problems with eights/sixteenths are not from your workaround, but are 
annoying as well. 
1) Flag on a single eight note is missing inside kievan ligature and lilypond 
makes a warning: flag `flags.d2' not found. It could be placed there with no 
extra spacing and would look alright.
2) In kievan staff itself we have a known bug 
https://sourceforge.net/p/testlilyissues/issues/3272/ with $100 bounty with 
beamed eights, tey look good if ligature brackets are skipped.

I attach an example of most issues without and with ligature brackets
1) without your fix
2) with your fix
3) original kievan staff


\version "2.18.2"

melodyI = \relative c'
{
  \cadenzaOn
  e8 (f4) e8 [e8] f4. (e8)  e8 \prall (f16 e4) f16 [f16] e2. (f4) \bar"|"
  \[e8 (f4)\] \[e8 [e8]\] \[f4. (e8)\]  \[ e8 \prall ( f16 e4)\] \[f16 [f16]\] 
\[e2. (f4)\] \bar"|"
}

\score{
  <<
    \new Staff = slavonic << \new Voice = "one" {\melodyI}  >>
  >>
  \layout {
    \context {
      \Voice
      \remove "Ligature_bracket_engraver"
      \consists "Kievan_ligature_engraver"

    }
  }
}

\score{
  <<
    \new Staff = slavonic << \new Voice = "one" {\melodyI}  >>
  >>
  \layout {
    \context {
      \Voice
      \remove "Ligature_bracket_engraver"
      \consists "Kievan_ligature_engraver"

      \override NoteHead.stem-attachment = ##f
      \override NoteHead.after-line-breaking =
      #(lambda (grob)
         (if (> (ly:grob-property (ly:grob-object grob 'stem) 'direction) 0)
             (ly:grob-set-property! (ly:grob-object grob 'stem) 'extra-offset
               (cons
                (interval-length (ly:grob-extent grob grob X))
                (cdr (ly:note-head::calc-stem-attachment grob))))))
    }
  }
}

\score{
  <<
    \new KievanStaff = slavonic << \new KievanVoice = "one" { \melodyI} >>
  >>
}

-- 
Best wishes,
Svetlana 



reply via email to

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