Dirk Laurie <[EMAIL PROTECTED]> wrote

>The following constructions look intuitive but are not valid PMX at 
>this stage:
>
>c4x3 r d  
>( one of the three notes is a rest ) 
>
>c4x3 d.e
>( one of the three notes is dotted and another short ) 
>...
>Can one override the selection of \NOTes ... \en etc made by PMX?

Only by trickery, such as inline TeX.  But WARNING:  If you change 
either the total scalable or unscalable horizontal spacing in a line 
by using in-line TeX, PMX will be unaware of it, and this may cause 
erroneous horizontal adjustments for accidental spacings, etc.  The 
consequences are far more subtle than in MusiXTeX itself where similar 
violations lead to ugly solid black vertical lines.  And they can be 
corrected after the fact using "X.."  

>Suggestion:
>
>A possible syntax for handling constructions like these could be: 
>
>t8x3/2 c8 r d  t8x3/2 c8 d.e  t8x3/2 c4 d8 
>
>where the third is a 2+1 triplet.  The word t[n1]x[n2]/[n3] stands 
>for "tuplet of n1-th notes with n2 in the time of n3" 

I've thought a lot about such extensions of xtuplet constructions, and 
even sat down and started pragramming a few times, but could never see 
it through.  The difficulties are in setting the horizontal spacing 
and in constructing the beams, no-beams, or combinations.  It was 
complicated enough as it now stands, where xtups can only contain 
equal notes (no rests, no unequal timings).  Remember, the xtup may or 
may not set the horizontal spacing for itself and other staves.  To 
help sort this out, I always start a new notes group at the beginning 
of every xtup, and end one at the end.  These may or may not be the 
same notes group, depending on whether timing has changed in other 
staves.  And when xtups overlap notes in other systems, either at the 
start or finish of the xtup, simply doing the necessary comparisons to 
determine which staff sets the spacing becomes very complicated.  In 
fact there are still some nominally legal cases that are not handled 
correctly.  Once the horizontal spacing is figured out, xtups are 
always handled internally as forced beams...even ones with no visible 
beams.  The full generalization would require handling e.g. a quarter 
+ 2 sixteenth triplets, not only changing the horizontal spacing but 
also switching from no-beam to beam in mid-xtup.  Ugh.  

To be realistic, I may work on including equal-value rests in xtups 
sometime soon, but it may be quite a while before I get to the other 
options.

Reply via email to