******************************************************* NOTE:: This is a beta release to test the infocom file format. There might be compiling errors in some of the Makefiles. (The unix version works!) please send all infocom related problems to brian@ee.cornell.edu (Brian Kelley) A future release of SOX will include much more features and the infocom sound file format. For quick usage, please see the README.infocom file. If you want to see debugging info related to infocom files, set #define INFOCOM_DEBUG 1 in infocom.c ******************************************************* ST: Sound Tools ST translates sound samples between different file formats, and performs various sound effects. This release understands "raw" files in various binary formats, raw textual data, Sound Blaster .VOC files, IRCAM SoundFile files, SUN Sparcstation .au files, mutant DEC .au files, Apple/SGI AIFF files, CD-R (music CD format), Macintosh HCOM files, Sounder files, NeXT .snd files, SUN ADPCM (compressed) .au files, and Soundtool (DOS) files. The sound effects include changing the sample rate, adding echo delay lines, applying low-, high, and band-pass filtering, reversing a sample in order to search for Satanic messages, adding masking noise to avoid buzzing voices, and the infamous Fender Vibro effect. Big news! The 'resample' effect does high-grade signal rate changes using real signal theory. Yes, it's very slow. More big news! Sample loops are now supported in a few file formats: SMP and AIFF. WAV needs it. I don't know what other formats actually know about sampler notes & loops. (To make a loop, you need a waveform editor that knows about them and has special features. I do it on a Mac.) History: This is the 11th release of the Sound Tools. Patchlevel 12. All previous releases went out on alt.sources. This one should go out on comp.sources.misc, if all goes well. There is a nice graphical front-end for the NeXT called GISO. Check the comp.sys.next group or poke around the NeXT binary sites. Also someone has done an OS/2 port. Caveats: SOX is intended as the Swiss Army knife of sound processing tools. It doesn't do anything very well, but sooner or later it comes in very handy. SOX is really only useable day-to-day if you hide the wacky options with one-line shell scripts. Channel averaging doesn't work. The software architecture of stereo & quad is bogus. Installing: Use the DOS, Unix, Amiga, OS2, or OS9 Makefile as appropriate. The Makefile needs one option set: -DSYSV if you're on a System V machine, or -DBSD if you're on a BSD-ish machine. See the INSTALL file for more detailed instructions. There are three DOS Makefiles: Makefile.bor for pre-3.0 Borland C, Makefile.b30 for Borland 3.0, and Makefile.c70 for Microsoft C 7.0. OS2 needs the two OS2 Makefile-type programs. OS9 needs Makefile.os9 for Microware Ultra C. Amiga needs the Amiga stuff. Archimedes needs the .arc stuff and Setup. The latter probably needs work. After compiling, run 'tests.sh'. It should print nothing. This indicates that data is copied correctly. By reading the tests you may see how to make a sound sample file which you can play. 'monkey.au' and 'monkey.voc' are a short lo-fi monkey screech in two supported file formats, to help you ensure that Sound Tools works. Note: 'tests.sh' works only under the Unix sh(1) shell. Use 'tests.com' under VMS. Then, run 'testall.sh'. This copies monkey.voc into all other supported file formats, making files in /tmp. Then, it translates those formats back into .voc format. This ensures (slightly) that all of the readers & writers don't core-dump. Now, read TIPS and CHEAT. These give a background on how SOX deals with sound files and how to convert this format to that format, with examples for the most popular formats. SOX uses file suffices to determine the nature of a sound sample file. If it finds the suffix in its list, it uses the appropriate read or write handler to deal with that file. You may override the suffix by giving a different type via the '-t type' argument. See the manual page for more information. The 'tests.sh' script illustrates various sox usages. SOX has an auto-detect feature that attempts to figure out the nature of an unmarked sound sample. It works very well. This is the 'auto' file format. I hope to inspire the creation of a common base of sound processing tools for computer multimedia work, similar to the PBM toolkit for image manipulation. Sound Tools may be used for any purpose. Source distributions must include the copyright notices. Binary distributions must include acknowledgements to the creators. The files I wrote are copyright Lance Norskog. The contributed files are copyright by their respective authors. When you have minor changes to contribute, it's OK to post them; if you have a major release, please send it to me. I'd like to coordinate the releases and do a peer review. Please document your changes. I don't possess every kind of computer currently sold, and SOX is now beyond the phase where I can understand and test most of your contributions. Please make your diff files such that your changes are set off with ifdefs, and document them. Please DO NOT reformat the source code with your favorite C beautifier, make 10 fixes, and send me the resulting release. I do not have the time to fish through 10000 diffs to find your 10 fixes. Note: There will be absolutely no more hardware driver handlers in SOX. Playing & recording sound samples is not SOX's job; translation and sound effects is it. If you wish to write a separate main program (like sox.c) which uses the SoundTools library and records or plays on your machine, that's great and I'll be happy to include it. The majority of SOX features and source code are contributed by you the user. Thank you very much for making SOX a success! Creator & Maintainer: Lance Norskog thinman@netcom.com Contributors: Guido Van Rossum guido@cwi.nl AU, AIFF, AUTO, HCOM, reverse, many bug fixes Jef Poskanzer jef@well.sf.ca.us original code for u-law and delay line Bill Neisius bill%solaria@hac2arpa.hac.com DOS port, 8SVX, Sounder, Soundtool formats Apollo fixes, stat with auto-picker Rick Richardson rick@digibd.com WAV and SB driver handlers, fixes David Champion dgc3@midway.uchicago.edu Amiga port Pace Willisson pace@blitz.com Fixes for ESIX Leigh Smith leigh@psychok.dialix.oz.au SMP and comment movement support. David Sanderson dws@ssec.wisc.edu AIX3.1 fixes (Note that to my knowledge AIX on RS/6000s has NO SUPPORT for playing any sort of sound file, so please don't write to me any more to ask "how do I play sound files on my AIX box". I ported sox to AIX solely to use it to translate between sound file formats.) Glenn Lewis glewis@pcocd2.intel.com AIFF chunking fixes Brian Campbell brianc@quantum.qnx.com QNX port and 16-bit fixes Chris Adams gt8741@prism.gatech.edu DOS port fixes John Kohl jtkohl@kolvir.elcr.ca.us BSD386 port, VOC stereo support Ken Kubo ken@hmcvax.claremont.edu VMS port, VOC stereo support Frank Gadegast Microsoft C 7.0 & C Borland 3.0 ports David Elliot CD-R format support David Sears Linux support Tom Littlejohn Raw textual data Boisy G. Pitre boisy@microware.com OS9 port Sun Microsystems, Guido Van Rossum CCITT G.711, G.721, G.723 implementation Graeme Gill graeme@labtam.labtam.oz.au A-LAW format, Good .WAV handling, avg channel expansion Allen Grider grider@hfsi.hfsi.com VOC stereo mode, WAV file handling Michel Fingerhut Michel.Fingerhut@ircam.fr Upgrade 'sf' format to current IRCAM format. Float file support. Chris Knight Achimedes Acorn support Richard Caley R.Caley@ed.ac.uk Psion WVE handler Lutz Vieweg lkv@mania.RoBIN.de MAUD (Amiga) file handler Tim Gardner timg@tpi.com Windows NT port for V7 Jimen Ching jiching@wiliki.eng.hawaii.edu Libst porting bugs (your name could be here, too) (I've probably lost a few, and several people fixed the same bugs.)