lilypond-devel
[Top][All Lists]
Advanced

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

Re: Vertical alignment of the figures in BassFigureAlignment


From: Reinhold Kainhofer
Subject: Re: Vertical alignment of the figures in BassFigureAlignment
Date: Fri, 19 Mar 2010 13:56:24 +0100
User-agent: KMail/1.13.1 (Linux/2.6.31-20-generic; KDE/4.4.1; i686; ; )

Am Donnerstag, 25. Februar 2010 18:50:54 schrieb Reinhold Kainhofer:
> I've rewritten large parts of the figured bass engraver, but now all new
> figures are always placed below all existing extenders, e.g. <6 4> <7 4>
> now places the 7 BELOW the 4, which is again wrong.

Thanks to all the hints, here is an updated patch, which correctly preserves 
the order of the figures given:
   http://codereview.appspot.com/224052


There is still one more issue left: It seems that in an alignment spanner 
(BassFigureAlignment in our case, which uses Axis_group_interface and then 
Pointer_group_interface), an entry will never be positioned higher than the 
previous element. In particular, take the example:
   <6 4 3>4 <6> <6 4 3> 
with extenders enabled. The elements list of the pointer group will be:

Index     graphical representation
0            6------
1            4
2            3
3                  4
4                  3

I thought that the 4 at index 3 would be moved up as much as possible, but in 
fact, it is only moved up to the position of the previous 3.

Is there any way I can make the spanner use some Tetris-like placement, where 
objects are moved up as much as possible?


The problem is that I can't easily decide that e.g. the second 4 should be 
inserted at index 2, since there might be other figures before, which cause 
completely different indices. I can always find some examples (even though 
they would probably not occur in reality) that will break, unless I duplicate 
the whole placement algorithm of the spanner, which kind of defeats the 
purpose.

So, I really need the spanner itself to employ some Tetris-like placement and 
can't do this in the engraver. Any hints?

Cheers,
-- 
------------------------------------------------------------------
Reinhold Kainhofer, address@hidden, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org




reply via email to

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