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 4.0:

* Available Versions:
    From version 4.0, Wave Repair is available only as a 32-bit program,
    so it will no longer run under Win3.11. I regret having to make this
    change, but the overhead of maintaining a 16-bit version had become
    too great.

* Major New Features:
    Normalisation and Compression facilities have been added; these are
    useful pre-mastering tools for adjusting the perceived volume.

* On Startup:
    Opens the file given on the command line (so associations to Wave
    Repair for WAV files now work).

* Bug fixes:
    Asks for confirmation to overwrite existing files during Split Tracks.
    Now correctly works out free space on disk when free space >2.1GB.
    File names with spaces now quoted in CDRWin cue sheets.
    Select Soundcard dialog is now a proper dialog (large fonts work).
    Eliminated occasional incorrect behaviour of animated playback mark.
    Corrected occasional failure to draw waveform along the bottom
    part (approx 20 pixels) of the screen.
    When Maximise Amplitude is toggled, the multiplication factor is now
    re-calculated.

* Menus:
    Added Exit option in File menu.
    Moved marker operations to a separate menu.
    Detects if user sets up a clashing shortcut.

* Declicking:
    Added new "Subtle Ticks (2)" preset.

* Macros:
    Added ability to refresh display between steps.

* Playback/Recording:
    Warning dialog displayed when unregistered record time limit reached.
    Pressing space bar during record places a marker, in the same way as
    it does during playback.
    The Escape key pauses/resumes playback.
    Option to play a single channel (left or right) to both channels.
    Options added to fine tune how soundcard is driven when playback ends.
    Elapsed record time now only shows whole seconds, as some slow machines
    had problems in updating it every 1/10th second.
    The 1 minute record time limit in the evaluation version has been removed.

* Cue Points:
    Split Tracks dialog now defaults file stub to name of the WAV file.
    Split Tracks now optionally pads out the last track to a CD block boundary.
    Split Tracks is now available when there are no cue points; this allows
    a single WAV file to be padded to a CD block boundary.
    Added ability to append to existing cue sheets, and Write Cue Sheet is
    now available when there are no cue points. This allows a cue sheet to be
    built up for multiple WAV files.

* Other:
    SaveAs now updates the list of recently opened files.
    Replace From File now has an option to replace the selected region.
    The page overlap factor has been changed from absolute number of samples
    to percentage of page width.


Version 3.9:

* Recording:
    The record process now includes a monitor stage for checking levels
    prior to starting the actual recording.
    The peak record level attained during the recording is displayed
    next to the meters.
    Markers are added at every point where clipping is suspected.

* View Menu:
    A new option has been added to quickly select the entire WAV file
    without needing to change the display.

* Redraw Wave Mode:
    The display's background colour changes when in redraw wave mode.
    This is intended as added feedback to warn the user that they are
    in the mode, since it is easy to forget.

* Playback:
    All options (except for Stop Playback) are disabled during playback.

* Deletion of Sections:
    The "execute deletions" operation now replaces the original WAV file
    rather than asking for a new file name.

* Markers:
    These are now kept in sorted order so that if more are added between
    existing ones, "goto next marker" visits them in the correct order.
    Markers may now be cleared within either the selected region or the
    entire file.

* Dialogs:
    Three dialogs that were essentially obsolete have been removed from
    the View menu, and the settings they controlled have been moved to
    the Options dialog.


Version 3.8:

* Recording:
    Wave Repair can now record. Note that it will only record in 16 bit
    stereo, at either 44.1 or 48 kHz.  
    Unregistered copies are limited to 1 minute recording time.

* Deletion of Sections from the File:
    There is now a facility whereby sections of the file may be marked
    for deletion. The file may then be written to a new file with the
    marked sections removed. Sections marked in this manner are skipped
    during playback.

* Track Splitting:
    A new facility allows the tracks to be written out to individual
    files; the track boundaries are defined by cue points.

* Macros:
    Macros can now be invoked via toolbar buttons.
    Also, macros may now optionally be named; the name is used in the
    toolbar tip.

* Adjusting Vertical (Amplitude) Zoom Factor:
    A pair of scroll bars has been added which may be used to adjust the
    amplitude zoom factor and offset. This facility is considerably easier
    to use than the old "vertical scale" dialog.

* "Cannot Open File ...." Problem:
    Although the majority of instances of this problem were fixed in
    version 3.7, some others did slip through the net. I hope to have
    caught all of the remaining cases.

* Declicking Parameters:
    A new type of click shape has been added, called "Blip". A "blip"
    is a wave peak (or trough) which is narrower than a specifiable
    percentage of the average width of the surrounding peaks & troughs.
    Further details are given in the help pages and user manual.

* Markers:
    The "clear markers" option now only clears those markers within
    the selected region.
    Markers may now be saved to and loaded from a file.
    Two new options, "goto first marker" and "goto next marker" have
    been added.
    In previous versions, when a new WAV file opened any existing
    markers were left in place. This bug has been fixed.

* Save Dialogs:
    The save file dialogs now include a suggested file name.
    They also automatically add the correct file suffix if none is given.

* Playback:
    There is now an option to switch off playback of either channel.

* Mouse Position Readout:
    The position of the mouse, in terms of time into the WAV file is
    now displayed at the right hand end of the status bar.

* Navigation:
    A new option to go straight to the end of the selected region has
    been added. 

* Interface Colours:
    These are now user-configurable. 

* Menu Shortcuts:
    These are now user-configurable.

* Interpolation:
    An option to Bezier interpolate both channels at once has been added.

* Soundcards:
    It is now possible to select the playback and recording devices
    to be used. (This is only of interest to users with more than one
    soundcard in their system).


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.