Notes on WHAM 1.31
------------------

WHAM (Waveform Hold and Modify) is a Windows 3.1 application for
manipulating digitised sound. It can read and write Windows 3.1 WAVE files,
raw eight-bit digitised sound files and files of several other formats
(of which more may be added) and can perform various operations on this 
sound. WHAM can handle sounds of any size, restricted only by memory.

Version 1.31 has no features that 1.3 did not have; however, several bugs
have been fixed.

Since releasing version 1.1 onto the Internet, I was pleasantly surprised
at the amount of interest shown in it. Thanks to all the people who sent
me email reporting bugs and making suggestions.

New features in release 1.31
----------------------------

-	A bug within the Sun/NeXT audio (.au) format driver has been fixed.
-	A bug within WHAM which caused WHAM to crash in certain circumstances
	(often after playing a portion of a sound) has been fixed.
-	WHAM now looks in the executable's directory for sound format drivers.
	This means that you can associate files with WHAM and launch them from
	File Manager.

New features in release 1.3
---------------------------

-       Sound recording is here! Yes, WHAM can record sound (assuming, of 
	course, that you have a sound card).
-       External file formats; files are read and written using external
	DLLs. This means that more formats may be added in the future
	without changing the WHAM program itself. Files may also be saved in
	variable encodings.
-       16-bit sounds are supported.
-       Improved file information handling; now all defined RIFF information
	chunks are supported, and some file formats can utilise these as well.
-       Yet more buttons
-       3D dialogs; WHAM uses the Microsoft Ctl3D library, which makes
	all the dialogs look extra-sexy.
-       Your usual small changes, bug fixes and cosmetic tweaks.

New features in release 1.2
---------------------------

-       Many bugs fixed. i.e., WHAM no longer crashes when cutting/copying
	sounds or stretching/shrinking large sounds. (Well, I hope it
	doesn't, anyway... :-) )
-       Resizable window.
-       "Zoom in" function. WHAM can change the scale and scroll position to
	show the selected portion of the current waveform in its entirety
	at the largest possible magnification.
-       Cursor in waveform window. Sound can be pasted at the cursor or
	played from the cursor onwards.
-       WHAM can be launched with a sound file name on the command line.
-       WHAM is compliant with Windows 3.1's Drag-and-Drop technology, and
	will accept files dropped from the File Manager.
-       Enhanced button bar. The Save and Paste buttons reveal a drop-down
	menu of buttons when clicked with the right button.

New features in release 1.1
---------------------------

-       WHAM can now read and write Creative Voice .VOC files, Amiga
	IFF/8SVX sound files, Sun/NeXT .au (8-bit linear and Mu-Law)
	and Apple/SGI AIFF files 
-       New display options. WHAM can now display the waveform at full or
	half height, and in solid or outline form.
-       Support for embedded information. WHAM can embed information (title,
	copyright, date, software, artist*, engineer*, technician*,
	comments*) in WAVE and IFF files, and read information that is in
	these files. If I find information formats for other file types
	(and, preferably, examples of these formats in use), I will add
	these.
	[* WAVE format only]
-       A more robust WAVE file reading mechanism (now recognises
	information in files and acts accordingly.)
-       More buttons at the top of the window.
-       Many bugs/glitches have been removed.

Known bugs/problems:
--------------------

-       The "stretch/shrink" function may not yield desirable results for
	all ratios, and may report an error on some.
-       The sound recording memory allocation routine could probably be
	improved and made faster (although this would involve either
	considerable blood, sweat and tears or proprietary Microsoft
	source code. :-) )
-	I have heard reports that the status line at the bottom of the 
	main window does not redraw correctly on some accelerated video
	cards. This fault seems to be confined to specific hardware/driver
	combinations (only one person reported it), and thus I cannot test
	for it. Your mileage may vary.
-	If you have a card that cannot handle 16-bit sound files, WHAM
	will appear to fail to play such files. WHAM automatically loads
	MuLaw-encoded .au files as 16-bit files for optimum results.
	If you wish to play such files, you can reduce them to eight bits;
	however, doing so will obviously result in information loss.


The Future
----------

This may (or may not) be the last release of WHAM to be written in 
Turbo Pascal. However, at some time, WHAM will probably be recoded
entirely in C/C++. This version will be redesigned more or less from 
scratch, and thus will be able to have features like:

-       More modularisation; as WHAM 1.3's sound formats are in external
	libraries, so may be effects, display formats, et cetera, in a
	future version of WHAM. A SDK of sorts may be available.
-       OLE support (perhaps for OLE 2.0).
-       MDI support; WHAM may be able to manipulate several sounds at once.
-       More file formats. WHAM will be able to read (and, in most cases,
	write) more types of files, as soon as I find new formats to
	implement (and that are worth implementing).
-       Mu-Law and ADPCM support. Microsoft are putting support for Mu-Law
	encoding and ADPCM compression in a new release of their RIFF
	specifications. When I get access to an upgraded Windows multimedia
	sound driver, I will adapt WHAM to manipulate Mu-Law-encoded sound
	files in native format and to read and write ADPCM-compressed
	sounds.
-       Support for stereo sounds.
-       High/low/band-pass filtering, independent pitch/speed changing and
	other really good features.

Other Platforms
---------------

Who knows what the future will bring? Today WHAM is a Windows application;
tomorrow, who knows? If I have the time I may port it to other operating
systems and platforms. Possible contenders are:

-       Unix/X; I now have Linux with X386 on my computer, and am tempted to
	do some X programming. A possible X WHAM incarnation may be written
	for X toolkit or Xview, and would be designed to work with Linux,
	although it would be modifiable for other systems.
-       Windows 4.0; if it's as good as everyone speculates, WHAM will probably
	be updated for it.
-       NeXTstep; if someone has a spare NeXTstation (preferred) or 
	NeXTstep-ready 486, please send it to me and I will do my best to 
	port WHAM to it :-)

Please note; this is, at the moment, mere speculation. There are no firm plans
for other platforms, and if I do port WHAM, it may take a while for me to do 
so.


How To Contact Me
-----------------

If you notice any bugs in this program, or have any suggestions for
improvements or enhancements, please contact me and let me know. If you
really like this program and wish to make a donation (suggested size: $20-30),
please send it to my address.

If you have access to the Internet, you can contact me by email. This is
the preferred way of communicating with me. My address is:

	acb@yoyo.cc.monash.edu.au

If you don't have access to these networks, my snail-mail address is:

	Andrew Bulhak
	21 The Crescent
	Ferntree Gully Vic 3156
	AUSTRALIA

Acknowledgements
----------------

WHAM 1.3 uses Microsoft Corporation's Ctl3D dialog enhancement library.
This library was written entirely by Microsoft Corporation (I had nothing
to do with it), and is used and distributed with permission. 

WHAM 1.3 contains a 64-bit long division routine which was taken, more or
less in one piece, from sample code distributed by Microsoft Corporation.
The sample code is used as permitted. Please note that Microsoft do not
support this program in any way, and are not liable for anything that may
happen.

Warranty Disclaimer
-------------------

Andrew Bulhak ("The author") makes no warranty of any kind, expressed or
implied, including any warranties of fitness for a particular purpose. In no
event will the author be liable for any incidental or consequential damages
arising from the use of, or inability to use, this program.


					Andrew Bulhak   25-8-1993	0:10:48
