summaryrefslogtreecommitdiff
path: root/support/pmx/doc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'support/pmx/doc/ChangeLog')
-rw-r--r--support/pmx/doc/ChangeLog713
1 files changed, 713 insertions, 0 deletions
diff --git a/support/pmx/doc/ChangeLog b/support/pmx/doc/ChangeLog
new file mode 100644
index 0000000000..6715e9b1e3
--- /dev/null
+++ b/support/pmx/doc/ChangeLog
@@ -0,0 +1,713 @@
+2.94
+ Allow moving dots on main and chord note in 2-note termolos
+ Add definitions of \hbp and \hbpp to pmx.tex
+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