

		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, Microsoft Windows .WAV files, MAUD files,
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,
Soundtool (DOS) files, and Psion (palmtop) A-law files.

The sound effects include changing the sample rate, adding echo 
delay lines, applying low-, high, and band-pass filtering, 
examining sample loops and grabbing the looped parts, xlating
between stereo and monophonic channels nicely,
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.)

Even more big news!  SOX now has full translation for stereo
and mono sound files with a revamped 'avg' and the new 'pick' 
and 'split' effects.

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 		<phade@cs.tu-berlin.de>
			Microsoft C 7.0 & C Borland 3.0 ports
		David Elliot		<dce@scmc.sony.com>
			CD-R format support
		David Sears		<dns@essnj3.essnjay.com>
			Linux support
		Tom Littlejohn          <tlit@seq1.loc.gov>
			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
		Lauren Weinstein	lauren@vortex.com
			DOS porting, scripts, professional use
		Chris Bagwell		cbagwell@sprynet.com
			OSS and Sun players, bugfixes
		(your name could be here, too)
		(I've probably lost a few, and several people fixed
		 the same bugs.)

