+ int pos = orig->spanned_rank_interval ()[LEFT];
+ Real spanner_placement = min (1.0,
+ max (robust_scm2double
(me->get_property ("spanner-placement"), -1.0),
+ -1.0));
+
+ spanner_placement = (spanner_placement + 1.0) / 2.0;
+ int rpos = orig->spanned_rank_interval ()[RIGHT];
+ pos = (int)((rpos - pos) * spanner_placement + pos + 0.5);
+
+ if (pos < me->spanned_rank_interval () [LEFT])
+ return SCM_EOL;
Can you rethink this? The rank numbers are not good measures of
anything. In particular, adding a new voice/staff with different
rhythmic texture will cause these numbers to fluctuate, and mess up
your positioning. I still think this is a overall bad idea, and would
love to see examples where users need placement of footnotes, but
placement so inexact that they do not want to use per-item
positioning. One possibility is to use column->when() as a measure,
as it is least somewhat invariant, but preferably I'd like to scrap
this (especially given the code dup and overall ugliness) until we
have proof that it's really needed.