lilypond-devel
[Top][All Lists]
Advanced

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

Re: cross-staff versions of \arpeggioArrowUp etc.


From: Joe Neeman
Subject: Re: cross-staff versions of \arpeggioArrowUp etc.
Date: Thu, 06 Aug 2009 22:05:04 +1000

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






reply via email to

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