1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
|
2.94
Allow moving dots on main and chord note in 2-note termolos
Add definitions of \hbp and \hbpp to pmx.tex
Correct scaldold bug (17-03-2020)
2.91
Tweak: insert \stdstemfalse before every user-shortened or lengthened
stem.
This cancels defaul extensions to middle line and also (with 'L') allows
stems that are longer than 4.66 but still don't reach middle line.
Allow alteration of number height in multibar rest, option n.
Fix bug introduced in 2.89 so that the "o" in "mo800" is now OK.
2.90
Many tweaks to allow gaps at end or middle of a system using
L[n]S[x] and LC[y]. New pmx.tex.
2.88
Comment out print*,"Changed pathname to..." since it was going
iteration when optimizing linebreaks with the undocumented option Ao.
Add nv back in as argument for getmidi, so loop transferring data
from midivel to midvelc can be executed. This corrects bug and
allows per-instrument change in midi velocities at the start
of any block
Add subroutine inst2chan to transfer midi data as noted above. Works with
Iv but buggy when used with IT and Ib
2.87
Allow changes to and from octave treble clef. Instrument with it
must only have one staff.
Some fixes for beam multiplicity changes at staff jumps. Must still
use inline for mult. increase at downward staff jump. See sjb.pmx.
2.84
Bug fix: dots in chordal seconds
Bug fix: Initialize ihornb for non-beamed, down xtup
Bug fix: When using "AT" with 2-note x3c rD.
2.83
Fix problems when changing to or from octave treble clef.
Fix beaming (or not) and number location for xtups with
multiple rests. Still some problems with number height but
can be band-aided with number height tweak option.
Tweak error messages for options on "R" command.
Allow forced beam height and slope tweaks with 2-note tremolos
Allow chordal note with 2-note tremolos, adding dots as needed.
Fix call to ncmid in beamstrt when setting start height for beam of
2-note trem, by changing arg from ivx to iv
2.82
bugfix: beams with rests, not confused with xtups.
x option after slur index to allow slurs to go from one voice to another.
x option also for ties
2.81
Allow string of rests to end xtup
in chordal half-note 2-note tremolo, make chord notes open.
2.80
Add 2-note tremolos
2.78
Expand bufq to 131072 bytes
Expand maxblks tp 9600
Allow up to 75 pages
Index postscript hairpins from 1 up instead of by voice #.
Add option 'o' to forced beam for open notehead (\hb); set ipl(3)
Add option T[n], n=1,2,3 for single stem tremolo
2.77
Enable AV+/-x+/-y to add vskip bigh before or after \eject
2.76
2.75
Bugfix: unbeamed xtups with dots: in beamn1 and beamid allow dotted 16th, and
2 or 3 flags on shortened note.
2.74
Bugfix: allow "0" as argument of @ command on lyrics string.
Check for and allow "\ in centered page headings with P command.
Check for and allow "\ in text dynamics with D command.
For lyrics string starting in xtuplet, insert check for inputting musixlyr.
For staff-crossing beamed xtuplet chords, if 2nd segment of a joined beam
starts with a blank rest, put '\sk' into the TeX.
To enable high-to-both beamed etup staff-crossing chord, for blank
rest at start of forced beam, shift \sk's from before to after \ib..;
so \ib is at start and note in upper voice has a beam to connect to.
Expand range of vertical xtup number shift, now stored in mult(16-22)
Check for and allow \" within lyrics strings, for umlauts.
2.73 (160121)
Dirk's "..." command, to convert "text" into \pmxlyr{text}\ and insert as
inline TeX. Replace all '~' inside "..." and not preceded with '\', by
'\lk '. Right after 2nd ", replace @[a,b][+,-]n with \at{[a,b][+,-]n}\
Include definitions of \ly and \at in pmx.tex (2 Feb 16). After first ",
add (as type 2 string) '\\input musixlyr \'
After inputting pathname, change any '\' to '/', for Linux compatibility.
2.72 (160110)
Really finalize \mbrest...go back to 3 args to deal with clef changes.
Fine tune centered whole bar rests to deal with clef changes
Fix bug in wsclef when >1 staff per instrument, since \setclef
needs to know instrument and specify clefs on all staves for that
instrument. Ones that were not changed by user will not be printed,
and will be kept the same as before.
Fix bug with arpegii from one voice to another in same staff.
2.71 (151226)
Finalize mbrest mods
2.705
Fix error message
2.704 (140614)
Octave treble clef
Make horizontal ornament shift (ornhshft) floating
2.703 (140323)
Option v[-]n at end of any figure will alter figdrop for rest of system
2.702
Stem slurs. Only for ps, assume no other pos'n adjustments. Option "v"
2.701
oC = coda (\code{10})
Move iornq(29) (blank barline) to ipl(0) (changes in pmxb, getnote)
oG = new seqno
To do: fix grace note spacing problem (partially done)
2.622
Redefine midtc(..) and miditran(..); clean up all transpositions/key changes
Kn[+/-...] \ignorenats at signature changes
Fix tie checks in doslur() and dopsslur() to subtract iTransAmt from nolevs
before checking and setting pitch levels levson() and levsoff()
Define midisig separately from isig. Put in common commidisig.
Use for explicit midi signature and for accid corrections to midi piches
in addmidi.
2.621
Make keyboard rest option work in xtuplets. Created subroutine
chkkbdrests, modified make2bar to include calls to chkkbdrests as rqd.
2.620
Allow user-defined rest height tweaks at start of beam.
2.619
At movement break, change \nbinstruments in \newmovement macro; add
3rd arg to \newmovement in pmx.tex; modify pmxb.for and getnote.for
to remove call to newnoi and change call to \newmovement
2.618
Add option Ac[l,4] to set vert and horiz size and offsets to properly
center page for letter or a4 paper.
2.617
In g1etnote, change if-check for note to use index(...) instead
of ichar(charq) since it was messing up gfortran optimizer
After pmxa, search for and remove penultimate line <blank><blank>/
because it was screwing up linux-compiled versions
Bugfix: Increase dimension of kicrd from 7 to 10 in crdaccs(...)
2.616 (111110)
Allow hairpins to span multiple notes groups (gulps).
2.615+ (110810)
Fix midi when some instruments are transposed, by subtracting
iTransAmt(instno(iv)) from pitch values sent to via addmidi in
make2bar.for (for main notes) and docrd (for chord notes)
2.615 (110725)
Fig bug with size-setting (in topfile) when instrument has >1 staves
2.615 (110724)
Make AS[0|-|s|t]... really set sizes
2.614
Mod notex.for to fix Terry's bug with raised dotted rests (caused
by double-hboxing).
2.613
Bugfix: In pmxa, change "do while" limit to keep from overwriting instno.
2.612
Enhance AS to allow s or t for smallsize or tinysize
2.611
Error trap for "D" before any notes in a block.
2.610
Instrument-wise key changes and transposition (incomplete)
2.603
101211 In getpmxmod.for, decreased nline by 2 to fix locating errors
following reading in an include file.
101121 Added some error messages in g1etset.for setup data
2.602
Correct slur indexing in linebreakslurs.
Account for comment lines in line count for error messages
2.601
Bug fix: allow 24 slurs with graces
2.60 Changes made make it really big
increase mv (size of midi) ? Note: MIDI can't have >16 voices w/o
major reprogramming, and 16 may also be a problem (icmm)
nm=24 (voices) done
24 slurs done
24 simultaneous beams (Replace index 24 by 0, so get 0-23)
bufq*131072 (gfortran only)
getarg syntax (gfortran only)
2.523+
Fix voice numbering for normal dynamics and text dynamics
2.523
Version of bigpmx first posted to Hiroaki's web site.
2.522
5/26/10 Replace ipl bits 0-7 with ipl2, add new common for it.
With 2.521+ as starting version, incorporate bigpmx mods to allow 24 voices.
5/13/10 Fix log2 function
5/15/10 Fix bitwise storage for dynamics, fix segnoo string length.
2.521+
091025 Enable dotting 2nd part of linebreak slur or tie.
To adjust barno height due to linebreak slur, use \bnrs instead of
explicitly redefining \raisebarno (pmxb)
2.521
Bugfix
2.520
090519 Enable ligfonts (special figured bass characters)
2.519
Fix another bug which kept \sk from being output so misaligned some notes.
2.518
Fix bugs: referencing fig data, char declaration for member of
common/comfig/
2.517
Allow figures in voice 1 + any one other.
2.516
Allow figures in voice #2
2.515+ to do: Change manual and activate rule against clef change in voice #2.
2.515
071222 Changes in getnote to allow auto forced beams to start anywhere.
071206 In make2bar, shift fermataup7 to left over centered pause.
070901 In doslur, check for nolev <=2 in case slur ends on rest in 2-line
staff (it was screwing up vertical justification).
n34 for tweaks to midi durations of quarter note septuplets.
To do: In ref250.tex, the tables where 's,t,)' is explained, the line
[+,- i] ... Vertical adjustment of the start of second segment
should it be replaced by
[s +,- i] ... Vertical adjustment of the start of second segment
2.514
Changes in make2bar to get horizontal spacing right when normal grace
follows after grace
Changes in dograce to get octaves right for any material entered inside
\gaft, which shields transpose register changes from the outside world.
2.513
In make1bar, near end, for forced beams starting with a rest, copy hgt and
slope tweaks to ALL notes after first, not just the second one, so if
there's more than one rest at start the tweaks are still observed.
In beamid and beamend, add stand-alone triply-flagged notes for xtups.
2.512
Near end of pmxb, fix error trap to allow redundant 'RD'
Enable multiplicity down-up '][' within xtup.
2.511
Introduce eskz2 for xtup #'s and bracket lengths, to remove bug caused by
adjusteskz as in bar 7 of barsant.
2.510a
Test: remove restriction on tempo changes in MIDI macros
Send to CM for beta testing.
2.509+
To do: Correct manual on AS. "-" is for smaller staves.
2.510
Forgot to declare litq, voltxtq as character in subroutine getgrace
2.509
Corrected small bug in arpeggio shifting (ivx <= iv in call putarp)
2.508
Allow graces in xtups. New subroutine getgrace.
2.507
To do: Raise/lower figures.
To do: Add 24, 29 to list of musicsizes in manual
New sub adjusteskz to account for ask's when computing lengths of
brackets for unbeamed xtups, slopes and horizontal posn's of number
Bug fix: in beamn1, beamid, and beamend, allow unbeamed xtups w/ 2 flags
Add look-left option for keyboard rests, "L" in rest command, set iornq(30)
2.506
Fix bug with AK, when simultaneous rests have same duration, use defaults.
2.505
Keyboard rests AK
2.504
Space after normal grace: option X[n]
Fixed og when nv .ne. noinst, by using sepsymq instead of '&'
(To do) length of xtup bracket when there is added non-collision space.
Trap musicsize if .ne. 16,20,24,29.
2.503
Enable arpeggio left shift with ?-x
To do: In manual, arpeggio over 2 staves.
Allow musicsize of 24 and 29. Had to define meter font size explicitly,
also change font size for text dynamics, but not much else so far.
Bugfix in beamstrt, introduced in 2415, ip was changed before putxtn
was called, causing error in printing replacement number.
2.502
Incorporate Dirk Laurie's patch to use { , } , for ties.
Figure height adjustment: append +[n]
Change ec font stuff in pmx.tex per Olivier Vogel's comment (CM email?)
2.501
Readjust horizontal offset back to .8 in LineBreakTies
Fix zero-subscript (iudorn) in putorn
2.50
Increase number of text-dynamics (dimension of txtdynq) per block
from 12 to 41.
Slur option n to override altered default curvature.
Allow default ps slur curvature tweaks with Ap+/-c
2.416
Increase length of textdynq from 24 to 128
(Todo) Add comment in manual about blank lines at end.
Configuration file: Define subroutine getpmxmod, check path in environment
variable pmxmoddir, check existence, read lines into bufq after setup.
Increase dimension on idynn in dodyn from 4 to 10 for max number
of marks in a bar
Increase allowable # of lines from 2000 to 4000.
(To do) Replace definition of \liftpausc per Olivier.
(To do) Fix extraneous error message if RD is placed at very end.
2.415
Fix "AT" option: replace putxtn,topfile,beamstrt,beamid to use \xnumt
instead of redefining \xnum. Change font used to \smallfont (as for
normal xtups,
Allow slur to start on rest.
2.414
Correct bug in crdacc when adding accidental to boundary causes number of
segments to decrease
Special rule for 3-accidental chords: If no 2nds, place them in order
top, bottom, middle.
2.413
Correct bugs in chordal accidentals, related to left-shifted noteheads
(a) Special problems with downstem when main note needs shifting
(b) Assign 0 rank to boundary segs due to left-shifted noteheads
2.412
Change default horiz shift of start of seg 2 of linebreak slurs:
-.7 for slurs, -1.2 for ties,
Use height of start of seg 1 slur itself for end of 1 and start of 2.
2.411
"Apl" activates special treatment of linebreak slur/tie's; breaks all in 2.
"s" option in start of slur/tie as precursor to vert/horiz tweaks for end
of seg 1. of linebreak slur/tie, 2nd "s" for start of seg2.
With "Apl", curvature adjustments on starting slur command apply to seg 1,
those on ending command to seg 2.
2.410
"AT" to allow Col. S.'s tuplet option. Simply input tuplet.tex and redefine
\xnum, \unbkt, \ovbkt.
"s" option in main xtup input after "x": slope tweak for bracket. mult(4) is
flag, mult(5-9) is tweak value+16
2.409
Bugfix in docrd for MIDI: Use original pitch in case main/chord were
switched due to 2nds.
Remove "o" from error message for "A" command.
New syntax: optional instrument number separator ":" in movement
break command to precede a 2-digit instrument.
Conditional output formats for \setname at movement break to allow
instrument numbers >9.
Bugfix in coding to raise barno due to slur over line break (pmxb)
Move date/version data statement in pmxab to a better place.
2.408
Allow pnotes{x} when x>9.995 (mod is only to format stmt in make2bar).
Bug fix in \liftPAusep in notex.for and in pmx.tex
Character variables for version and date
For up-stem single graces slurred to down-stem, shift slur start left by
0.8 so slur doesn't get too short.
Initialize and slide mult, same as other full-program variables in /all/.
2.407
Allow AN[n]"[partname]" to be parsed by scor2prt as filename for part n,
2.406
Alter PMX: put \dnstrut into \znotes in \starteq (for system spacing
equalization).
Put dimensions of double sharps and flats in crdacc (for chords).
Bugfix: Use sepsymq in LineBreakTies(..) instead of '&'
Use only first 4 bits of mult for multiplicity+8, so rest can be used
for other stuff.
Move stemlength stuff in nacc(27-30) to mult(27-30) to remove conflict.
2.405: Not published but saved for safety.
Option Aph to write \special{header=psslurs.pro} top of each page, so
dviselec will work OK.
2.404
Allow slur to end on rest, but not start on a rest. Efaults height
of ending is default height of start (before any automatic or user-
defined djustments). User may adjust height as normal from default.
2.403
Bugfix: turn off repeated beaming patterns.at end of non-last voice.
2.402
Automatic repeated forced beams. Start with "[:" End with next explicit
forced beam or end of input block.
Increase # of forced beams per line of music per input block from 20 to 40
2.401
Optional K-Postscript Linebreak Ties, Apl. New subroutine LineBreakTies.
Makes 1st part normal shape, and starts 2nd part a little further left.
Enable arpeggios in xtuplets. Had to make time itar(narp) a real.
2.40
Set up WrotePsslurDefaults (logical) so only write defaults on 1st Ap.
Fix non-ps-slur input to \midslur (third signed integer). Do not reverse
sign for down-slurs.
2.359
Add error exit subroutine stop1 to make exit status g77-compatible..
Absolute octave on xtup chord note was 2 octave too high, fixed in getnote
Fermata on vertically shifted rest: special trap in putorn() to set height.
Correct multiple grace note spacing for small staves (in dograce,
define wheadpt1 depending on staff size)
2.358
Allow curvature corrections at start of postscript slur, in dopsslur()
Local slur options p[+|-][s|t] for [nos|s]luradjust,[not|t]ieadjust
Options for [Nos|S]luradjust,[Not|T]ieadjust,[noh|h]alfties: Ap[+|-][s|t|h]
Make t[ID] act like s[ID]t, most mods in spsslur().
Add spsslur() to read in data for ps slurs, call from getnote.
In beamstrt, save args for SetupB in common comipb to save them for
2nd call when xtup starts with rest
Add spacing for ornament ")" as if it were accidental, in make2bar().
Horiz shift start and end of ps ties, dep. on stem dir'n, in dopsslur()
Horiz. shift start of ps grace slur, 2 places in dograce().
Horiz shift end of grace slur in endslur()
Make st slurs into postscript ties. Separate subroutine dopsslur(),
Non-beamed xtup: "a" in 1st note or rest, before "x" (sets drawbm=.false.)
Allow two D"x" on same note. Introduced jtxtdyn1 in dodyn.
2.357a
Fix missing "end" in backfill.com, too-long lines in g1etnote, getnote
2.357
Increase dimension for # of lit TeX strings from 52 to 83.
Allow blank rest in middle of xtuplet. Only mods in g*etnote().
2.356
Increased some dimensions from 30 to 40 to allow up to 40 pages.
In unbeamed xtups, "n" did not suppress bracket. Fixed in beamstrt().
Fix parsing of "f,h,H,HH" in sslur.
Fix bug with cdot, note-level for slur termination (in getnote)
2.355
Midi transposition: IT[+|-][n1][+|-][n2]...[+|-][n(noinst)],
n=# of half-steps. Restrict to mult. of 12 now, to avoid key-sig issues
Make midi recognize ps ties in doslur.
Correct ttieforsl so that it eats 2nd argument properly, using \zcharnote
to get octave right.
2.354
With postscript slurs, make t-slurs real ties by inserting replacement
macros \tieforisu, etc, defined in pmx.tex
Check for open cresc or decresc at end of input block, using list[de]cresc
Hairpin syntax conditional on postscript slurs. Backup to fill in start
level, using new backfill(...). Separate height tweaks for
start and finish.
2.353
K-0+n to transpose by half step (rather than just change key)
Allow "rm[n]" when nv>1. Require it in all parts. Just write a stack of
\mbrest's
Enable "Rz"; define \setzalaligne in pmx.tex. Special treatment at end
of input block before movement break, and at start of block after
movement break, using \newmovement rather than \setzalaligne, since
former already redefines \stoppiece. In second case, set rptfg2='z'.
Make clefq(nm) common between pmxb and getnote; change references in
getnote at 'M' to array elements, setting all new clefs as you go.
2.352
Remove \parskip redefinition from pmx.tex; write it into TeX file when
"Ae" is invoked.
Ap to activate postscript slurs. Add macro \psforts to pmx.tex to redefine
\tslur in case \midslur was used. Allow slur inputs 'f','h','H','HH',
translate them thru mapping to (1,4,5,6) as \midslur params, then let
\psforts translate them back to ps slur macors.
2.351
Number slurs from 0 up instead of 11 down, anticipating postscript slurs.
Write "\eightrm" instead of "\cmr8" for \figfont with small baseline size.
Increase length of basenameq to 44 characters everywhere.
Increase dimension of mcpitch (midi-chord-pitch) to 20.
Set default systems per page to 1 if nv>7
In pmxb, move place where isystpg is reset to 0, so that \eject gets
written when there is just one system per page.
2.35
Cautionary accidentals with 'c' anywhere in note symbol.
NEW pmx.tex with \resetsize to set size to normal or small depending on
current \internote. Used with new coding in dograce() to get right
new size in case user has \setsize'ed some lines to \smallvalue. For
\smallvalue-sized staves, redefine \tinynotesize to give 11-pt font.
Affects pmx.tex.
Continuation figure with fractional length. May now mix with other figures.
If another figure follow Cont-fig, separate with colon.
2.342
Bugfix in getnote to recognize relative octave shift in grace at start of
input block.
In make2bar, initialize islhgt=0 earlier than before (possible solution
to Suse g77 compile problem that I could not reproduce)..
Bugfix in beamstrt & beamn1 for r2x6 c4D d d d
2.341
Syntax check: Forced page break page number must be > than previous.
Bugfix: Define ivx when "sliding down" breath/caesure data in pmxb.
2.34
New pmx.tex with redefined liftpausc
Bug fix with dotted, non-beamed xtups.
2.332
Fix bugs in horizonal shifts, spacing, for accid's, graces, noteheads.
Allow arbitrary pos. input to W in g1etnote and getnote.
2.331
Bug-fix in dodyn(..): typo on length of arg of txtdyn
2.33
Caesura (oc), breath (ob). Set iornq(28), store rest of data in ibcdata()
2.321
Rescale accidental shifts. Still use 7 bits but now map (0,127)
onto (-1.,5.35)
Fix ihornb bug in dodyn, seen with dynamics on lower-voice non-beamed xtups
2.32 (Noticed after posting)
Prohibit "/" as figure.
2.32 (Posted)
Tidied up accidentals in chords, do spacing.
Still to do:
check for "(" on chord notes in spacing algo
small accids
double accids
autoshift slurs
2.310
Extra call to precrd ahead of spacing chk, and single-note crd/acc
shifts seem OK, but not multiple. crd/acc shifts not recorded 1st time.
2.309
Alternate algo for accid shifts in chords.
2.308
Auto horiz. notehead shifting added to precrd.
2.307
Auto shifting of multiple accidentals in chords.
"Ao" in main chord note to keep accidentals in order. Set nacc(28).
If there are any manual main or chord note shifts, then
If any manual shift is preceded by "A" then
1. Auto-shifting proceeds
2. "A"-shifts add to autoshifts
3. non-"A" shifts are ignored!
Else (>0 man shifts, none has "A")
No auto-ordering, No autoshifts,
End if
End if
2.306
Initialize legacy note level to middle C in case user forgets to set
octave.
Shift xtup note?
Shift in elemskips rather than noteheads?
2.305
Stop pmxb from multiple endvolta's at start of new page.
2.304
"Sx" in a note means shorten stemlength by x \internotes. "Sx:" turn on
for multiple notes in the voice, "S:" last shortened note.
2.303
vshrink stuff all OK? Description is in pmxb.
2.302
Toggle vshrink with "Av". vshrink normally kicks in when \interstaff
hits 20. This still needs work.
Add " /" to last line if last char is not % or /.
2.301
Check in beamn1 for single note before multiplicity down-up.
allow '.PMX' as well as '.pmx'
2.299
Correct typo in pmxb involving PMXbarnotrue.
Replacement printed number for xtup: Unsigned integer after 'n' after 'x'
Minor upgrade parsing xtuplet options 'x...'
Correct dimension of nxtinbm in make2bar.
2.298
Account for doubled xtup notes in subroutine getx (user-defined spaces),
by adding ndoub as an argument..
2.297
Created and solved compiler problem. Put drawbm(NM) in its own common.
Add new def'ns [\a|PA]usc, \lift[pa|PA]usc to pmx.tex, use them in make2bar
when \centerbar is used.
Modify \mbrest & \CenterBar in pmx.tex to use \volta@endcor etc. Have PMX
use right 2nd and 3rd args for \mbrest when key, meter, or clef changes.
2.296
Correct printed numbers for forced beams with multiple xtups. For each beam
make list in setupb by voice of eloff (h-offset) and mtupv (printed #)
Increase lengths of jobname and infileq by 20 characters
Enable whole notes and breves as 1st or last note of xtup in beamn1 and
beamend, and wholes in beamid.
2.295
Midi balance Ib[n1]:[n2]:...[nn]
Single-slope beam groups [...]-[...]
Trap "i" unless after accidental (main notes, xtups, chord notes)
2.294
Unequal xtups with "D" to double a note in an xtup.
As above, "F" will (a) increase multiplicity by 1 for marked note and next
one and (b) add a dot to the first one.
Fix bug with e.g. c84 [ .d e.f ] by checking whether forced beam is on
when "." is encountered, then correcting beam start time.(end of getnote)
MIDI velocity (volume) set: Iv[n1]:[n2]:[n3]...
2.293
Check for single notes spanning bar lines.
Correct various bugs with staff-jumping beams. (1) for 2nd segment, vxtup
must be set in make2bar since beamstrt is not called, fixing problem with
dot at end. (2) add ivjb2 to flag which voice has 2nd segment and fix
problem when >2 staves.
Add nodur to args of dodyn, so can check if stemless and avoid height tweak
Correct bug in getdyn setting flag in idynda2(0) for manual horiz. tweak
2.292a
Undo syntax check for Type 2 or 3 TeX string starting in column 1.
Meanwhile, Werner's problem with a mid-line Type 3 string has gone away?!
2.292
Allow comments in xtuplets
Enable multiple octave jumps in grace notes.
Allow dynamics in xtuplets.
Fix bug in getdyn searching for end of text string (correct length of lineq
to 128)
Fix bug in dodyn, must ignore horiz. interaction tweak for
user-text (idno = 0)
Syntax check for Type 2 or 3 TeX string starting in column 1
(NOTE: later undone!)
Syntax check for page number > npages at forced line break.
2.291
Fix error in AS command (accid spacing for small systems), making only
one spec per staff, nv total.
Stop using MIDI channel 10
2.29
Fix error in console output format for # of bytes used in MIDI file.
Fix bug in dograce so no space is added between grace and main note when
there is a MIDI-only accidental.
Fix bug so oes?+4 works. It was too ugly to explain.
...Different ways of storing accidental specs on input and output.
No longer zap \writezbarno in special situations.
Fix bug in dyntxt level on rest
Line spacing equalization. Add macros \starteq, \endeq, \spread, etc.
Activate with Ae. (Maybe later could input alternate values for
\upamt, \dnamt, \parskip). Put \starteq on 1st note in voice 1
in the page, and \endeq on 1st note of next-to-last line in page.
2.28
Flip direction of forced beam "[f..."
Fix beam numbering for staff jumping beams. Uses irest(23,24,29,30)
Fix bug in sliding ip's for txtdyn's
In dyn's allow vert. offsets +/-64, horiz +/-25.6 (store in idnyda2(1-99)
2.27
Comment out lines in dodyn checking number of dynamic marks found. Voice
order may not be monotonic if two lines on a staff.
Literal dynamic: D"[text]"
2.26
Allow hairpin start-stop on same note by disabling auto-tweaks in dodyn,
increasing dimension of idynn to 4 to allow 4 symbols on same note.
Increase voltxtq length from 10 to 20.
AS[-/0][-/0]... to inform PMX that "-" voices are small, and rough
accounting for ast's is done by defining effective headwidth
whead1 in makebar2 to be 0.8*whead.
2.25
Fix logic bug with sepsym's when # of instruments changes.
Slight increases in default offsets for hairpin starts after "p"
2.24
Hairpins D< or D> as toggle.
Many automatic position tweaks for letter-group dynamics and hairpins.
2.23
Continued rhythmic shortcuts: space followed by "." or ","
2.22
In call to doslur, change tno(...) to tnote(...). This was only
used when checking to slurs per stem directions, and should have been
the note duration all along.
MIDI-only accidental, bit 17 in nacc, or 27 in icrdat.
Use "i" anywhere in note symbol.
2.21
Increase from 20 to 30 dimensions for movement breaks and midi sections.
Fix out-of-order declarations per mutex comments
Add "Bad error" and "Kluging" messages to log file.
2.197
add /comips/ to save tie-check midi variables
For spacing of clef changes at start of input block, changed integer time
lastnodur to prevtn, so it works with xtups. Possible incompatibility!
2.196
Fix Ickbug with time check in ncmid()
Interchange \fermataup7 and \pausec to get proper alignment
Enable French violin clef "f", number 7 in PMX, but 9 in MusiXTeX.
Add defn's of \hsp, \hspp to pmx.tex
Fix pre-slurs on xtup chord notes.
Fixed raised PAuse, define \liftPAuse
Replace \zbreve\sk with \breve.
Made "1" work as mtrdenl by doubling it and mtrnuml. BUT WAIT...what
about "o" and 1 as shorthand for 16???? Search for "Kluge"
Added "vo" (voice) as MIDI instrument 55
Allow 3-digit page numbers (search for "toppageno")
Fix bug caused by prior fix (cancelling accid after bar line was ignored).
Fix double accids in chords
2.194
Fix bug with accid/tie/barline/chord in addmidi by restructuring accid if
block.
Add meter to MIDI file with every pause
Purify FORTRAN?
2.193
Increased # of in-line TeX strings from 36 to 52.
Fix entry of # of bytes in header of tempo/meter/key track to allow >255.
2.191
Event track: Tempos, meters, keys all together. Data in comevent
2.15
Pretty good midi capability. Still no attention to slurs on chord notes.
2.11
11 Dec 99 c rm1
11 Dec 99 "oes?", "oe?"
11 Dec 99 Cancel slur horizontal tweaks with non-stemmed notes
11 Dec 99 Error message for shifted, repeated ornaments.
2.10 (Version 2.1)
Fix bug with lowdot and xtuplets
2.09
Fix bug with multiple ornament heights over beams, when one is . or _
Error message from pmxa if rest on last note of xtup.
Enable 12 slurs.
Reinstate multiple rests at start of xtup.
2.07
Combine consecutive type-1 TeX strings.
\midslur and \curve as 3rd signed digit in slur termination, + 2 opt.int's.
Fixed breve chord notes in docrd
Check irest(28) as well as vxtup when setting nodur for chord notes, since
vxtup isn't set until 1st *main* note in xtup
Vectorize nolev1, slope, ixrest. Klug fix for xtups with variable spacing.
2.06+
Make deterministic the beam slope calculation when there are an even # of
slopes in list and middle two are equal magnitude but opposite sign.
pmxa Trap for "o:" before 1st note in block
Partial bug fix for 64th notes in xtuplets.
Make ixrest a vector, since with new time scheme may not finish xtup in
same notes block.
Increase max # of pages from 20 to 30 (dimensions of nsystp,..., in pmxb)
2.06
Account for changes in nv when computing \interstaff. Add a counter
nistaff(iflb) = # of interstaff spaces per system = nv-1. Set whenever
setting isysflb(iflb). Note nv can only change at a forced line break.
Note also, iflb starts at 0!
2.05
Automatic start of new notes group with part 2 of staff-jump beam
In make1bar, set irest bit 29 of lowest-voice note at same time,
use as flag when making notes groups.
For now, remove dummy blank line at end...it zaps terminal repeats.
2.02
Fixed slur-counting bug for multiple, slurred, aftergraces.
2.01
Increase to ask(1400)
Increase max forced page breaks to 18
Define pausc for centered pause
2.0a
Insert dummy blank line at very end to handle input files w/o terminal CR-LF
pmx03r
Option m[n] in S symbol to change musicsize (for parts)
Double dotted rests now work.
Write file name to log file
Check existence of input file
Allow 24-char jobname, may end with ".pmx"
Comment out time stuff
Replace 3-argument getarg with 2-argument + iargc
Fix bug with negative noinst due to nint<=int replacement
move lovation of iv in isdat1 to allow iv>7.
Set nm=12
pmx03q
replace int(x+.001) with nint(x)
Write TeX file name to screen and to pml.
Replace char(...) with chax(...) to sovle msdev bug.
Bug fix: macro terminations when M is on a line by itself.
Bug fix: don't accumulate space for XS in pmxa.
Streamline Macros: use pointers to bufq instead of scratch files
pmx03p
Store input file in single character array bufq.
lbuf(i)*2 is length of line i
ipbuf is position just before next line to be read.
pmx03
Optimize read/writes
pmx02
Fix line count (for errors) when there are saved macros
pmx01
In optimize mode, open/close macros (Watch out for residual zz files!)
Command line input
Option Ao to optimize, otherwise normal processing
c
|