Hi David,

I just saw this fix. Thanks for spending so much time tweaking this. Maybe
there's a way it can be integrated into the Lilypond code, since you've
spent so much time developing it. I'll be using it in a score soon.

cheers,
Jeff

On Tue, Dec 11, 2012 at 3:04 PM, David Nalesnik <david.nales...@gmail.com>wrote:

> On Sat, Dec 8, 2012 at 7:21 PM, David Nalesnik <david.nales...@gmail.com>
> wrote:
>
> [...]
>
> >
> > Trying to work out the problem, I've done a little rewriting so I'll
> > include the engraver here.  You can just substitute this in the
> > problematic file.
> >
>
> Well, I did break something.  Here's the fix:
>
> frameEngraver =
> #(lambda (context)
>   (let ((span '())
>         (stub '())
>         (event-drul (cons '() '())))
>     (make-engraver
>       (listeners ((frame-event engraver event)
>                   (if (= START (ly:event-property event 'span-direction))
>                       (set-car! event-drul event)
>                       (begin
>                         (set-cdr! event-drul event)
>                         (set-car! event-drul '())))))
>       (acknowledgers
>         ((note-column-interface engraver grob source-engraver)
>          (if (ly:spanner? span)
>              (begin
>                (ly:pointer-group-interface::add-grob span 'elements grob)
>                (add-bound-item span grob)))
>          (if (ly:item? stub)
>              (ly:pointer-group-interface::add-grob stub 'elements grob)))
>         ((script-interface engraver grob source-engraver)
>          (if (ly:spanner? span)
>              (ly:pointer-group-interface::add-grob span 'elements grob))
>          (if (ly:item? stub)
>              (ly:pointer-group-interface::add-grob stub 'elements grob)))
>         ((dynamic-interface engraver grob source-engraver)
>          (if (ly:spanner? span)
>              (ly:pointer-group-interface::add-grob span 'elements grob))
>          (if (ly:item? stub)
>              (ly:pointer-group-interface::add-grob stub 'elements grob)))
>         ((inline-accidental-interface engraver grob source-engraver)
>          (if (ly:spanner? span)
>              (ly:pointer-group-interface::add-grob span 'elements grob))
>          (if (ly:item? stub)
>              (ly:pointer-group-interface::add-grob stub 'elements grob))))
>
>       ((process-music trans)
>        (if (ly:stream-event? (car event-drul))
>            (begin
>              (set! span (ly:engraver-make-grob trans 'Frame (car
> event-drul)))
>              (set! stub (ly:engraver-make-grob trans 'FrameStub (car
> event-drul)))
>              (ly:grob-set-object! stub 'frame span)
>              (ly:grob-set-property! stub 'direction LEFT)
>              (set-car! event-drul '())))
>        (if (ly:stream-event? (cdr event-drul))
>            (if (null? span)
>                (ly:warning "No start to this box.")
>                (begin
>                  (set! stub (ly:engraver-make-grob trans 'FrameStub
> (cdr event-drul)))
>                  (ly:grob-set-property! stub 'direction RIGHT)
>                  (ly:grob-set-object! stub 'frame span)
>                  (ly:engraver-announce-end-grob trans span (cdr
> event-drul))))))
>
>       ((stop-translation-timestep trans)
>        (if (ly:stream-event? (cdr event-drul))
>            (begin
>              (set! span '())
>              (set-cdr! event-drul '())))
>        (set! stub '())))))
>



-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
<http://www.jeffreytrevino.com/>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to