ref: f58321658de6c9a7c69a130b0c99eb1c350b49d2
dir: /TODO/
People are encouraged to pick some of these and implement it. Send
all patches to cbagwell@sprynet.com.
o Add in manual page entries for silence and dcshift.
o Make a global version of MIN/MAX instead of sprinkled min/max/MIN/MAX
o Unify the raw writing functions to work line the raw reading functions.
Also, add support to all file handlers to handle 32-bit and float
data types since raw functions can handle them.
o Change read and write functions from LONG to st_size_t to get
the extra length support. Make it ULONG type.
o Change "float" from a data type to an encoding method. This will
effect command line usage but more accurately describes floats.
o All comment code has a memory leak. They must malloc memory to
store comment but its never free()'d.
o Create a version of OSS and Sun driver that can play and record from the
same device in duplex.
o Add support for mixing multiple inputs from command line.
o Endian checks are probably invalid on 64-bit machines.
o Enhance sox for better interactive support. This includes updating
effect parameters in real time and ablity to start/stop/scan
file handlers in real time.
o Loop support for all formats that know about it. WAV has
some support for loops ("cue-points") but no support for
MIDI note numbers. Someone needs to add this in.
o Comment strings. Some file formats have space for embedded comments.
These are currently thrown away. Printing them out, carrying them
forward, and an option to add new ones would be handy.
o Add support for .TXT format as Cooledit supports. Not really fit for
graphing since it is only a stream of ascii sample values but some
program appear to like it. Also has a much nicer header.
http://lab.chass.utoronto.ca/damion/audio/coolwav.htm
o Update auto file type to include detection of .wve and .smp files.
o Keep sox from using "fail" on errors. Sox was supposed to be
a sound library called "ST" but libraries shouldn't exit a program,
they should return error codes for users to handle. Initial support
for this has been added. Needs to be completed.
o Enhance general robustness... For instance, malloc is called in
lots of places without checking its return value. See last option
as well.
SOX includes skeleton format files to assist you in supporting new
formats, sound effect loops, and special-purpose programs.
The full skeleton format, skel.c, helps you write a driver
for a new format which has data structures. Skeleff.c is
a starting point for writing a sound effect loop. Sox.c is
a good starting point for new programs. (Someone finally
did this and told me what was wrong...)
In handlers.c, note that many formats set up the header and then
use the raw driver for reading and writing.