lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Vertical brackets with text around chords


From: David Nalesnik
Subject: Re: Vertical brackets with text around chords
Date: Fri, 7 Nov 2014 15:51:23 -0600

Hi,

On Fri, Nov 7, 2014 at 3:08 PM, Kieren MacMillan <address@hidden> 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 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]