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 _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
