While probably not directly related, would something like this affect
a bug I haven't gotten around to adding to the tracker? See
http://lists.gnu.org/archive/html/lilypond-user/2010-03/msg00508.html
and
http://lists.gnu.org/archive/html/lilypond-user/2009-12/msg00507.html
On 04.04.2010, at 11:46, Nicolas Sceaux wrote:
Hi,
While working on a scheme engraver for adding harpsichord
ornementations
to note heads, I'd like to be able to shift accidentals or dots
attached
to notes.
Is it OK to add this `lily/note-column-scheme.cc' file?
<note-column-scheme.patch>
It makes it possible to access dot-column and accidentals from a note
column, so that one can modify their placement, like in this
customized
parenthesis engraver:
\version "2.13.18"
#(define (parenthesize-engraver-acknowledge-note-head engraver note-
grob source-engraver)
(let* ((note-event (ly:grob-property note-grob 'cause)))
(if (eqv? #t (ly:event-property note-event 'parenthesize))
(let ((paren (ly:engraver-make-grob engraver
'ParenthesesItem note-grob)))
(ly:pointer-group-interface::add-grob paren 'elements
note-grob)
(set! (ly:grob-parent paren Y) note-grob)
(set! (ly:grob-property paren 'font-size)
(+ (ly:grob-property paren 'font-size 0.0)
(ly:grob-property note-grob 'font-size 0.0)))
;; shift accidentals or dots, so that they do not
;; collide with the parenthesis
;; TODO: compute width
;; TODO: account for directions and priorities
(let* ((note-column (ly:grob-object note-grob 'axis-
group-parent-X))
(acc (ly:note-column::accidentals note-column))
(dot-col (ly:note-column::dot-column note-column))
(width 0.5))
(if dot-col
(set! (ly:grob-property dot-col 'positioning-done)
(lambda (grob)
(ly:dot-column::calc-positioning-done grob)
(ly:grob-translate-axis! grob width X))))
(if acc
(set! (ly:grob-property acc 'padding) width)))))))
#(define parenthesize-engraver
`((acknowledgers
(note-head-interface . ,parenthesize-engraver-acknowledge-
note-head))))
test = {
\parenthesize cis'4. \parenthesize ceses'4. c'4 <\parenthesize
cis' e' g'>4.
}
\score {
\test
\layout {
\context {
\Score
\remove "Parenthesis_engraver"
\consists #parenthesize-engraver
}
}
}
{ \test }
<parenthesis.png>
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel