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

Reply via email to