Andre wrote
> The only thing i should like to have, if it is not to much work,
> is beeing
> able to split the beam in a 5-tuplet ie. '[ a44x5 a ] [ a a a]' (with a
> space between ] [ ),
> indicating the 1st beamed notes are played with the left hand and
> the rest
> with the right hand.
> And also having some notes flagged, ie 'g46ax5 [c- g c- ] ga', indicating
> that the 1st and the last note of this 5-tuplet are to be played
> with the
> left hand on a keyboard.
> If this could be possible, then the staff jumping is the same as
> with normal
> notes.
>
> For now i use a 5/8 mesure (in stead of 4/4) to simulate the
> 5-tuplet (using
> 'm5406'). In that case 'g46ax5 [c- g c- ] ga' becomes 'g16 [ c-
> g c- ] ga'
> and 'a4 a8 a a2' becomes 'a4 rb1 [ a8 rb3 a8 ] rb3 a2 rb8'. As
> you mentioned
> before, it is indeed preferable to take the last rb3 out of the beamed
> notes.
Some things are not too hard and others are much harder to implement. It all
depends on decisions I made about 12 years ago when I first programmed
xtuplets. The key assumption is that all xtuplets are treated as beams by
PMX. (That even applies to completely unbeamed ones like "c04x3 d e", but
there are special blocks of code for this.) For making generic beams, PMX
uses various special subroutines. The ones that insert the TeX coding are
beamstrt, beamn1, beamid, and beamend. The first one starts the beam (puts
in the '\ib...', and this is the ONLY place that is done), the second puts
in the first note. The third puts in all the intermediate notes. The fourth
puts in the last note and ends the beam, and this is the ONLY place beams
are ended. To allow rests at the start of an xtuplet, I therefore have to
allow rests at the start of a beam. This was very complicated because it
defers the start of the printed beam ('\ib...') until some time after the
start of the logical beam (the xtup). I put special coding inside and
outside beamstrt to keep track of these delayed beam starts and call
beamstrt again, with special flags set, if needed on a later note in the
xtup. VERY COMPLICATED! Given the current logical structure of PMX, it would
be equally if not more complicated to allow early terminations and restarts
of the printed beam within an xtup. Considering how rarely this matter comes
up, I'm just not motivated to spend the effort.
Andre, I know you recognize that everything you want to do can be done with
inline TeX, and I know you're clever enough to figure out how to do it on
your own. I've thought some about that, and have a few comments, although
you've probably thought about a lot of this already.
1. Even if you had many places with 5 against 2 or 4 where you needed to
split up the 5-tup with inline TeX, I think on balance it would still be
useful to use PMX, because among other things it saves you the trouble of
working out the horizontal spacing.
2. The coding you worked out for discontinuously splitting the 5-tup between
staves is very clever in the way you used \bsk to back up and terminate the
shortened segment at the beginning. I don't believe I would have thought of
that. There are a couple of possible pitfalls with this that you've probably
aware of: (a) When you add more voices, the use of \bsk could get tricky,
because not all the notes of the xtup will necessarily fall in the same
\pnotes...\en group (PMX doesn't use \scale or \multnoteskip, but calculates
the \pnotes value for every horizontal gap). (b) When you redefine \qb to
print a phantom note, for safety you should "eat" (Werner's term) the pitch
of the original note with something like \zcharnote{#1}{~}. That will make
sure the octave register goes where it should for any later notes.
3. When starting the second part of the discontinuous xtup you might want to
adjust the height or slope. It turns out that [+2-1 r4x5 c4 d e f ] works
fine, but with [+2-1 r4x5 r d e f ], version 2.512 ignores the tweaks.
There'll be a 2.513 very soon that corrects that, i.e., allows you to apply
height and slope tweaks to the xtup's beam even after two or more opening
rests.
4. Instead of creating two parallel xtups, in some cases you may want to try
sticking in some inline \nextstaff\ or related commands, especially if you
want staff-jumping beamed xtups. This will take a lot of trial and error,
and I still don't understand everything that's going on (with octave levels
and skips). But here's an example:
=================================
3 2 2 4 2 4 0 4
1 1 20 .08
btt
./
w3i
\\let\tbut\tbu\
\\def\tblfortbu{\def\tbu##1{\tbl{##1}\let\tbu\tbut}}\
[u g42x5 d+ \nextstaff\ e+ \nextstaff\ g \tblfortbu\ c ]
\prevstaff\sk\sk\ [u c43++x5 g+ \nextstaff\ e \nextstaff\ g \tblfortbu\
c ] /
rb2 /
g85 e c g+ /
===================================
--Don Simons
_______________________________________________
TeX-music mailing list
[email protected]
http://icking-music-archive.org/mailman/listinfo/tex-music