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
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
- 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
[* 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.
- 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.
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
- Support for stereo sounds.
- High/low/band-pass filtering, independent pitch/speed changing and
other really good features.
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
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:[email protected]
If you don't have access to these networks, my snail-mail address is:
21 The Crescent
Ferntree Gully Vic 3156
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
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-19930:10:48