Hi again, 2015-03-17 14:56 GMT+01:00 Janek Warchoł <janek.lilyp...@gmail.com>: > Hello, > > 2015-03-12 2:07 GMT+01:00 Janek Warchoł <janek.lilyp...@gmail.com>: > I think we should start by pinning down the control flow - both inside > the tie formatting algorithm itself and between this and the rest of > LilyPond. > > Concerning internal control flow: it appears to me that a tie can be > characterized by 4 parameters: direction (upward/downward), height, > tips' vertical coordinates and tips' horizontal coordinates. We need > to find answers to the following questions: > - are there any cyclic dependencies, and what can we do to break them? > - in what order should these parameters be calculated? > - how formatting ties connecting single notes differs from formatting > ties connecting chords? > - maybe we should pick a different set of characteristics to represent a tie?
After some thinking it seems to me that the only difference between formatting ties connecting notes in chords vs single notes is that when the note is inside a chord, tie tips must be vertically closer to the notehead (so that it will be clear which notes are connected). It seems to me that the parameters I mentioned would be a good characterization of a tie, and that we could calculate them in the following order: 1. direction - it depends on the staff positions of the tied noteheads as well as other noteheads in the chord (if present) 2. tip vertical position - depends on tie direction, horizontal distance between connected notes, vertical proximity of other notes from the chord (or other voices). 3. tip horizontal position - depends on tip vertical position and the presence of augmentation dots, accidentals and the like, 4. height - depends on distance between tied notes and tip vertical position. > As for the global control flow, the questions I see are: > - what we need to know before calculating tie? > - what decisions we cannot make until we have decided how the ties > will look like? > - can we treat tie formatting as one operation? Is there anything > that we must calculate after some characteristics of the ties are > determined, but before others? In particular, what about augmentation > dots and accidentals? There are a few notation elements that need some information about ties - in particular, beams need to avoid ties and therefore have to be calculated after them. Other than that, augmentation dot positioning may depend on ties, but it should be enough if we know that a note has a tie attached to it - we probably don't need to know tie's exact shape and position. Overall, I don't see many problems related to cyclic dependencies here. best, Janek _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel