On Tue, 2009-08-04 at 21:23 -0700, Mark Polesky wrote:
> Neil Puttock wrote:
> > (let* ((Arpeggio
> > arpeggio (or something else without the capital letter)
> 
> What's bad about the capital letter? I capitalized it because it's
> a grob-name and grob-names are capitalized. Does the same problem
> extend to the X-extent binding one line below?

Grob names are capitalized in lilypond code, but not in scheme code.
X-extent (and X-offset and other such things) are capitalized for
consistency with existing code.

> Joe Neeman wrote:
> 
> > I'd like to second Neil's objection regarding the hard-coding of
> > GrandStaff/PianoStaff/StaffGroup as contexts containing
> > Span_arpeggio_engraver. Given the flexibility of contexts and engravers
> > in lilypond, it isn't a good idea to assume that certain contexts are
> > the only ones to provide a particular functionality.
> 
> Is there a scheme procedure to test if a given context contains
> a particular engraver? Like...
> (context-has-engraver? context 'Span_arpeggio_engraver)
> If not, is there a way to test that? I agree, my current solution
> there isn't ideal.

There doesn't seem to be. As a workaround, you could add a context
property called, say, "spanArpeggioInThisContext" and document somewhere
that the \connectArpeggiosOn command works in the lowermost context
where spanArpeggioInThisContext is true. This preserves the ability of
the user to define their own contexts and it also allows the user to
switch the arpeggio-connecting-context from, say, PianoStaff to Staff
and back again while using mostly predefined commands.

Cheers,
Joe




_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to