Greetings to my Friends and beta testers!  This is the latest version
of my player program which is still in progress and under development.
You are receiving it for testing purposes.  Please do not redistribute!

This file was created in Notepad, a fixed pitch Font text editor.  It
may look strange in Write, WordPad, or Word.  Sorry, this is easier
and faster for me.

** Temporary on-going Beta release while work in progress:  7-28-97 **

Skip to the end if you were beta testing _smfkar10 to see what is new
in _smfkar11.exe.  Otherwise, read on!

*************************************************************************

This version includes the new Midi Editor Screen Display which replaces
the Pianos when it is selected with the E key.  Read about it below.
The program will also Mute, Transpose, Save files, and Export Lyrics.
It accepts additional Command Line files while running and plays them
without starting another instance of program with a busy midi device.
Also adjusts Tempo with keyboard HotKeys and can recall _00INDEX files.
Midi Control Panel now displays 'real' data for all controllers in
real time and allows that data to be changed and saved!

*************************************************************************

It also includes the ability to CUE anywhere into a file, as well as
set an 'END' Point which causes the program to 'LOOP' the selected
area over and over until it is stopped.  I will be creating a Dialog
for this with all related functions in one area, but for the time
being (during development) the Cue Point is set by Left-Clicking the
BBC display above the Play/Stop/Next Button.  The Bar:Beat:Click
text displayed MUST be changed/editted to remain in the EXACT same
length and format.  For instance the Bar and Click must be 3 characters
long, and the Beat 2 characters.  Use leading zeroes where needed.
The Colons separating the digits must be there!      (001:01:000)

DO NOT use the Close Button on the Dialog(s) for Cue and End Point!
If you do, they will ERASE all the text in them, and they will be
blank the next time they are called.  Then you MUST type in the whole
string of characters again!  The 'End Point' (or Loop End) is set by
pressing the 'Page Down' key.  This calls a similar Dialog and the
same rules apply.  Setting either one (correctly) will cause the song
to restart with the new settings.  Obviously an End Point that precedes
a Cue Point is invalid, also any Beat other than 1-4 (zero is invalid).
Also a Cue Point beyond the maximum measures, etc.  When setting the
Clicks, they may NOT be greater than the midi file resolution minus one!
For example: 480 resolution allows 000-479 as valid click digits and
96 resolution allows 000-095.  Remember to always keep the same number
of digits and use leading and ending zeroes as needed.

You should have already started playing a song you wish to CUE, so that
the SYSEX is sent out, etc.  When a song is CUE'd, no SYSEX is sent out
and Auto GS and GM Resets are not performed if they are active.  All the
Controllers and Presets, including Pitch Bend ARE 'chased' however; and
they are sent just prior to beginning actual Play at the desired point.
Even the NRPN and RPN Controllers and DataEntry associated with them is
sent (chased).  The Piano and Editor Displays will have all the data
they need to correctly display the song at any Cue Point, just as
though it had been started at the beginning.

When CUE and/or END Point are set, each time the song is stopped and
started these will remain active.  The last numbers in the Dialogs
will be remembered as long as you never use the Close Button of the
Dialogs.  To CANCEL the CUE and END Point activity without re-Opening
the file (which is one option), use the END key (under HOME) on the
keyboard.  This stops the song playing and disables the CUE and LOOP.
The more difficult option is to actually reset the Cue and End Points
manually to: 001:01:000 and end of file for the End Point.  This will
all be refined and become 'user friendly' when I create a proper
Dialog for the operations.  I am using a 'canned' one supplied by GFA.

Another new item is that the songs length in Bars:Beats:Clicks is now
displayed as part of the Midi Info under the Keyboard or Editor Displays.
Additionally, if CUE and END Points have been set and are valid, these
will also be displayed (until Cancelled).  The Midi Info display has
been revised also.  The full path to the source file is shown, and the
Song title has moved to the top line.  If no title is found it will say
'Untitled'.  If the 'U' is not capitalized then this 'untitled' was
title text found in the midi file.

Technical Note:  As I do not use any special internal format, and play
midi files 'as-is', the only way to Cue into them is to actually play
the data up to the Cue Point (but not send it to the midi port).  The
longer a song is and the further into it you Cue, the longer the delay
before actual playing starts.  Of course the speed of reaching the Cue
Point is in part determined by the computers CPU and clock speed.  It
is not objectionable on my 486DX2-66 and is very quick on a Pentium.
This method of Cueing the file also allows easy 'chasing' of the Presets
and Controllers which are 'saved' and output just before actual playing.

Final HINT: When using the CUE function, it may be convenient to use the
R key often (for ReStart).  The screen update will be cleaner than if
you use the SpaceBar to Stop and Start again.  The 'ReStart' will occur
at the desired CUE Point of course.  Using the R key suppresses the
normal Clear Screen which is done before redrawing the Pianos or Editor.

*************************************************************************

It also includes Mute and Transpose ability, and a feature I call
"AutoMute" which maintains a file in the programs directory of Mute
and Transpose settings for each song.  When AutoMute is OFF, you may
still Mute or Transpose as desired, but settings are RESET when a new
file is Opened for playing.  With AutoMute ON, your Mute and Transpose
settings are saved and recalled when the same file is Opened again.
Nothing is changed in the Midi or Karaoke files themselves.  The 'log'
file is named '_mid_kar.cfg' and is created automatically if it doesn't
exist each time the program starts.  It can be viewed in NotePad.  An
example of this files contents is at the end of this doc.

To Mute any Part or Channel simply Right-Click its Voice Name display
or if on Editor Display the Row for the channel to be Muted.  The Voice
Name will change to "* Muted *" and the Voice Number will continue to
display.  Right-Click again to UnMute any part.  Any number of channels
may be Muted.  The Volume Controller is used to mute parts.  If any
Volume events are already buffered to the DLL which plays the midi data,
they may cause the volume to return to normal.  Either toggle the Voice
a couple of times, or restart the song with the Mute enabled, then no
Volume controller data can get thru.

Turn ON the AutoMute feature if you wish to 'record' the data to the .cfg
file.  This is toggled ON/OFF with the 'X' key.  The only indicator of its
being ON or OFF is an asterick (*) next to the Midi Info for 'Format: 0'.
If it is ON the asterick will appear.  If Karaoke Lyrics are replacing
the Midi Info display, you may press the J key to recall the display.
AutoMute will automatically create an .ini file entry for itself.

To Transpose, press the T key (for Transpose), and a Dialog asking for
the amount plus or minus is displayed.  Zero is no transpose, -12 or 12
is the maximum in either direction.  The song will automatically restart
if the transpose value is different from the last or default of zero.
Transpose offset is saved/recalled along with Mute data if AutoMute is ON.
AutoMute MUST be ON before setting Mute and Transpose adjustments if you
desire the information to be saved.  Simply turning on the AutoMute does
not do any saving of data.  Adjustments trigger the save operation.

*************************************************************************

You may Export Lyrics texts to a .txt file by pressing the Y key or F8.
A new menu item in the File menu: 'Export Lyrics...' will also do this.
Of course you must have a Karaoke file loaded with Karaoke turned on.
You are given a Save As... Standard File Dialog with a suggested filename
the same as the karaoke file with the extension changed to .txt.  If you
change your mind, you can Cancel from the File Dialog.  If you do save
the file, it will then automatically be Opened into Notepad so that you
may view it.  You may change the directory or filename as desired before
you complete the Save Lyrics function.  The file has already been saved
to disk before it is passed to Notepad.  You do not need to save it
again, unless you make changes to it.  Exported Lyrics are useful when
you wish to view the lyrics as a whole, print them, or import them to
another midi file (maybe a better one).

*************************************************************************

You may now recall any saved _00INDEX.TXT files created by the MultiPlay
File Selector Index Button.  Simply press the 'Page Up' key on the
keyboard.  If such a file is present in the current directory, it will
be Opened with Notepad.  Also, when new _00INDEX.TXT files are created,
they will now automatically Open into Notepad also.  Close Notepad in
either case when you are finished viewing the files.  Hopefully your
directories are not so large that they create a file too large for
Notepad!  If so, no harm done, Notepad will just Open Empty and can
be closed.  This feature might also be used to quickly access Notepad
to make some quick notes you want to send me!  Just start a new file!
Then you can save and paste the notes into your email program or send
the .txt file as an attachment. <grin>

*************************************************************************

The Midi Control Panel now updates the Scroll Bars (sliders) in real time
for any and all controllers as well as presets.   Furthermore, if you
adjust the sliders and there are actual midi events in the file you are
playing, the data for the events will be changed in the file!  If there
is no event in the file to modify, the data is simply sent to the midi
port.  CAUTION!!  DO NOT adjust moving or constantly changing sliders
which represent a continuous stream of events.  ONLY adjust stable ones.

Streaming events need a different type of editor to change them correctly.
Single events can safely be changed, even ones further into the file as
it plays.  With this Editting ability you can now do great damage or
good to your midi file collection!  Use care and caution while making
adjustments.  Of course the original file is still available to Re-Open
if you make a mess.  If you like your changes, then you may Save the
file, and it is always recommended that you change the filename and
don't overwrite your originals (just in case!).

You can use the new Editor Display screen to see what events can be
changed.  If there are no Volume, Preset, Pan, etc. events on the channel
you want to 'adjust' then you are 'out of luck'.  Any adjustments made
for non-existent events are only done in real time, but no changes are
made to the file, and they are lost when it is restarted, even if it is
resaved.  Keep in mind that the Midi Control Panel can only truly edit
events that are actually in the file.  The sliders will be defaulted to
GS Reset standards if no events are in the file for them.  These would
be Volume: 100, Pan: 64, Reverb: 40, Chorus: 0, and Expression: 127.
If you call the Midi Control Panel from the Editor Display by LeftClicking
a channel's Row, then you can move the Panel to uncover and see what
events are valid for changing.  This is just a Hint.  The Editor Display
will not update while you move sliders until something causes it to
redraw (like moving or closing the Control Panel).

NOTE:  If you edit any events (that are edittable) in a file, and have
not Saved it yet, you are asked if you wish to before Opening a new file
or quitting the program.  This prompting is dis-abled if you are in the
MultiPlay mode and playing a list of files.  It would be annoying to
have it pop up between songs.  However, if you make adjustments during
Multiplay, you may save while the file is yet playing as long as it is
not near the end.  It must remain in memory during the save!  You could
pause with the Q key (for Quiet).  I will later automate this security
item and have the save routine check for the song's progress and auto
pause it if necessary or 'lock' it until the save is done.

*************************************************************************

Saving file(s) is done with the either the Menu item under the File menu
for 'Save As...' or by pressing the S key (for Save) as a shortcut.  Save
operations can occur while a file is playing, even in the MultiPlay mode.
You are presented with the Standard Save Dialog and may select a new
directory and/or filename, etc.  I recommend changing the filename a bit
when saving editted files, so you have the original just in case.

You can also save 'uneditted' files during audition of downloaded files
from the internet for example.  You may want to copy the file to your
favorites or artists directory (from your download directory).  When you
are finished auditioning files, you can then use File Manager or Explorer
to delete the ones from the download directory.  If you are in Multiplay
and change the Save To: directory, it will be remembered for the next save
unless you change Multiplay directories.  This is handy for copying files
to your favorites or keepers directory while MultiPlay Auditioning them.
You only have to set the save directory once in most cases.

NOTE:  When command line files are received (from outside the program)
Multiplay is turned off and the program resumes Single Play mode.  This
would be the case when Web Browsers pass files to play.  Then you need
to watch and change the Save To: directory as needed.  It will once
again have defaulted to the directory the current file came from.

*************************************************************************

Almost forgot a HOT new feature of the program!  You may now pass files
to the program, including those from Netscape or Internet Explorer to
play and save.  The program will only allow one 'instance' of itself to
run, and if a second instance is started, it simply passes the file
included on its 'command line' to the running instance of the program.
This brings up the program (makes it visible if hidden or minimized).

If you were using this as a Web Browser Helper App then you will want to
have saved any previous file if you wanted it.  Of course I have noted
that Netscape saves files to a temporary directory before passing them
to a helper APP, and while in my program you can re-Open any file for
saving to your favorite directory, and if you do so with the Multiplay
selector, you can start each song selected, save it, and move to the next
one, to do a whole batch of them.  If you don't save them, they will be
lost when Netscape (or Explorer) quits and erases the temp directory.
This might be useful as an initial screening process for auditioned files.

Previously, I was grabbing files from the Netscape Cache directory with
special encoded filenames.  When they are in the temp directory Netscape
gives them their actual file name though.  Interesting to note that when
Netscape uses its midi Plug-In, and you save from it, the filename is
blank or untitled!  Kind of sad!  I have yet to figure out how to turn
off the midi Plug-In in Netscape.

This new feature also means that unless you have another midi application
running when you try to run mine, it won't find the midi device in use
and refuse to operate.  It means you can double-click another midi file
in the File Manager or File Explorer and if my program is associated with
mid and kar files, it will accept the new file and play it.  If the
programs .exe filename is visible you can drop files on it (only one),
and this would also work.  Previously you had to quit my program before
you could double-click or pass another file to it.  I have yet to encode
or implement true Drag and Drop (on the programs Window or Icon).
I used programmers trickery to implement this feature in a way that
is compatible with Windows 3.1x and 95.  Don't know how it is done
by the 'big guys' but my method works reliably and quickly.

*************************************************************************

Several keys (HotKeys) have been changed, and others added.  Some
of the changes show in the NEW HotKeys Help menu item.  These are as
follows:

E used to be Transpose, and is now Midi Editor Screen.  (E for Edit!)
T used to be PlayList dialog, is now Transpose.         (T for Transpose!)
P used to call Midi Control Panel, is now the PlayList. (P for PlayList!)
S used to change SYSEX output limit, is now Save As...  (S for Save As...)

None of the following HotKeys show up in any Help yet.  This is your only
listing until proper docs are created!!

? You can now enable Drum Notes with the "/?" key on the keyboard.
  This was added so I could see what was being played on midi's with
  multiple Drum Parts (channels).  By default the Drum Part was hidden
  as far a Piano Notes playing or Note Activity on the Editor Screen.
  Normally these just clutter the Piano Note display, but sometimes it
  is useful to see them.  It is a toggle, press again to hide drums.
  You must restart song to see effect of a change or wait til the player
  reaches the point in time where the drum notes are saved for display.

  The program now displays all Drum Parts by analysing the SYSEX messages
  which do this for Roland products.  This also prevents transposing of
  Drum Parts wherever they are.  The Voice Names which are drum 'Kits'
  that show up on channels other than 10 are setup with SYSEX messages.
  Most of the midi's with extra drum parts are Roland's or other
  professional files.  Channel 11 is most often used as 2nd Drum Part,
  but I have files with up to 8 Drum Parts set on different channels!

New HotKey for Midi Control Panel is the F9 function key if needed, but
easiest access is by Left Clicking the Piano Voice Boxes or the Editor
Display Channel Rows.  This opens Midi Control Panel on the desired chan.

New function keys:   (This again, is the only listing of these!!!)

F1=My Simple Help          F2=HotKeys Help (Doesn't include all keys yet)
F3=Slowest Tempo (10)      F4=Fastest Tempo (250)  (Home Key=Resume Tempo)
F5=Toggle Automute         F6=Force Automute       ("X" key is same as F5)
F7=Show About Dialog       F8=Alternate for Export Lyrics   (Y is std key)
F9=Call Midi Control Panel (Left-Click Piano or Editor area for channel).

Home Key:    Resume Original Tempo (if changed with F3, F4, or Arrows).
End Key:     Stop Playing and disable CUE and END Points if active.
Arrow Keys:  Up/Down - change the Tempo in steps of Ten (10).
             Left/Right - change the Tempo in single steps.

Page Up:     Open any _00INDEX.TXT file into Notepad from current directory.
Page Down:   Call up Dialog to set END Point (or LOOP End).
             Left-Click BBC display to call up set CUE Point Dialog.

Yes!  You can now change Tempos with the keyboard.  When Tempos occur
in a song, they will override your changes, but if only a starting Tempo
is in the file, then you have free reign!  The keys repeat, so don't hold
them unless you want the repeat action.  As above, L-R Arrows change value
by one, Up-Dn Arrows by ten, "Home" Resumes last real Tempo, and F3/F4 set
the Slowest/Fastest Tempo possible (10/250 BPM).  L-R Clicking the Tempo
display still changes value by one in either direction.

**************************************************************************

After placing this version in "My" directory, for access to all the
regular support files, it can be started as you would any other version.
I wouldn't erase other versions until the program is finished.  There
could be undiscovered bugs and I wouldn't want you to lose that which
works OK.

Once running with your favorite song, you can press the E key for Edit
Screen.  If the song happens to be Karaoke, this still displays below
the Editor area.  Of course if you press the W key for Full Screen Lyrics
display, I have not yet disabled you from doing this, and the effects
will not be what is desired at this point, but no harm will be done.
You can Toggle the E key to switch screen displays as often as you like.

No work has been done on editting from the new Editor Display yet.
Clicking on any Channel Row will call up the Midi Control Panel set to
that channel.  Also unfinished is the Usr1-5 and "Vel Key" columns.
Usr1-5 has been permanently set to the controllers listed at the bottom
in the light grey area.  They will be user selectable when the program
is done.  Vel and Key are for user Velocity Offsets and Transpose Key
changes.  No input taken from user yet.  Extra wide Voice Name area is
designed with new Midi Preset data in mind (longer voice names).

Features of the Edit Screen display:

All important midi events are displayed except SYSEX of course, even Bend.
All 16 midi channels are monitored at once.  You can see the standard
controllers for each: Volume, Pan, Reverb, Chorus, Expression, Mod Wheel,
and Control Zero (voice variation Bank switch).  The "fixed" controllers
are: 5 Portamento Time, 6 Data Entry, 32 Control 0 LSB, 64 Damper Pedal,
and 65 Portamento Switch.  Damper and Porta SW are OFF if less than 64,
and ON if 64 to 127.  You can see the Damper Pedal (Hold 1) used for
Piano and Guitar parts often.  Data Entry is used to setup special
voice parameters with NRPN and RPN controllers.  If the last of these
were Filters for Resonant Sweeps, the Data Entry is usually set to
adjust the Resonant portion, and can be watched for Wah Wah effects.

Although the Editor display shows the real Control 0 and 32 data in the
file, my player filters out incorrect or invalid numbers that would cause
problems on some synths (like no sound!).  This will later be an option,
just in case these odd values showing up in some files, actually switch
to a correct voice.  I don't have any data on the XG series or other
synths to know what is valid or not.  I am a Roland user at heart.
I will be updating the programs intelligence to handle the new SC88
voices in a while.

The Bend column shows Pitch Bend graphically.  If the column is blank,
no bend has been sent (not even zero bend).  If only zero bend position
has been sent, then you will see the single vertical bar in the center
of the bend area.  When bend is active, higher pitch is to the right,
and lower to the left.  It is fun to watch various songs use the bend.
A future feature will allow the regular controllers to also be displayed
graphically instead of numerically, like the Pitch Bend.

As you view various songs, you should note that ONLY data which is in
the actual file is displayed.  If no Volume control value appears for
channel 2 for example, it was not included in the file.  Any data
which DOES show, can be editted with the Midi Control Panel, and when
this Editor is complete, you will be able to change it without calling
the Midi Control Panel.  There will also be the ability to ADD new
controllers for those which are missing, but desired.  All Data is shown
in realtime, as the event is being sent out the midi port (played).
Many songs only initialize controllers and presets just before they
are to be used, and not necessarily at the start of the file.

Note activity on any channel is shown to the left of the corresponding
channel number (1-16).  A single note is approximately 2 pixels wide,
and if blinking means the note is being repeated.  As notes are added
to those playing (or removed), this display will act like the Pitch Bend
and grow to the right or shrink.  Chords being played will have the
widest display which might also be interpreted as a kind of relative
"loudness" due to quantity of notes.

This concept of being able to view all the important activity in a midi
file playing, on all 16 channels, is unique to this program.  I have
never seen anyone else do this.  It is a great learning tool to see
how it "all comes together" as a song plays.  Once the actual editting
code has been written, you will be able to change data that is shown,
and resave the file.  This is an enhanced concept of a similar Editor
Display I developed on my AtariST program and computer.

I have amused myself for hours fooling with this and watching various
midi's.  I hope you are amused also.  If you have suggestions or ideas
during my development of this new tool, please write me and share your
insight.  Oh, to turn off the Editor Screen simply press E again, it
is a Toggle.  You can switch between the Piano Keyboard Display and
Editor Display anytime and as often as you wish.  You can call the
Midi Control Panel or Multiplay Selector, etc.; and when they vanish,
the Editor will redraw its data.

I have plans to add 2 or 3 new Scroll Bars to the old Midi Control Panel,
for Expression, Mod, and Pitch Bend.  The User Bar will still be available
for any other controller desired.  This particular view, with Scroll Bars
updating (as though you were moving them), is a fair imitation of a mixer
panel.  It's limitation is only being able to monitor one channel at a time.
It does seem to be very fast at updating the ScrollBars in realtime also.
I am also thinking of replacing the Channel select Scroll Bar with one of
the others, and putting a row of Buttons to select the channel.  This might
be faster and easier than a ScrollBar for that function.

This program is not being released to the general public, and is intended
for your amusement and feedback only.  If you desire to give this to
your friends, please ask me before doing so.  It is now growing more
and more powerful and full featured, and I hope to someday receive some
monetary reward for my efforts.  Thanks for honoring my wishes.
Hope to hear from you soon, regarding this on-going work.

Sincerely,

Mark Feaver   mfeaver@s3.sonnet.com    http://www.sonnet.com/usr/mfeaver

  (Note: Only the original program is available on my simple website.)

Example _mid_kar.cfg file:
---------------------------------------------------------------------------
  ;***** Mute and Transpose File Log *****
  ;First number is muted channels bitwise.
  ;Second number is the transpose offset.

  [Files]
  danger~2.mid=8,0
  good_lov.mid=1,0
  have2go.mid=1,0
  moonligh.mid=8,0
  sunday_m.mid=1,0
  unclealb.mid=8,0
  winner.mid=8,0
  youain't.mid=8,0

---------------------------------------------------------------------------
Final Notes:

My program is the only one that I know of which does NOT destroy the
integrity of a midi file by putting it in some internal format.  The
only thing which is modified by the Midi Control Panel is a single byte
in a midi event.  The order and timing are not changed.  No system
exclusive, text, or other events are stripped from the files.

Commercial format 0 files are most easily corrupted by an unknowing user
of Cakewalk, CuBase, PowerTracks, etc. etc.  These sequencers always put
midi files into their own internal format which most often destroys the
integrity and original painstaking efforts of the Artists and Recordists
which created them!

The only correct way to play or save a format 0 file is to leave it alone
in its original order and every detail.  As soon as you load it into a
player which "extracts channels to tracks", you have changed the timing
and order of events in the file.  Even if you save it back out as a
format 0 file, it will be totally different from the original work!

Format 1 files are not as 'critical', but still suffer damage from many
commercial sequencer packages.  I have discovered reversed Note-On and
Note-Off order occurring at the same 'tick' which causes older synths with
less polyphony to run out of notes and chop notes off.  Also, these files
are still subject to the sequencers throwing away of data it does not use
or want.  However, the data which is thrown away was there for a reason,
and it should be the end user who throws it away, not the sequencer!

I see so many files that have been corrupted that I pass this information
along to those who wish to preserve the quality that went into original
Commercial (and non commercial) midi and karaoke files.  My sincere
recommendation is that you never overwrite original sequences with saves
from commercial sequencer packages (or even my own), unless you are
absolutely sure they haven't corrupted the data or thrown some away.

Commercial sequencers are good for creating originals, but should be used
cautiously with imported .mid files.

                                                   Mark

New features for _smfkr11.exe

1. Midi Device Select is in Misc menu now so .ini file doesn't need
   editting to change the device.
2. Program remembers the last file and its directory and plays it
   when started, unless a file is passed to it on its command line.
3. If the item "exitmess=" is added to your .ini file, and is set
   to 1 (one) "exitmess=1", the program will ask if you wish to
   quit whenever an attempt is made via close box, menu item, or
   ESC key.  When set to zero "exitmess=0" this is disabled and you
   have the original quick exit.  Don't include the quotes in the
   .ini file entry!  Nothing in the program writes this value for
   you, you must set the value and save the file ONLY with NOTEPAD!
4. The program tries to remember its window position and size if it
   is not MAXIMIZED (without a sizing border).  This may help those
   who are fighting Win95 task bar and have plenty of room for lyrics
   under the keyboards.  Simply 'moving' the window with its Caption
   Bar will not update the position.  You must use the sizing borders.
5. A character bug (thought I had fixed it) was corrected in Titles
   with accented (foreign language) characters.  They display now.
6. Some other minor bugs have been fixed.
   Keyboard notes left displayed after a song was done is fixed.
   An error dealing with invalid midi data values has been fixed.
     It caused one song with a preset of 255 (256) to show only
     one bar of length.  Now it ignores data bytes that are invalid,
     and in this case, the offending byte was editted with the Midi
     Control Panel, and the file re-saved.  Of course 0-127 is the max
     value allowed for a preset (128 when 1-128 is used).

That's all for now.  Still working on things and completing others.

