I cannot begin to tell you how disappointed I was to finish this simple two part arrangement, which does considerable violence to Haendel but is made very easy for beginners, to find that the augmentation dots are not down when \stemDowm is in effect. What possible reason could there be not to have the dots down? If there is only one part, there is no reason to set it anyway, so it is \stemBoth and the dots are always up.
The last two versions in the Debian distribution, 1.4.2 and 1.4.9, both have the dots broken. Even the simplest music in two parts on one staff cannot be done correctly with either version. Before doing this I tried something more ambitious in three parts, and it came to grief in the 8th bar. You have written some interesing collision code, and the example in the manual is impressive, but you make no provision for the likelihood that there will be a rest in the mix. It matters what part a rest occurs in. You provide vertical adjustment to move rests away from places where they should not be at all, and then it is not possible to make horizontal adjustments so that the rest can be in the right voice and still fit. When you have music in three parts on one staff and there is a rest in the middle part, that rest *must* stay in the middle no matter what. If there is insufficient room between the top and bass parts, the rest must be before or after the other notes, not inserted into the bass or top part. This is merely an example. A rest is always in a part, and its vertical position must reflect that. It is a good thing that lilypond encourages the writing of polyphony in lines rather than verticals. You have to consider rests as parts of voices, because they *are*. Refusal to account for this results in Lilypond throwing them at the page instead of placing them in the desired voice. So while in reality rests do not have pitch, they nevertheless have relative vertical position on the staff. Unfortunately, this is not necessarily relative to stem direction. The easiest and most rational way to fix this is to give the rests pitches in the syntax, so that users can understand it and rests can participate in the horizontal adjustments of the collision code. You can simply give rests a default pitch, so no one without a problem has to think about it. I find it very frustrating that you seem to have everything that you need in place, but nevertheless fail to support 3 parts on one staff because of rests. ------------------------------------------------------------ Information is not knowledge. Belief is not truth. Indoctrination is not teaching. Tradition is not evidence. David Raleigh Arnold [EMAIL PROTECTED]
JoytoWorld.ly
Description: Binary data