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