[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