> From: [EMAIL PROTECTED] > Date: Tue, 14 Jul 1998 10:48:16 +0200 (MET DST) > I have a problem with PMX. The d-minor organ concerto (BWV146/1052) > of Bach contains in the third movement many arpeggio-like triplet passages > starting with a rest. This motif is not rare in keyboard > music at all. However, I get the error message > ``Xtuplets may not start with a rest!''. How can I circumvent that? This was just the basic problem which led to the problem I described in the message titled "Underfull hbox" which led to the excellent and exciting error analysis by Joel Hunsberger (cf. http://www.gmd.de/Mail/mutex/ ) So here again the solution up to the time PMX will allow rests in xtuplet (in 2004? :-) 1 1 2 4 2 4 0 0 0 4 20 0 t ./ % r4x3 a c \\newcount\slopesav\ \\def\dsforibuqb{\let\ibusav\ibu\let\qbsav\qb\ \\def\ibu##1##2##3{\let\ibu\ibusav\zcharnote{##2}{~}\slopesav##3}\ \\def\qb##1##2{\let\qb\qbsav\zcharnote{##2}{~}\ds}}\ \\def\ibuqbforqb{\let\qbsav\qb\ \\def\qb##1##2{\let\qb\qbsav{\ibu{##1}{##2}{\the\slopesav}}\qb{##1}{##2}}}\ f44x3 a c \dsforibuqb\ f44x3 \ibuqbforqb\ a c / % f4x3 r c \\def\dsforqb{\let\qbsav\qb\ \\def\qb##1##2{\let\qb\qbsav\zcharnote{##2}{~}\ds}}\ f44x3 a c f44x3 \dsforqb\ a c / % f4x3 a r \\def\dsfortbuqb{\let\tbusav\tbu\let\qbsav\qb\ \\def\tbu##1{\let\ibu\ibusav}\ \\def\qb##1##2{\let\qb\qbsav\zcharnote{##2}{~}\ds}}\ \\def\tbuqbforqb{\let\qbsav\qb\ \\def\qb##1##2{\let\qb\qbsav\tbu{##1}\qb{##1}{##2}}}\ \\makeatother\ f44x3 a c f44x3 \tbuqbforqb\ a \dsfortbuqb\ c / % a4x3 c e \\def\rdsforqb#1{\let\qbsav\qb\ \\def\qb##1##2{\let\qb\qbsav\zcharnote{##2}{~}\raise#1\internote\ds}}\ a43x3 c e a43x3 \rdsforqb{-4}\ c e / Some remarks: - the principle is always to know what TeX-macros PMX will generate, to save the meaning of that macros, to redefine them as restoring the old meaning and doing what you want to do instead. - if the original macro uses a pitch this pitch has to be used somehow in the replacement too, because PMX uses octaviation with "'" and "`" which influences the following notes; see re-definition of \ibu in \dsforibuqb. - if the replacement macro uses a pitch more than once, then the first occurences have to be put into a group "{...}" to keep the possible octaviation local; see re-definition of \qb in \ibuqbforqb. - the definition of e.g. \dsforibu could be more general as \dsforibqb by including \ibu _and_ \ibl into the definition. This would look like: \\def\dsforibqb{\let\ibusav\ibu\let\iblsav\ibl\let\qbsav\qb\ \\def\ibu##1##2##3{\let\ibu\ibusav\let\ibl\iblsav\zcharnote{##2}{~}\slopesav##3}\ \\def\ibl##1##2##3{\let\ibu\ibusav\let\ibl\iblsav\zcharnote{##2}{~}\slopesav##3}\ \\def\ibl##1##2##3{\let\ibu\ibusav\zcharnote{##2}{~}\slopesav##3}\ \\def\qb##1##2{\let\qb\qbsav\zcharnote{##2}{~}\ds}}\ - a redefinition may contain a parameter as you can see in \rdsforqb#1 where the parameter is used to raise the rest. > Since it occurs so often, I would have to write long passages entirely > in MusixTeX and \input it. It is always better to write it within the PMX-source because then PMX knows about the line and page breaking. > As a matter of fact, I had to do that also for 30 bars in the first movement > because PMX was unable to beam together rapidly alternating right-hand/ > left-hand beats, another frequent feature of keyboard music. The way PMX > printed it with separate flags, the music was too difficult to read. I do not understand that problem? Is it the problem of "jumping beams" which somestimes :-) can be solved in PMX using "]j" and "[j"? > Another feature would have been also extremely helpful for setting > the concerto: It continuously runs over the entire 4 1/2 octavas > of the organ manual. Frequent clef changes are necessary unless one uses > the trick which is used in traditional note-setting: > The minimum space between the staves is exactly one interspace. interspace? > In this way, passages automatically enter bass notes that exceed > the pitch range at the correct place in the treble stave and > vice versa. However, I could not use it because there is no way > to suppress drawing of the help lines. Actually, this is also a feature which > occurs quite frequently in other keyboard music. If I understand the problem, then you are fighting against PMX's usage of e.g. \interstaff{11.2}, fractions of \Interligne. I suppress that often by e.g. \\let\interstaffsav\interstaff\def\interstaff#1{}\interstaffsav{10}\ This clobbers \interstaff from PMX but enables you to select your own interstaff. Maybe you should add \musicparskip, because now PMX has no chance to influence the vertical filling of the page. At some places it may be necessary to re-define the spacing. You can do it at a convenient place either by \\\def\atnextline{\interstaffsav{12}\ at the beginning of an input block or by \gdef\atnextline{\interstaffsav{12}\ within a bar. In addition it should be quite simple to suppress ledger line temporarily. Have a look at my modifications in musixtex.tex which shorten ledger lines for narrow notes (see musixfll.tex, musixtex.tex, \h@linei, ...). Not tested in PMX-notation: \\makeatletter\ \\def\noledgerlines{\global\let\h@line\empty}\ \\makeatother\ Now you may use \noledgerlines, and \autoledgerlines or \longledgerlines > I realize that a preprocessor cannot provide all features. But if it allows inline-TeX like PMX it does and if you have enough MusiXTeX knowledge you and PMX can do great things with more ease and speed than you and MusiXTeX alone can do. > I like PMX and M-Tx very much, because > it really speads up setting. However, in all cases of more > sophisticated music I found no way to avoid extensive editing of the > TEX-file. Actually, I have the impression, the beauty of the note-setting > is too much in the foreground. [...] In such cases - like my autograph-like edition of Bach's Sonatas and Partitas for Violin Solo - I first make an incomplete PMX-edition. Then I postedit the MusiXTeX-source. This is quite powerful and feasable because PMX's MusiXTeX output is really man-readable. I remove the prolog and epilog, I replace all \xbar. \alaligne, \alapage by \bar, I remove most inter-line and inter-page coding and have a nice skeleton I can work with. [...] > In M-TX there is an item missing which should not be too > difficult to implement: There should be a way to transmit > TeX-commands that are defined before MusixTeX starts its work. > PMX has this feature by the --- inserts, but I was unable > to transmit it from M-Tx to PMX. M-Tx uses the feature > itself, so it should be possible to add something to the preamble > without having to edit the PMX-file. Use \\....\ -- if M-Tx let's that through. -- Werner PS: Now I hope that you will upload the resulting edition of BWV1052 soon to ftp://ftp.gmd.de/incoming/music/ :-)
