=========================================================================

Soundio -- soundfile input/output library for soundfiles in the
    Microsoft WAVE format and the Sun/Next audio file format.
    See writetest.cpp and readtest.cpp for example usage.

The SoundFileRead and SoundFileWrite classes are designed to interface
with standard digital signal processing techniques by normalizing the
audio data into the range from -1.0 to +1.0.  16-Bit functions are
added to access the data as integer values, but only as a courtesy.
The SoundFileRead and SoundFileWrite can handle most possible input
and output sound file data types, such as 8-bit mulaw, 8-bit linear,
16-bit linear, 24-bit linear, 32-bit linear, 32-bit float, and 64-bit
double float types.  Ask me how this works, and I could tell you.


Sun Jan 20 13:26:42 PST 2002
Craig Stuart Sapp <craig@ccrma.stanford.edu>

Version 1.1  --  Wed Jan 23 19:53:50 PST 2002

=========================================================================

Example programs in the examples/ directory:
	readtest.cpp	    -- Reading test program.
	writetest.cpp	    -- Writing test program.
	multi2mono.cpp	    -- Example program to convert multi-channel files
			       to mono files by adding all channels together.
	extractChannel.cpp  -- Take one channel out of a multi-channel file.
        sndcopy.cpp         -- Program that reads a file and outputs
                               the an exact copy of the same soundfile.
        makemulti.cpp       -- Take several input soundfiles and write
                               out a single multi-channel soundfile.
        sndinfo.cpp         -- Print out the soundfile's vital statistics.
        sndsubtract.cpp     -- subtract two sound files and store
                               results in a third soundfile.  Useful
                               for debugging.

Library files:
	soundio.h           -- API interface for soundio library.
	Makefile    	    -- Makefile for soundio library and example programs
	libsoundio.a	    -- Soundio library file (when created with makefile)

	Array.cpp	    -- Class for arrays of numbers.
	Array.h		
	Collection.cpp	    -- Base class for Array.
	Collection.h
	FileIO.cpp	    -- Class for handling endian outputs to files.
	FileIO.h
	Options.cpp	    -- Handy command-line option processor.
	Options.h
	Options_private.cpp -- Used by Options class.
	Options_private.h
	sigConfiguration.h  -- Miscellaneous preprocessor define setups.
	SoundFileRead.cpp   -- Class which reads soundfiles.
	SoundFileRead.h
	SoundFileWrite.cpp  -- Class which writes soundfiles.
	SoundFileWrite.h
	SoundHeader.cpp	    -- Class for soundfile formatting parameters.
	SoundHeader.h


Type "make library" to compile the soundio library.
Then, type "make runtest" which should generate this output:

; Sample count = 20
; Channels     = 1
; samp  16-bit  double
0:      -5      (-0.000152588)
1:      -4      (-0.00012207)
2:      -3      (-9.15527e-05)
3:      -2      (-6.10352e-05)
4:      -1      (-3.05176e-05)
5:      0       (0)
6:      1       (3.05176e-05)
7:      2       (6.10352e-05)
8:      3       (9.15527e-05)
9:      4       (0.00012207)
10:     -5      (-0.000152588)
11:     -4      (-0.00012207)
12:     -3      (-9.15527e-05)
13:     -2      (-6.10352e-05)
14:     -1      (-3.05176e-05)
15:     0       (0)
16:     1       (3.05176e-05)
17:     2       (6.10352e-05)
18:     3       (9.15527e-05)
19:     4       (0.00012207)


========================================================================


A useful debugging sound file can be generated with the 
following command:
 ./writetest -n 65536 -s -32768 fullrange.wav
This should write a sound file which contains exactly one sound sample
at every possible amplitude level.



========================================================================

Changes from version 1.0 to 1.1:
   * changed filename parameters in SoundFileRead from char* to const char*.
   * changed filename parameters in SoundFileWrite from char* to const char*.
   * added example programs: multi2mono.cpp extractChannel.cpp sndcopy.cpp 
     sndinfo.cpp and makemulti.cpp
   * fixed SoundFileRead::getNextSample16Bit function.
   * changed normalization factor in SampleToShort() from 0x7fff to 0x8000.





