06.09.2001 11:18:53, Neil Killeen <[EMAIL PROTECTED]>
wrote:
>Has anybody ever been bold enough to try
>to code in an 'Ossia' (alternative) music
>line.
>
>Usually its a bar or two or three that sits
>above the rest, for the hapless performer
>who's skill has been stretched to breaking
>point (like mine with MusicTex !)
>
>Strikes me as a rather complicated thing to
>do.
True - it is really tough. Nevertheless, quite a time ago I've also
wondered whether this is feasible at all. I can imagine two possible
approaches:
(1) Handling the ossia line as an additional instrument (i.e. staff)
of the system. This would require manipulating MusiXTeX's staff
writing method so that it would print only that portion of the staff
lines where the ossia actually resides. The advantage of this
approach is that main and ossia music are horizontally synchronized
automatically. On the other hand, MusiXTeX's staff writing code
seems way too complicated to do such a thing - bad luck.
(2) Preparing the ossia fragment separately from the staff it will
be attached to. This is possible by putting the ossia in a TeX box,
then posting the box to the staff at the appropriate place with
\zcharnote or something similar. Determining the ossia's width can
be done by setting start and end "anchors" into the main staff. This
method's drawback is that horizontal placement of main and ossia
music is not inherently synchronized; if their rhythms differ, you
will have to use "phantom" notes to equalize them in order to force
correct horizontal overlay.
I have hacked together and attached an example which works for me,
but it is far from being generally usable. It may just serve as a
starting point for further experiments.
For MusiXTeXing it, one aspect should be mentioned here: The ossia
phrase width must be equal to the width of the corresponding "main"
phrase, but the ossia box has to be constructed before we even have
a chance to know this width. To break this vicious circle, you will
have to do _two_ complete 3-pass runs (TeX - musixflx - TeX); the
first one determines the main music's spacing, the second one works
out the spacing of the ossia phrase. Before doing the second of
these runs, uncomment the "\let\iffirstossiapass\iffalse" command of
the example source to get things in order. This means you have to
alter the source as part of TeX processing; this is certainly not
elegant, but I can't think of a better solution yet. Any
improvements are welcome!
Best regards,
Rainer
ossia.tex