lilypond-devel
[Top][All Lists]
Advanced

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

Re: Uses single algorithm for side-position spacing. (issue 6827072)


From: address@hidden
Subject: Re: Uses single algorithm for side-position spacing. (issue 6827072)
Date: Fri, 16 Nov 2012 21:32:37 +0100

On 14 nov. 2012, at 07:33, address@hidden wrote:

>> http://codereview.appspot.com/6827072/diff/1/lily/axis-group-interface.cc
>> 
>> File lily/axis-group-interface.cc (right):
>> 
>> 
>> http://codereview.appspot.com/6827072/diff/1/lily/axis-group-interface.cc#newcode403
>> 
>> lily/axis-group-interface.cc:403: Axis_group_interface::cross_staff (SCM
>> smob)
>> For what situation?   Which object that supports axis-group-interface
>> (PianoPedalSpanner, DynamicLineSpanner) should be potentially considered
>> a cross-staff object?
> 
> NoteColumn

Hey all,

One result of my approach is that grobs that were not previously cross staff 
are.  This allows for better positioning with respect to a system, but results 
in collisions with other systems.  Try the following on current master and this 
patch :

foo = \new PianoStaff <<
 \new Staff = "up" {   
   s1 |
 }
 \new Staff = "down" {
   \clef bass
   \stemDown 
   % keep staff alive
   <c,, c,>8 [ <c,, c,>8_\f
   \change Staff = "up"
   g' g' ]
   r2 |   
 }
>> 

\score { \foo }
\score { \foo }

In current master, there is a dynamic-on-beam intersection, and w/ my patch 
there is a dynamic-on-system intersection.  Both of them are bad, but in terms 
of future work on LilyPond, I think the dynamic-on-system is a better 
alternative.  The long-term goal of this work is to get cross-staff grobs into 
vertical calculations, which will require removing several calls to 
translate_axis.  All of this work is moving in that direction by simplifying 
grob positioning.  The next step will be to eliminate the function 
avoid_outside_staff_collisions and replace it with the the new 
Side_position_interface::y_aligned_side that comes w/ this patch.

Cheers,
MS


reply via email to

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