WAVE REPAIR: HISTORY OF REVISIONS

This file summarises the changes that have been made in the various versions
of Wave Repair since it was first released.


Version 3.7:

* Memory Leak:
    A memory leak was introduced in version 3.6. The symptoms were a
    gradual degradation in performance, and an apparent Windows hang
    on exit (in fact this was Windows tidying up the memory that had
    been left lying about, and Windows did eventually return to life).
    This bug has been fixed.

* Playback Markers:
    These are now simply called "markers", since they can now be added
    at any time. During playback, pressing the space bar remains the
    method to add a marker. When not in playback, a left mouse click
    with the control key held down adds a marker.

* Playback:
    A new option "Play Context Around Selection" has been added. This
    plays the surrounding context, but skips over the selected samples
    themselves. This can help in pinpointing damage that is difficult
    to identify visually.

* Save Dialogs:
    Where a filename is typed without an extension, the appropriate
    extension is now automatically added.

* "Cannot Open File ...." Problem:
    If you tried to do something too quickly before a previous operation
    had finished, you sometimes got the message "cannot open file ....".
    Note that this only happened in the 32 bit version. This has been
    fixed, in as much as you just get a beep rather than a message box.
    (Note that the attempted operation will still not happen, but at least
    you don't have to dismiss a dialog box any more).

* Undo/Redo:
    It was possible to cause a "List Index Out Of Bounds" error by
    pressing the undo or redo buttons quickly after having executed
    the last possible undo or redo. This bug has been fixed.

* Declick Preview:
    Declick Preview failed to find any clicks if it was run after a
    previous long operation had been cancelled. Also, a change in the
    selected region was not acted upon in Declick Preview. These bugs
    have been fixed.

* Ctrl+Left & Ctrl+Right shortcuts:
    I somehow managed to assign each of these two shortcuts to two
    different menu options. This has been fixed.


Version 3.6:

* Macros:
    A number of changes have been made to the macro facility which
    was introduced in version 3.5:
    - A macro invoked with the F10 key would cause the File menu item
      to be activated. This bug has been fixed.
    - If a dialog that has been invoked by a macro is closed with the
      Cancel button, the remainder of the macro execution is abandoned.
    - Declicking presets may now be included in macro steps which search
      for clicks.
    - Unsaved updates to macro definitions are no longer silently lost
      if the user forgets to save them.
    - Macros were incorrectly executed when the Alt or Ctrl key was
      held down along with a function key. This bug has been fixed.

* Playback Markers:
    A new facility has been added which allows you to set markers during
    playback by pressing the space bar. This assists the task of returning
    to interesting places that you hear during playback. Their use is
    explained in the helpfile.

* Declicking:
    The number of clicks shown during scanning for clicks sometimes did
    not agree with the number finally reported at the end of the scan.
    This bug has been fixed.
    Note that some confusion has been caused by the fact that the number
    of clicks found during declick preview is sometimes less than the number
    found in a "Find All Clicks". This is to be expected, and is now
    explained in the helpfile.

* Redo Feature:
    The ability to re-apply updates that have been undone has been added.
    Any number of undos may be re-applied.

* Displayed Pages:
    A facility has been added which allows an easy return to a previously
    displayed page of the WAV file. The 10 most recently displayed pages
    are recorded in a cyclic buffer which can be accessed via new options
    on the View menu.

* Button Bar/Status Area:
    The button bar has been extended and rearranged so that it contains
    more of the commonly used options. Hopefully this will make it more
    useful to those users who like to use it. An option has been added
    which allows the button bar to be switched off for the benefit of
    those users who prefer not to use it.
    As a consequence of this, I have been able to expand the status area
    to make it less crowded and more readable.

* Keyboard Shortcuts:
    The shortcuts for menu options have been completely reassigned to make
    them more consistent.


Version 3.5A:

Some users reported that playback did not work in the 32 bit version
under some releases of Win95, Win98 and NT. This fix release corrects
that bug.


Version 3.5:

* 32-bit Version:
    There are now both 16 bit and 32 bit versions available. They
    offer the same facilities. The only significant difference is 
    that the 32 bit version properly supports long file names.
    Note that the 32 bit version does NOT install anything into the
    Win95/NT registry, but continues to store all its configuration
    information in WAVREP.* files within the installation directory.

* User-Definable Macros:
    A facility has been added which allows the user to set up macros
    that execute multiple operations via a single press of a function
    key.

* Smooth Abrasion:
    In earlier versions, there was a bug whereby a click might be
    introduced at the end of a region that had been smoothed. This
    bug has been fixed.

* Declicking:
    Some additional shortcuts and buttons have been added to the menus
    and declicking dialogs to reduce the number of keystrokes needed
    to execute a set-parameters/find-clicks/remove-clicks sequence.

* Playback:
    An option has been added which plays the selected region together 
    within its surrounding context (the size of which is user-definable).

* Zooming:
    An option has been added to allow the user to control where the
    display is positioned on the WAV file after a zoom.

* New Options:
    Some requests from customers have been added to the Options dialog.
    
* Opening WAV Files:
    In earlier versions Wave Repair refused to open some perfectly valid
    WAV files (due to the unexpected presence of unrecognised RIFF chunks).
    This is now fixed in that such chunks are ignored and the files are
    accepted.


Version 3.4:

* Click Detection Parameters:
    In earlier versions the typical click types option was a static
    list. This has been replaced by a mechanism which allows the user
    to store useful parameter settings as named presets.

* Remove All Clicks:
    The speed of this operation has been significantly improved when
    a large number of clicks are involved. (In earlier versions, the
    time taken was exponentially proportional to the number of clicks;
    it is now linearly proportional to the number of clicks).

* Recently Opened Files:
    A list of the most recently opened WAV files has been added to the
    end of the File menu.

* Rearrangement of Menus:
    A new menu (Blocks) has been added. This menu contains facilities for
    finding and copying blocks of samples over the selected region. Some
    options that were in the Edit menu (concerning compatible blocks and
    preceding blocks) have been moved to the Blocks menu.
    A new facility has been added whereby an image of the damaged region
    can be slid around the file to look for a suitable replacement block.
    Another new option allows the samples of one channel to be copied over
    the corresponding samples of the other channel.
    All options that copy blocks of samples have been split into separate
    left & right channel options.

* New Menu Item for User Options:
    A new Options menu item has been added to the File menu. This brings
    up a new dialog for the setting of user options. At this stage, very
    few options are available; the main purpose is to introduce the basic
    mechanism so that it will be easy to add further options in future.


Version 3.3:

* Highlighting of Selected Region:
    A problem was discovered with the Number Nine Revolution 3D AGP
    video card whereby the video inversion of the selected region
    didn't work. It would appear that there is a bug in the Number
    Nine drivers. Version 3.3 of Wave Repair has a workaround for
    this problem.

* New Toolbar Button:
    Following user requests, an extra button has been added to the
    toolbar which toggles redraw wave mode.


Version 3.2:

* Automatic Declicking:
    A new option has been added which will rapidly find and remove the
    clicks in a single pass. Note that this is a compromise operation, 
    and is intended for use where time is at a premium and less than ideal
    results are acceptable. (For unregistered copies, this option only
    operates on the left channel, which allows an evaluation of its
    effectiveness while preventing it being of any practical use).
* Removal of Click Limit:
    The limitation in previous versions of 16000 clicks in one pass has been
    removed.
* Reading Cue Sheets:
    Earlier versions would incorrectly report that a cue sheet was for a 
    different file if the filenames were the same but the case of the letters
    did not match precisely. This bug has been fixed; the comparison is now
    case-independent.
* Setting Cue Points:
    An option has been added to the Set Cue Point dialog which allows the
    start of selection to be moved to exactly where the cue point is placed.
* Moving To Cue Points:
    An option has been added to the Go To Cue Point dialog which allows the
    start of selection to be placed at the exact position of the cue point.  


Version 3.1:

* Click Detection:
    Left and right channels may now be independently selected for declicking.
* Declick Preview:
    Counts of the number of clicks detected on the current and previous passes
    is now displayed in the preview dialog.
* Opening WAV Files:
    In earlier versions Wave Repair refused to open some perfectly valid 16bit
    stereo 44.1/48kHz WAV files (due to a non-standard offset where the actual
    data starts). This is now fixed so that files with non-standard offsets are
    accepted.
    Additionally, after a failed attempt to open a WAV file, a divide-by-zero
    runtime error occured in earlier versions. This bug has been fixed.


Version 3.0:

This is a major new release, containing a Real-time Declicking function.
It allows the user to adjust declicking parameters while listening to the
results.

Although real-time declicking is not unique, it is unusual in a shareware
offering this cheap. Despite this, I have chosen not to increase the price,
but have instead decided that non-registered versions will now have the
save functionality disabled.

In addition to this major update, some other changes have been made to the
click detection and repair features:

* A new parameter "Click Repair Width" has been added to the declicking 
  function. This specifies the width of the interpolation which is made when
  automatically repairing clicks. In earlier versions, the maximum click
  width was used. This extra parameter should give a little more flexibility.
* A new option allows you to select whether automatic click removal should
  use Bezier curves or straight line interpolation. Earlier versions always
  used straight line interpolation. Options have also been added to the Edit
  menu to allow manual interpolations by Bezier curve.


Version 2.12:

* Fade In/Out:
    In earlier versions, a low level clicking could sometimes result at
    the start of fade-ins and the end of fade-outs. This bug has been fixed.
* Saving Updates:
    In earlier versions, when saving updates that included very long silences
    or interpolations, the progress bar would appear to stop responding for
    a while and then come back to life. This has been corrected.
* Menus and Toolbar Buttons:
    These are now disabled and grayed when not appropriate.


Version 2.11:

* Click Detection:
    A maximum of 16000 potential clicks can be gathered in one pass. In
    earlier versions, if more than 16000 clicks were detected, a runtime
    error occured; this condition is now avoided and the detection process
    completes after 16000 clicks are found.
* Remove All Clicks:
    A progress bar and cancel button has been added.
    Additionally, in earlier versions, if an attempt was made to remove 
    all clicks when there was no list of potential clicks, a runtime error
    occured. This bug has been fixed.


Version 2.10:

* Redrawing Waveforms:
    If an attempt was made to redraw a waveform by dragging right-to-left,
    this would sometimes result in a divide-by-zero error. This bug has
    been fixed.
    Additionally, redrawing right-to-left now works; previously it didn't
    (and wasn't meant to), but in fixing the zero-divide bug, it became
    clear that there was no reason to disallow right-to-left redraw.
* Click Removal:
    If an attempt was made to automatically remove a click (using
    Declicking|Remove Current Click) when there was no currently selected 
    click, a runtime error would sometimes result. This bug has been fixed.
    Additionally, when automatcially removing a click, the region that 
    is interpolated has been slightly expanded; this results in a more
    successful removal in some circumstances, especially for short clicks.
* Click Detection:
    Some minor changes have been made to the click detection algorithms.
    For "instant rise" types, a particular class of click was being missed
    by the previous algorithm. For "spike" types, the previous algorithm
    sometimes included smooth waveform peaks that were patently not clicks.
    An extra kind of "tiny ticks" has been added to the list of typical
    click types in the set-parameters dialog.
* Mark Region Dialog:
    Marking a region may now optionally be done by exact sample number 
    (the default remains by time). Marking by sample number is primarily
    of use if you wish to replace a slice of a WAV file with samples from
    a different WAV file, when it is important to be able to position very
    precisely.


Version 2.9:

* Fading and Smoothing:
    The limit (of 3,200,000 samples) on the length of selection which can
    be faded/smoothed has been removed.
    Also, the execution speed of these operations has been significantly
    improved.
* Saving of updates:
    Where a Smooth or Fade has been executed over both channels, the speed
    of saving of these updates has been significantly improved.
* Automatic removal of clicks:
    The algorithm used in version 2.8 attempted to work out the detailed
    shape of the click to be removed so that it could be removed more
    effectively than by a simple interpolation. This turned out to be
    ineffective in many cases.
    Starting with version 2.9, automatic removal of clicks is now effected
    by a simple interpolation, which yields better results in most cases.
    (Nevertheless, manual removal remains the preferred method).


Version 2.8:

* This was the first shareware release of Wave Repair.