Hi all, who are interested in Ancient notation.
I started now some trial how to improve the spacing of the notes. The
goal is to have an even spacing where each note head regardless of their
length takes up just the same space. Visible signs in the score as
accidentals, clefs and lyrics should influence the spacing, though, as
well as alignment of more than one system (even though this is quite
rare in mensural music, it should be possible). To acchieve this I
started removing the spaces that get added to a notehead according to
its duration. I came up with those properties:
\override SpacingSpanner #'spacing-increment = #0
\override SpacingSpanner #'common-shortest-duration =
#(ly:make-moment 1 1)
\override SpacingSpanner #'base-shortest-duration =
#(ly:make-moment 4 1)
\override SpacingSpanner #'shortest-duration-space = #1
The first means, that longer notes than the smallest won't get more
spacing around them (ie it gets increased by 0).
The next three properties, though, I was not so sure about what they do.
As I understand I get quite close spacing when assigning the
common-shortest-duration to a long note. But it seems a whole is the
longes note it can handle, I don't see any changes in the layout when
assigning it for instance to 4/1. The next property didn't seem to have
much influence on spacing in this case -- can it just be ommitted, or
did I understand this wrong?
The last, I understand, sets the space the shortest note takes, to 1,
that is to one notehead-width plus some amount left and right. I would
understand that if my common-shortest-duration is a whole that this
whole gets assigned the 1. But, as you can see from the attached file:
The first semibreves (wholes) are much wider spaced than the smaller
note values further on. When switching on the bar lines they reveal
quite a lot of space they take up. This might be the reason why the
semibreves get spaced so widely.
But there are also bigger and smaller gaps between notes of different
duration. They show better in the example whith normal note heads, but
are still present in the mensural examples as well. Yet they become more
obvious when using a barline instead of the "empty barline". Is this
some space added to each bar? Something about centering notes in bars? I
don't understand where this space comes from.
Speaking of barlines: There are three ways avoiding bar lines, as I see it.
1. Remove the engraver. This is not a good solution, because sometimes
there have to be inserted bar lines, for instance at the end of a piece.
2. Switch on Cadenza. There are two problems with this approach: First
we don't have any breaks anymore. I thought of a funktion that enquires
the last bar number of the engraved piece and sets then in regular
spaces invisible bar lines, for instance repeating the pattern {\skip
1*4 \bar " "} n/4 times, if the measures are a whole long. The other,
bigger problem, are ligatures: they get really ugly squeezed when
switching on Cadenza. What can we do there?
3. The approach from now. In addition the space bar lines take should be
reduced. This again interferes with the cases when we actually need
barlines. They should then get (automatically) added additional space.
Another problem are ligatures (and to some extent also ligature
brackets). If I understand the underlying techniques right, ligatures
get produced from legal note durations. Their duration is known to the
spacing engine and they get accordingly space around them. But since
ligatures are drawn as one graph of closely realted heads, the
additional space that is counted to fit normallly between noteheads gets
accumulated at the end of the ligature. In addition, the space which the
barlines would normally take gets still added to the space (since
ligatures are normally long notes, they use quite a lot of bars). So my
naïve idea would be to count the amount of space of all ligature heads
minus the real head-width and subtract this amount from the space of the
ligature.
Unfortunately I know too few about programming to already provide some
code here.
Well, another problem of the ligatures is their behaviour inside a
Cadenza. They take up too few space so other notes start protruding
them. This happens only, when the changed spacing values presented above
are used. If used with the normal spacing engine, ligatures work out
fine. But: when not using "zero-spacing" the spacing is again too wide.
This means that we cannot use Cadenza at the moment to display tightly
spaced notes containing ligatures.
Actually, also the ligature brackets in the normal notation get badly
cruched by the tight spacing: suddenly they appear in some cases to be
too short and won't cover all the notes actually included in the
ligature. Hopefully somebody has some hints at what I could look to make
ligatures behave correctly. Juergen, do you have time reading the list?
If assuming that my ideas about the spacing engine are correct I thought
to implement the tight spacing somehow into the MensuralStaff which
automatically should call mensural voice -- there could be differently
named staves and voices containing the different notation style that are
available for ancient notation.
I hope you can bear my unprofessional approach, I am only learning how
things work inside of lilypond.
Greetings
Till
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel