
			Waveform Archiver
			   Version 1.1
		     Copyright (C) 1994-1997
			    Dennis Lee
	     Internet E-mail: denlee@ecf.utoronto.ca


This software is free.  You are welcome to use it in both personal
and commercial environments.  You may also redistribute this software
by any means and on any medium.


Contents
========
Overview
Hardware Requirements
Software Requirements
Performance
Usage
Legal Issues
History
Contact Info
Acknowledgments


Overview
========

The Waveform Archiver (WA) is an archiver specifically designed to
losslessly compress waveform data.  WA only recognizes files in the
popular Windows ".WAV" audio format with uncompressed PCM data.
WA compresses such files and handles all other files by copying them
into the archive.  The generated archive has a ".WA" extension, unless
a different extension is explicitly specified.


Hardware Requirements
=====================

This software is available in 16-bit and 32-bit versions.
Each version has it's own executable, both of which are included
with this software.

The 16-bit version should run on any PC.  WA16 was programmed to run
on an 8086 processor without math co-processor, but this has not been
verified since I do not have access to such a PC.

The 32-bit version requires a 386.  A math co-processor is not
required, but WA32 will run faster with one.


Software Requirements
=====================

Both WA16 and WA32 are DOS applications, and require a DOS
environment to execute.  Both versions have been tested under
DOS 5.0+, Win3.1 DOS Shell, Win95 DOS Shell, WinNT DOS Shell,
and OS/2 v2.0+ DOS Shell.


Performance
===========

To my knowledge, WA compresses waveform data better than any other
software.  This includes waveform specific compressors (SHORTEN,
OggSQUISH), archivers with multimedia option (RAR, UC, RKIVE),
and advance archivers (ACB, QUANTUM, HA).

WA is also fast.  The 32-bit version compresses faster than PKZIP.
[WA32 with -c1 (default) and PKZIP with -en (default)]

The following is an example of how WA performs in compression and speed.
All benchmarking was performed on a PPro 150 with 32 MB RAM.
All files were processed from and to a RAM DISK.
The 32-bit version of WA was used for the following results.

Compression
-----------

16-bit Stereo Files (10,831,020 Bytes Total)
Compressed Size (Bytes)
   9,810,818             PKZIP v2.04g -ex
   6,351,394             RAR v2.01 -mm -m5 -mde
   5,409,235             WA v1.1 -c1
   5,344,740             WA v1.1 -c2
   5,318,299             WA v1.1 -c3
   5,312,358             WA v1.1 -c4
   4,865,285             WA v1.1 -c5

PKZIP's result is used for baseline comparison.
RAR's result is included because it compressed significantly better than
all other archivers I tested with.

8-bit Mono Files (3,454,416 Bytes Total)
Compressed Size (Bytes)
   2,265,716             PKZIP v2.04g -ex
   1,935,354             ACB v2.00c u
   1,850,603             RKIVE v1.4
   1,847,179             WA v1.1 -c1
   1,778,951             WA v1.1 -c2
   1,697,145             RAR v2.01 -mm -m5 -mde
   1,669,411             WA v1.1 -c3
   1,603,947             WA v1.1 -c4
   1,531,127             WA v1.1 -c5

PKZIP's result is used for baseline comparison.
ACB, RKIVE, and RAR were the top three compressors for the 8-bit data set.

Speed
-----

16-bit Stereo Files (10,831,020 Bytes Total)
Time:        22.90 sec           PKZIP v2.04g -en
	      8.50 sec           WA v1.1 -c1
	     17.14 sec           WA v1.1 -c2
	     18.94 sec           WA v1.1 -c3
	     24.05 sec           WA v1.1 -c4
	    380.25 sec           WA v1.1 -c5

8-bit Mono Files (3,454,416 Bytes Total)
Time:         8.35 sec           PKZIP v2.04g -en
	      4.51 sec           WA v1.1 -c1
	      6.31 sec           WA v1.1 -c2
	      6.98 sec           WA v1.1 -c3
	      9.17 sec           WA v1.1 -c4
	    195.37 sec           WA v1.1 -c5

These results indicate that WA with compression level 4 is
approximately the same speed as PKZIP with it's default -en setting.
WA compression levels 2 to 5 use quite a few floating point operations.
This causes WA to run slower relative to PKZIP on a CPU with a weaker
FPU than the Pentium Pro.  For example, PKZIP -en may run faster than
WA -c2 on a 386/387 [This example is only used for illustration and
may not be true].


Usage
=====

WA has a minimum of features.  Using WA should be very easy.

--------------------------------------------------------------
Usage: WA <command> [options] <archive> [files.wav ...]

Commands:
   a: Add files (replace if present)
   x: Extract files
   d: Delete files
   l: List files
   t: Test archive's integrity

Options:
   -c[0,1,2,3,4,5]: Compression level (Default 1)
--------------------------------------------------------------

Example:  WA a -c5 arc *.wav


Legal Issues
============

The author takes NO responsibility for any damages resulting from the
use of this software.  The user assumes the entire risk as to its
quality and accuracy.

This software is Copyright (C) 1994-1997 Dennis Lee.


History
=======

WA 0.8 Beta (Apr 2, 1994)
--------------------------
    - First working version as an archiver.

WA 0.9 Beta (Apr 26, 1994)
--------------------------
    - Minor change to bit allocation for block formats.
    - Minor changes to WA header format.
    - Updated documentation.

WA 1.0 (Jul 14, 1997)
----------------------
    - Changed all I/O calls to use a bit-based file I/O library I wrote.
    - Updated documentation.
    - First public release.

WA 1.1 (Aug 1, 1997)
----------------------
    - Minor change to 1DIF compressor.  Results in slightly lower
      compression on stereo files, but compresses faster.
      The resulting archive is completely compatible with version 1.0:
      v1.1 can decompress v1.0 archives, and v1.0 can decompress v1.1
      archives.
    - Updated documentation.


Contact Info
============

Please send bug reports to my Internet E-mail address:

    denlee@ecf.utoronto.ca

Feel free to contact me if you have any comments, or suggestions
concerning WA.  I appreciate feedback.


Acknowledgments
===============

Borland C/C++ version 4.52 was used to compile WA16.
DJGPP version 2.01 was used to compile WA32.
CWSDPMI is distributed with this software.  It is a DPMI server,
and provides DPMI services for WA32 if the OS or SHELL in which
WA32 is executed does not have such services.

DJGPP can be found on any simtel.net mirror.
For example, ftp.simtel.net, directory /pub/simtelnet/gnu/djgpp
CWSDPMI can be found at the same location under v2misc.
