lilypond-devel
[Top][All Lists]
Advanced

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

Re: polyphonic shorthand; line-spanner-interface in Hairpin


From: Joe Neeman
Subject: Re: polyphonic shorthand; line-spanner-interface in Hairpin
Date: Tue, 17 Mar 2009 11:30:06 -0700

On Tue, 2009-03-17 at 06:55 -0400, Kieren MacMillan wrote:
> Hello,
> 
> Thanks to Carl's patient help, I've successfully submitted my first  
> patch as a Frog!
> <insert sound of trumpets, throw confetti, etc.>
> 
> 1. For my next task, I was thinking of fixing the polyphonic  
> shorthand. Unfortunately, searching the tree for
>    <<
> gives a couple of thousand hits...  ;-)
> Any hints on where that shorthand is defined would be greatly  
> appreciated.

In parser.yy, on line 990. It might be more useful, though, to leave the
parser alone and work with the scheme representation (the one you get
with \displayMusic). The parser generates this by calling scheme
functions from scm/ly-syntax-constructors.scm.

> 2. Can Hairpin inherit line-spanner-interface? If so, can this be  
> done in Scheme, or does it require C++?

You can "add" the line-spanner-interface by modifying
scm/define-grobs.scm. This doesn't really achieve anything except to
tell lilypond that it should expect users to do
\override Hairpin #'some-property-in-line-spanner-interface = #foo
In order to get the functionality of the properties in
line-spanner-interface, every one of them needs to be implemented in the
callbacks that Hairpin uses. For example, the default value of Hairpin's
'stencil is ly:hairpin::print (defined in hairpin.cc), which doesn't
honor left-bound-info. So yes, some C++ hacking would be required.

HTH,
Joe






reply via email to

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