               NEW FEATURES and IMPROVEMENTS (old doc)      3-6-91

1.  APPEND SONG has been added.
2.  Newly updated FILE SELECTOR pathname modes. Details below.
3.  New DISK FUNCTIONS: Rename, Delete, Create Folder, Copy Files.
4.  MEDLEY PLAY now allows creating a play list with order of play.
5.  UNDO CHANGES has been added to Main Edit Screen.
6.  TIMING CHECK now supports 5/4 timing (120 Midi Beats).
7.  New "BLOCK NOT ON SCREEN" alert for Block Functions.
8.  New Song PLAY option using SPACE BAR to start or stop on all screens.
9.  BARS and TIES may be quickly selected with the right mouse button on
    Half and Whole REST icons.  When on staffs, Right Button exits Bar or
    Tie Mode and returns last note or rest that was in use. R-Clicking
    the Quarter Rest thru 32nd Rest still calls DELETE RESTS as before.
10. Bell sound may be turned off if found to be annoying. (Alerts etc.)
11. Drummer will now play from MIDI PARAMETER SCREEN if it is turned on.
    Keys 0-9 still select the Pattern and S or F the speed.  SPACE BAR
    can be used on MIDI SCREEN to start/stop song play.
12. On EDIT PATTERN SCREEN (Drums) SPACE BAR is start & stop now.
13. If MESSAGES are turned off (HELPS MENU) when DELETE RESTS and BLANK
    COLUMNS is called, the RESTS that are left will be moved up above
    the staffs.  With MESSAGES ON they are not repositioned.
14. COLUMN BEATS if on, are updated immediately, and also are displayed
    during SCROLL PLAY if they are activated.
15. MIDI CLOCK DELAY has been added (adjustable) for drum machine sync
    fine tuning or special effects.
16. If TRACKS are ON and you are using TIE NOTE ICON, when colors are
    switched on/off you now stay in the TIE MODE.
17. If a TIED note is deleted (one at a time), it is UNTIED.  Previously
    you had to untie any notes you wanted to delete.  You must still untie
    any Tied notes in a column when you use the DEL cursor from pull-down
    menu to Delete the column (unless all columns Tied are also deleted).
18. If a single note color is changed (one at a time mode), TIED NOTES
    will all be changed to the new color at the same time.
19. SCROLL PLAY drawing is now done in assembler. Accents & colbeats show.
20. On MAIN EDIT SCREEN deleting a note redraws only its column and not
    the whole screen (in assembler).  Adding notes with accidentals, such
    as Sharps or Flats, immediately draws the note with the Sharp etc. in
    place at the base of note.  The only time the complete screen is
    redrawn, is when Tied notes are erased or Shaded columns are un-
    shaded, etc.  This avoids time delays and most screen flashes.
21. You are prevented from placing notes on the REPEAT BEGIN or END BARS.
22. Adding a note or rest in the  last column gives 20 new empty columns.
    Also, clicking on or to the right of the END BARS will do this.
23. SONG TIMING CHECK now ignores Tempo Changes in the song, which it
    thought were measure bars!
24. If channel number on Midi Param Screen is adjusted and you recheck for
    Bad Columns with the #2 button, song is rescanned with the new chan.
    Previously you had to click button 3 or 4 to reset it or leave Midi
    Screen and come back.
25. If a Tempo column (inserted Tempo) is reselected, the value can be
    changed without making a new Tempo column and deleting the old.
26. Saves a Standard Midi File in format 0 (one track).  NOTE: I do not
    yet save drummer data to the Std. Midi File from my "experimental"
    internal drummer.  This will be implemented in later revisions.  Of
    course if you have drum and effects notes in the song, they will be
    saved and played just as the music program plays them (like any other
    note). Also, if tracks are turned on and one or more colors are turned
    off, those voices or sounds will not be a part of Midi File (just like
    playing with tracks in my program).  Timing will still be correct.  Be
    sure to set your time signature (4/4 3/4 etc.).  SMF file uses this!
27. Both insert and delete wait for release of mouse button now.  Delete
    additionally has a little extra delay for debouncing purposes.
28. Minor bug fix on Midi Screen - function #1 didn't erase to the last
    pixel before the black border on the right. It does now.
29. Trying to delete a rest with tracks on was impossible if the rest
    color happened to be turned off.  Rests are no longer tracks sensitive
    and DELETE RESTS and BLANK COLUMNS function now sets all rest colors
    to black as an added clean-up feature.  (A rest is stored just like
    a note with color info. but no accent, accidentals, or ties.)
30. DETAILS OF UPDATED FILE SELECTOR BOX:
    A. The three Drive letters now represent the first character in their
       respective pathnames.  They default to A  B  C on bootup, but by
       changing the pathname they may be set to any legal Drive letter if
       it is installed in your system (A-P).  This means Hard Drives are
       now supported.  This is also important for the new Copy function.
       You may arrange the three paths in any order you like or set them
       to all be the same ie., B C A  or  C A A  or  A C D etc.  Each path
       is "remembered" if you leave it and come back; so if you're in a
       folder on A: and switch to C:\ (Root) and then back, you will still
       be in the folder on A:.  You may still crash your system if you try
       to use an illegal path or swap disks while in a Folder.  This may
       be especially true on the new ROMS, although mine (old ROMS) has
       never crashed or even given me a System Alert on a bad pathname!
       IMPORTANT NOTE: Make sure you have a Disk in any drive you select!
       On a single Drive system, the operating system should request that
       you place Disk B in Drive A, because it knows you don't have Drive
       B connected, but lets you use Drive A as though it were B!
    B. If a Folder name is clicked on (single click) it immediately opens
       the Folder without an alert box.  An R-Click on the Pathname will
       back out of any level of Folders by one folder per click.  The Bell
       sounds if you are not in any Folders.  An L-Click on the Pathname
       opens the Pathname Edit Dialogue box.  While in this Dialogue Box
       an R-Click on the Pathname there also backs out one folder at a
       time.  However, if you do not select [OK] the actual path will not
       be changed.  Normally, you will only manually edit the pathname to
       change the Drive letter for a Copy operation or change the exten-
       sion to the wild-card ".*" to see what files or other folders you
       have on the disk.  Note also that any folders created in my program
       will always have ".SNG" as the extension so that they show up in my
       File Selector Directories with the default pathname ending in .SNG!
       I chose to do it this way thinking that I would not want to see a
       lot of folder names in my root directory if they didn't have songs
       in them (after all this is a music program).  If you want to save
       songs to folders that don't have that extension (.SNG) then create
       the folders you require with Desktop before entering the program,
       then change the default pathname from ".SNG" to ".*" afterwards.
       This will allow you to see and enter your folders, and of course,
       load or save from/to them.  It just occurred to me that I might
       want to have a folder with nothing but ".MID" files in it.  Maybe
       I will add the option to select one of 2 or 3 fixed extensions.
       Reasons I didn't want the user to specify an extension, were that
       I would have to error check his name and extension for validity,
       and didn't want the extra code overhead, plus my Filename Box only
       handles 8 characters, and I wanted to insure that song folders all
       would show up in my root directory without my having to first read
       for only folders, and then again for filenames, plus making sure
       no duplicate folder names resulted from the two "reads"!  Too much
       extra, clumsy and time consuming code!
    C. The new disk functions are selected by first clicking the Diskette
       Icon on the left top of screen.  This opens a selector box.  Click
       the desired function and its border lights up.  Click on OK to go,
       or CANCEL if you change your mind.  Each has its own instructions
       or alerts and allows aborting.  COPY always copies to the 3rd Drive
       letter, whatever it happens to be, and uses its entire pathname as
       the destination, including any Folders if specified.  Please recall
       that the three path names are memorized and can be preset before
       calling the COPY function.  The Copy Dialogue Box shows the source
       and destination paths up to approx. 24 characters.  The source is
       always the Current Path before entering COPY mode via the function
       selector.  With this setup, the default for Copying is from either
       Drive A or B to Drive C (usually RamDisk in our case) and this
       replaces my old Load RamDisk function.  However, by changing the
       A or B path to be C, and the C path to be A, you can now copy from
       RamDisk to the Drive of your choice, or you can copy from one Drive
       to a second Drive, or even from one folder to another on the same
       Drive or RamDisk!  I know its a little clumsy, but again this is
       a music program and not desktop or a disk editor!  So a File Copy
       function, no matter how awkward, is an added bonus feature!  Also,
       before copying, you may select the files you wish to copy, or if
       none are selected, it will automatically SELECT ALL, excluding
       folder names of course.  Before starting, it confirms the number of
       files to copy and you may abort here if you like.  Besides that,
       once copying is started you may still abort early with the <Q> key.
       You may even abort while at the select filename phase by clicking
       the cancel box of the File Selector Screen!
    D. The RENAME and DELETE file functions operate on the filename that
       is currently showing in the Filename Box at top of screen (where
       you normally edit or enter a name by hand).  Both allow aborting
       after informing you of the action that will be taken should you
       select [OK].  RENAME even checks to see if you have a file by the
       new name on disk already, and thus aborts the rename process!
       Remember to select a filename (put it in the Filename Box), before
       calling these functions, but no harm is done if a null string or
       other name is there.  In the first case the request is ignored, and
       in the second an alert comes up for the DELETE always, and with
       RENAME the cursor shows in the Filename Box for editting the name,
       and you may just hit RETURN.  If no change was made in the name,
       RENAME just ignores the request, else if you actually do change the
       name, it shows both OLD and NEW names and allows you to abort.
    E. MAKE FOLDER puts the cursor in the Filename Box which is cleared
       first.  If you change your mind, just hit RETURN and the null entry
       will tell the program to abort creating a Folder.  Otherwise enter
       your Folder name (up to 8 chars) and press RETURN.  After entry
       there is no backing out and the Folder is created (oops - without
       checking for the name already existing at that level...!).  It also
       immediately opens the newly created Folder (just like desktop).
       The first time it is opened thusly, the normal alert for "No Song
       Files on this pathname" doesn't come up.  If you don't save or copy
       any files to it, but leave it and come back again, then you will
       get the alert (only to let you know that no songs exist in the
       current path specified).  If there really are songs there, then we
       are in a lot of trouble eh?  Aren't computers wonderful!?
    F. The FORMAT button doesn't work except to bring up and alert.
    G. Not knowing if your old version has this function, I will repeat it
       here.  Clicking the word "DRIVE" at top right of screen, (Not the
       Drive Letters!), returns the remaining free bytes on the currently
       selected Drive (or RamDisk), and optionally, if a song is loaded,
       the length of the file.  Useful just before a save or anytime you
       need to know the free disk space.  You don't really need it before
       a save, because the program checks disk space before saving and
       will let you know if it can't save (before it even tries).  Most
       useful when you are trying to find a disk with enough space, in an
       emergency, and don't have any fresh ones formatted.  The FORMAT
       option will probably not be written till the Drummer is done, and
       that probably won't be done til Key Changes within a Song is added,
       etc. etc.  Just too much code to write for one person!  Slowly but
       surely....
31. Finally....known bugs, but as yet unfixed....
    A. Scroll indicator box (green) in the message box, occasionally jumps
       around leaving chunks of itself behind.  No harm done, my assembler
       routine just doesn't erase all of the box (yet).  Most often occurs
       if you have a very short song (less than 150 columns), or blank
       columns within or at the end of song, or both!  Also during Repeat
       loop backs while playing.
    B. The Song Editor does not check for overrun of its buffer!  Maximum
       file size is 32400 bytes.  It is only checked at load time.  If you
       are creating a really big song, it will NOT tell you when you are
       out of Memory!  This is particularly important on 'cloning notes',
       'copying blocks', and appending songs.  Append actually checks to
       see if the two files added will exceed limits, but other functions
       don't!  Cloning and Copying add many more bytes to the file and
       have the potential to crash it.  Moral to this story is, if you are
       trying to enter the 1812 Overture (I did it in MStudio! and ran
       out of memory), break it up into smaller files.  Also, save your
       work OFTEN in case of unforseen power failures or crashes.
       By the way, when I put 1812 into MStudio, I had to use a lot of
       repeats, leave out blank columns and even measure bars, to get
       enough bytes to finish it!

