Hi,

On Fri, Nov 7, 2014 at 3:08 PM, Kieren MacMillan <
kieren_macmil...@sympatico.ca> wrote:
>
>
> Since it would almost certainly require (or at least benefit from)
> staff-spanning capabilities (e.g., across the gap in a PianoStaff),
> couldn’t this nicely combine into a grob which *encompasses* (e.g., boxes,
> parenthesizes, brackets, braces, etc.) a set of notes/grobs? Then this new
> grob could serve a number of similar — and extremely useful — purposes.
>

I would opt for a number of restricted-use grobs.  Even arpeggios involve
two grobs: Arpeggio and SpanArpeggio.

There are quite a number of bracket grobs: TupletBracket, LigatureBracket,
HorizontalBracket, OttavaBracket, PianoPedalBracket, SystemStartBracket are
the ones I can think of.  I don't see how this multiplicity could be
combined into a single grob (though they do share code).  What's a few more
added to the list? :)

An encompassing grob is a great idea.  I did something like that with the
FrameEngraver. That was an unholy mess, what with the bracket, the arrow,
etc., and it will never be right, I think.  Perhaps I could strip it down
to just draw boxes, brackets, whatever.

The biggest challenges I faced with encompassing-type grobs was getting
them properly recognized by the spacing engine.  The FrameEngraver needed
invisible "spacing stub" grobs, otherwise there were collisions galore.
Maybe things have changed in the meantime...  (I'll have to dig up the
links so you all know what I'm talking about...)

I never did get it to handle groups of notes encompassing more than one
staff, and there are problems encompassing outside-staff objects.  The
latter get pushed outside the box (which wouldn't happen with parentheses,
brackets).  Well, I'll have a look,


> > Note that what I've done here is not orthodox--it's "messing with
> internals" as LilyPond currently has no user interface for building new
> grobs.  (You will get errors talking about redefinition of properties if
> you compile multiple files at once using this engraver.)
>
> What (roughly speaking) would it take technically to create such a user
> interface? If I remember correctly, the whole Scheme engraver thing was a
> bit of a cobbled solution (to overcome the difficulty of creating engravers
> in C++), and they have clearly been a boon to the platform/application. Can
> something similar be done for grob creation?
>
>
This is a bit out of my depth.  Sorry!

--David
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to