Hi Karol,
On Thu, Jun 12, 2014 at 12:48 PM, Karol Majewski <karo...@wp.pl> wrote: > I'm trying to make this function work via \tweak. Grob-name string is no > longer needed. The following code doesn't work. Perhaps I missed something > that is obvious to schemers. Any ideas are welcome. > > moreWhiteout = > #(define-music-function (parser location adds)(pair?) > (define more-stencil-whiteout > (lambda (grob) > (let* ((function (assoc-get 'stencil > (reverse (ly:grob-basic-properties grob)))) > (stil > (if (and (procedure? function) > (not (eq? (procedure-name function) > 'more-stencil-whiteout))) > (function grob) > (begin > (ly:warning "~a has no stencil. Ignoring" grob) > #f)))) > (if stil > (let*((x-ext (ly:stencil-extent stil X)) > (y-ext (ly:stencil-extent stil Y)) > (add-to-x-ext (if (pair? (car adds)) (car adds) adds)) > (add-to-y-ext (if (pair? (cdr adds)) (cadr adds) '(0 . > 0))) > (new-stil > (ly:make-stencil > (ly:stencil-expr stil) > (offset-add x-ext add-to-x-ext) > (offset-add y-ext add-to-y-ext)))) > (if (grob::has-interface grob 'dynamic-text-interface) > (let* ((new-stencil-length > (interval-length (ly:stencil-extent new-stil > X))) > (orig-stencil-length > (interval-length (ly:stencil-extent stil X)))) > (ly:grob-set-property! grob 'self-alignment-X > (if (not (= 0 (- new-stencil-length > orig-stencil-length))) > (/ (- (- new-stencil-length (cdr add-to-x-ext)) > (+ orig-stencil-length (cdr add-to-x-ext))) > new-stencil-length) > 0)))) > new-stil) > #f)))) > #{ > -\tweak layer #10 > -\tweak whiteout ##t > -\tweak stencil #more-stencil-whiteout > #}) > > %%%%%%%%%%%%%%%%%%%%%%% > %% EXAMPLE > %%%%%%%%%%%%%%%%%%%%%%% > > \layout { > \override DynamicText.extra-spacing-width = #'(+inf.0 . -inf.0) > } > > musicI = { \time 2/4 \repeat unfold 16 b8 } > > musicII = { > r2 > b4 \moreWhiteout #'((-2 . 0.5)(0 . 2)) ^"XXXXXX" > b > r > > r^ \moreWhiteout #'((-3.2 . 4.12)(0 . 0)) \pppp > b4 \moreWhiteout #'(-2 . 10.5) ^"XXXXXX" b > } > > \new StaffGroup << > \new Staff \relative c'' \musicI > \new Staff \relative c'' \musicII > >> > > You might look to see how \shape is defined in ly/music-functions-init.ly. HTH, David
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user