shithub: sox

ref: 3971c45ec24aa0c48fa2c7ce4441d3874b7c7f08
dir: /ChangeLog/

View raw version
Change History
--------------

This file contains a list of all changes starting after the release of
sox-11gamma.

sox-14.0.0
----------

  File formats:

  o Added ffmpeg support.  (Reuben Thomas)
  o FLAC: added seekable decoding; added seek-table generation.  (robs)
  o Added M3U & PLS playlist formats [FR# 1667341] (Note: SHOUTcast PLS
    is only partially supported).  (robs)
  o Made format readers and writers into individual modules for easier
    distribution of differently-licensed code.  (Reuben Thomas)
  o Added libao support.  (Reuben Thomas)
  o Added support for ADPCM-encoded PRC files, based on Danny Smith's
    rec2wav and sndcmp.  (Reuben Thomas)
  o Added AMR-NB [FR# 728875] & AMR-WB formats (with external libs).  (robs)
  o Added LPC-10 support.  (Reuben Thomas)

  Effects:

  o Use LADSPA effects (one input, one output).  (Reuben Thomas)
  o --octave option changed to --plot; can now also use gnuplot to
    plot effect transfer function.  (robs)
  o Added soft-knee companding.  (robs)
  o Show (with --plot) compand transfer function.  (robs)
  o Allow e.g. "vol 6dB" (as well as "vol 6 dB").  (robs)
  o Changed deemph filter from 1st order to 2nd order for
    better accuracy.  (robs)
  o Add option to silence effect to leave periods of silence
    in and only strip out extra silence.   (Mark Schreiber)
  o synth can now generate any number of channels.  (robs)
  o mixer can now mixdown to mono any number of channels.  (robs)
  o All effects that could only work on mono or stereo audio, now
    work with any number of channels.  (robs)

  Other new features:

  o Show (with -S) if clipping is occurring.  (robs)
  o Added internet input file support (needs wget).  (robs)
  o Made it possible to build without sound drivers.  (Reuben Thomas)

  Bug fixes:

  o Fix (m)compand transfer function non-linearities; fix compand
    drain volume.  (robs)
  o Fix crash with pan effect.  (robs)
  o Add missing RM define to Makefiles so installs work.
   (Bug# 1666599) (cbagwell)
  o Fix I/O performance regression in 13.0.0.  (Reuben Thomas)
  o Fix .lu, .la read regression in 13.0.0 [Bug# 1715076].  (robs)
  o Fix displayed times when playing a file and using trim.  (robs)
  o Fix CDDA sector duration display for non-CDDA sample rates.  (robs)
  o synth fixes: brown noise; inverted square wave; offset < 0.  (robs)
  o FLAC: fixed crash when encoding with no comment.  (robs)
  o Fixed effect drain problems: chorus, echo(s), phaser.  (robs)
  o Fix rabbit responsiveness and memory problems.  (Peter Samuelson)
  o Fix broken stereo audio when recording using ALSA.  (robs)

  Internal improvements:

  o Renamed libst to libsox for name recongition and to avoid
    duplications with other existing libst libraries.  (Reuben Thomas)
  o Moved effects to libsfx.  (Reuben Thomas)
  o Got rid of several hundred compiler warnings.  (robs, Reuben Thomas)
  o Added basic performance testing of I/O.  (Reuben Thomas)
  o Effects chain processing now available in libSoX.  (robs)
  o Added effects-chain buffering for effects that use a window [FR#
    1621695].  (robs)
  o Added cmake build files for Win32.  (robs)



sox-13.0.0
----------

  File formats:

  o Support for .caf, .paf, .fap, .nist, .w64, .nist, Matlab 4.2/5.0
    (Octave 2.0/2.1), .pvf, .sds, .sd2 and .xi file formats via libsndfile.
    If available, libsndfile can also be used to handle all the other file
    formats it understands.  (Reuben Thomas)
  o Add FLAC support (robs)
  o Support Maxis's XA format. (Dwayne C. Litzenberger)
  o Add support for 24-bit PCM raw, wav (WAVE_FORMAT_EXTENSIBLE) [FR# 801015],
    au, aiff, & flac files. (robs)
  o Add AIFF-C output support.  (shashimoto)
  o New .ima file format for raw IMA ADPCM.  (robs)
  o Allow the rate and number of channels of .au files to be overridden
    by command-line arguments. (robs)
  o Add seek support for GSM data in WAV files. Rafal Maszkowski
  o Allow encoding quality to be specified (FLAC & Ogg, but not
    MP3 yet).  (robs)
  o Rename -b to -1, -w to -2, -l to -4, -d to -8, and mask to dither.
    (robs)
  o New options for specifying endianness (and separate options for
    nibble & bit reversal) [FR# 1621702].  (robs)
  o Improved multi-channel file reading; fixes [1599990].  (robs)

  Effects:

  o Equalizer effect (Pascal Giard)
  o bass and treble altering effects.  (robs)
  o New optional rabbit resample routine, using libsamplerate
    (aka Secret Rabbit Code).  (Reuben Thomas)
  o Added allpass filter effect.  (robs)
  o Documented the butterworth filter effects; added variable Q.  (robs)
  o "rate" effect made an alias for "resample".
  o Visualisation of various filters' frequency response via Octave.  (robs)
  o Can now specify width of many 2nd-order filters as: Hz, octaves,
    or Q.  (robs)
  o Dither/mask amount now specifiable.  (robs)
  o Consistent (and hopefully complete) clipping detection and
    reporting.  (robs)
  o Allow command-line time parameters of < 1 sec to omit the
    leading 0. (robs)
  o Improved synth usage and improved the synth entry in the man-
    page.  (robs)
  o Higher quality audio speed adjustment; also fixes [1155364].  (robs)
  o Replacement flanger effect; also fixes [1393245].  (robs)
  o Added silence padding effect.  (robs)
  o Added ability for noiseprof to use stdout and noisered to use stdin
    [FR# 1621694].  (Reuben Thomas)
  o vibro effect name deprecated in favour of tremolo; this effect
    reimplemented as a special case of synth.  (robs)

  Other new features:

  o Remove soxmix.  (Reuben Thomas)
  o Preview mode now removed, as all it did was use rate rather than
    resample, and rate has been removed.
  o -V now gives only user-relevant messages, use -V -V to get
    developer-relevant messages.  (robs)
  o -V output much improved and expanded; now includes display of
    (auto-)selected effects.  (robs)
  o sox man-page overhaul, new soxexam man-page entries.  (robs)
  o Added command line options for specifying the output file
    comment.  (robs)
  o Added ability to merge e.g. 2 mono files to 1 stereo file
    [FR# 1297076].  (robs)
  o Removed the restrictions whereby multiple input files had to have
    the same data encoding & size, and in most situations where they
    had to have the same # of channels, and for play where they had
    to have the same sampling-rate.  (robs)
  o Options to apply replay-gain on input; enabled by default
    with `play'.  (robs)
  o Can now use Ctrl-C to skip to next track when playing multiple
    files (e.g. play *.mp3); Ctrl-C twice to exit.  (robs)
  o Added --interactive option to prompt to overwrite pre-existing
    output file.  (robs)
  o Added large file support.  (Reuben Thomas)

  Bug fixes:

  o Fix writing MP3 files on AMD64 processors.
  o More fixes to MP3 tag reading.  Sometimes tags were
    detected as valid MP3 frames.
  o Fix to stop, avoiding a crash, when starting of effects fails.
    (Reuben Thomas)
  o Fixed a bug introduced in 12.18.2 that stopped the draining
    of effects from occuring.  This had stopped the reverse effect,
    among others, from working.  (Reuben Thomas)
  o Several effects are now optimised out in situations where they need
    do nothing, e.g. changing rate from 8000 to 8000, or changing volume
    by 0dB [Bug# 1395781].  (robs)
  o Fix rounding error when reading command-line time
    parameters. (robs)
  o Fix nul file hander ignoring other format options if rate
    option has not been given. (robs)
  o Fix synth length accuracy. (robs)
  o Fix broken audio when downmixing with any of the following
    effects: synth, deemph, vibro. (robs)
  o Fixed deemph & earwax effects to work with MP3, vorbis,
    & FLAC.  (robs)
  o Fix wav file handler discarding the last PCM sample in certain
    circumstances. (robs)
  o Fix [1627972] AIFF read bug when MARK chunk present.  (Richard Fuller)
  o Fix [1160154] VOX to WAV conversion problem.  (robs)
  o Removed (for output file only) the potentially
    problematic -v option.  Use the vol effect instead.  (robs)
  o Improved the accuracy of integer and floating point PCM
    conversions.  (robs)
  o Don't go into a loop on zero-padded WAVs.  (Jorge Serna)
  o Fix to AIFF writing to avoid writing invalid files in some situations.
    (Reuben Thomas)
  o Fix compander effect bugs: [1613030] Compand fails to compress
    clipping, [1181423] compand with 0 sec attack/release.  (robs)

  Internal improvements:

  o More and better self-tests. (robs)
  o Build system overhaul to use the full set of GNU autotools.
    (Reuben Thomas)
  o Add new getopt1.c to win32 project file.
  o Remove old, optional rate change and alaw/ulaw conversion code.
    (Reuben Thomas)
  o Removed the old internally invoked (but mentioned in the man page)
    copy effect.  (robs)

sox-12.18.2
-----------
  o Adding in Debian's disk full fix (#313206).
  o Finally got rid of reference to cleanup() function in
    library.  Applications are now required to detect
    all failures from return codes and cleanup as they
    want.
  o Changed how list of formats and effects are stored internally.
    Effects libst users only. Dirk
  o Store effects usage so that its accessable by applications.
    Dirk
  o Modify the synth effect to not use SIGINT to stop processing
    and instead return ST_EOF.  This allows exact acount of
    samples to be written out instead of an approximate amount.
  o Fix hangup when attempting to write stereo MP3 files.
    (1512218) Kendrick Shaw
  o Deemp effect would lose stereo separation. (1479249)
  o Adding cross-platform support for getopt_long
  o Make help screens print much more information and add
    new --help-effect option.  (Originally from Dirk).
  o Add support for using an external gsm library instead of
    just the internal one.  Vladimir Nadvornik
  o Updates to nul file handler to prevent crashes during output.
    Martin Panter (1482869)

sox-12.18.1
------------

  o The "filter" effect could go into infinite drain mode.  Now
    only drain 1 buffer.  noisered as well.
  o SoX was ignoring user aborts (ctrl-c) if it occured during
    effect drain operations.  This was bad if effects had
    bugs and stuck in infinite loop.
  o Stop SoX from crashing when file type could not be auto
    determined (1417776).
  o Output filenames with multiple '.' confused SoX.  (1417776)
    Christian Hammer
  o Moved to a common set of CLIP routines.  This fixed clipping
    bugs in noisered and mcompand.
  o Stop SoX from crashing on sphere files that contain large text
    strings.  (1430025) Ulf Hamhammar
  o Fix some overflow crashes in aiff handler. (1430024)  Ulf Hamhammar.
  o Under windows, set piped input/output to binary mode (1417794). Martin
    Panter
  o Fixed broken internal version of strdup().  (1417790) Marty
  o Stop infinite loop when reading MP3's with a tag size of
    exactly 8192 bytes.  (1417511) Hans Fugal
  o Fix typo in stlib.dsp for loading in Visual Studio 6.
  o Fixed problems in silence effect related to removing multiple
    periods of silence from the middle of the sound file.
  o Reduced the window size greatly on the silence effect to
    prevent leaving in silence that looked like noise still based
    on RMS values.
  o Prevent infinite loop in pitch effect from uninitialize variable.
    Frank Heckenbach
  o Prevent crashes when printing error mesages (1447239)
  o Added makefile and support files to compile using Open Watcom
    compiler.  (1417798) Marty
  o Stop calling flow() on effects that returned EOF during drain().  Allows 
    two back-to-back reverse effects to work.
  o Added support for multiple channels in .dat files. 
    (1366634) tomchristie

sox-12.17.9
-----------

  o Updates to compile under VC6. Jimen Ching
  o Declare st_signalinfo_t to specifically be signed in case
    platform does not default ot signed chars.  This
    is required for NetBSD/powerpc.
  o When seek()ing in AIFF, SMP, and WAV handlers, remaining samples were
    incorrectly computed based on bytes and not samples.  Jukka
  o Changed noisered effect to just warn during clipping instead
    of aborting.  Ian Turner
  o Fixed bug were pieces of audio were lost every buffer read
    when running both -c and -r options together on mono audio.
    Users probably percieved it as shorter audio files that
    played with a sped up tempo.
    Bugfix will also apply to other times when multiple effects
    are ran on the command line.
  o Added support for -V option to play/rec scripts.
  o Fix to silence effect to allow negative periods to be specified
    (to remove silence from middle of sound file).
  o Fix swap option handling so that special case of "swap 1 1" will
    work.
  o Track length of Ogg Vorbis files on read.
  o Add support for displaying a status line that tracks progress
    of read/write routines.  Part of information requires read
    file handlers to be able to determine file length.
  o Converted alsa driver to use asoundlib instead of directly
    talking to kernel driver.  This also means that device names
    are now the ALSA logical names instead of /dev type names.
  o Added ALSA support to play/rec scripts.
  o Added st_open*, st_read, st_write, st_seek, st_close routines 
    to help simplify developer interface to libst.  See libst.3..
  o Removed st_initformat(), st_copyformat(), and
    st_checkformat() from library.  If your app used those
    functions then copy them from 12.17.8 source code
    directly into your application or update to use new
    routines.
  o Force word-alignment on AIFF SSND and APPL chunks on input.
    Matthew Hodgson.
  o Add fix to WAV handler to only return data in multiples
    of sample_size*channels to better handle corrupt files.
  o Fixed bug where "-4" option didn't work with avg
    effect (Tom Christie).
  o Fixed fade's fade-out-length to match man page
    description as noted by Geoff Kuenning.  This required
    updates to the sample crossfade scripts.  Also modified fade
    effect to report when no more samples will be produced to
    prevent unneeded reading of whole file.
  o Allow aborting SoX with SIGTERM, along with previous SIGINT.
    Norman Ramsey.

sox-12.17.8
-----------
  o noisered effect had compile problems with some compilers.
  o "-x" option was being ignored since 12.17.7.
  o Stuart Brady added support for reading and writing RIFX files (big
    endian RIFF/WAV files).  Also added support for auto detecting
    DEC-style ".sd\0" files.
  o Gene Mar found typo in polyphase nuttall calculation.
  o SMP buffer overflow (detected by gcc 4.0).  Reported by Marcus Meissner
    and Matthias Saou.
  o Fixed URL in manpage to resample overviews.
  o Fixed WAV handler so that it didn't think WAV chunks with max size
    were invalid chunks.  This allows WAV's to be used in pipes since
    they have to default to max size.
  o WAV files with alaw or ulaw data don't need extended format chunks.
    (Lars Immisch)
  o In AIFF files, fixed problem were short comments should cause
    AIFF handler to get confused and become misaligned.

sox-12.17.7
-----------
  o Christian Weisgerber sent patches to man page fixes
    and patches for sunaudio driver on openbsd.
  o Default volume for soxmix wrongly set to 0 instead
    of 1/#_input_files (float rounding error).
  o Update to ALSA driver to do a better job of detecting
    unsupported sample rate/size/encoding and change to
    a supported one.
  o Fix bug in alsa writing were last last partial buffer
    wasn't being flushed.
  o Guentcho Skordev pointed out ogg vorbis files were using
    the same value for serial numbers each time.
  o Changed sox to only read the exact size of a WAV data chunk
    if cooledit IFF LIST chunk is found at the end of the file.
    Normally, this isn't done to allow reading > 2gig WAV files.
  o Modified configure to detect cygwin compiler after detecting
    gcc compiler (fixes some default CFLAGS options).
  o Added explicit rule for compile *.o from *.c so that
    CPPFLAGS is always referenced.  Not all platform's default
    rule includes CPPFLAGS (FreeBSD).
  o Under linux, add include path to /lib/modules/* so that ALSA
    include files can be auto detected.
  o Ian Turner added an effect to remove noise from an audio
    file by first profiling silent periods of the audio
    to determine what the noise is (like background hiss on
    cassette tapes).

sox-12.17.6
-----------
  o Changed comment code to always use copies of strings to
    fix bug in WAV handlering freeing argv[] memory.
  o Use calloc() to create ft_t structures so that all
    memory is initialized before being referenced.
  o Fixed VOC EOF bug were it thought there was an extra
    block when there wasn't.
  o Restructured directory layout so that source code is in
    a seperate directory.
  o Modified SoX to accept multiple input files.  Concatenates
    files together in this case.
  o Removed map effect so that loops and instr could be removed
    from effects structures.  This makes effects engine stand
    alone from the rest of the sox package.
  o Benedikt Zeyen found a bug in synth effect when generating
    brown noise that could cause clipping.
  o David Leverton sent another patch to prevent crashes on
    amd64's when resampling.
  o Fixed a bug were MP3 files with large ID3v2 tags could
    cause SoX to stick in a loop forever.  Now, it will
    abort on IDv3 tags larger then 100k.  Could still be
    improved to handle any size.
  o Changed volume option (-v) so that it tracks the file
    it was specified.  This means that when specified with
    the input file, it changes volume before effects engine
    and when specified with output file, its done after effects
    engine.
  o Added crossfade_cat.sh script that will concatenate to
    audio files and do a crossfade between them.
  o Fixed bug in fade effect were it was impossible to do a
    fadeout starting from the beginning of the audio file.
  o Removed rounding error when changing volume of audio with
    "-v" option.  This error caused doing a "-v -1.0" twice
    to not result in the original file.
  o Fixed a possible overflow in lots of effects were MIN
    value was treated as -MAX instead of -MAX-1.
  o Modifed sox so its OK for effects to not process any
    input or output bytes as long as they return ST_EOF.
  o When effects output data and reported ST_EOF at the
    same time, that buffer was discarded as well as
    data from any chained effect.
  o Added patch from Eric Benson that attempts to do a seek()
    if the first effect is trim.  This greatly speeds up
    processing large files.
  o Daniel Pouzzner implemented a multi-band compander (using
    the butterworth filters to split the audio into bands).
  o Donnie Smith updated the silence effect so that its possible
    to remove silence from the middle of a sound file by
    using a negative value for stop_periods.
  o Changed float routines to only work with normalized values
    from -1:1.
  o Modifed .au handler to be able to read and write 32-bit
    and 64-bit float data.  Only tested reading so far.
  o WAV with GSM data now always pads data to even number of bytes.
  o Added support for writing 32-bit audio to AIFF.

sox-12.17.5
-----------
  o Thomas Klausner sent in patches to compile audio drivers under
    NetBSD.
  o Rahul Powar pointed out a memory leak in the WAV file handler.
    It wasn't calling the correct close() function when closing
    input files.
  o Modified play.1 man page to not use multiple name lines.  This
    appears to confuse some conversion programs.  Updated sox.1
    man page for typo in reverb option.
  o Andrew Church fixed problem with header of stereo 8SVX files.
  o Jimen Ching added support to scan over garbage data at the
    beginning of MP3 files to find valid frames.  This is useful
    to play WAV and AIFF files that have MP3 data in them until
    those handlers support it directly.  To play those, force
    sox to use the mp3 handler with the "-t mp3" option.
  o Added patch from Ulf Harnhammar to wav handler to prevent
    buffer overflows.
  o Added patch from Redhat to allow resample to work on certain 64-bit
    machines (Sam Varshavchik)
  o Tony Seebregts added a file handler for headerless Dialogic/OKI ADPCM
    files (VOX files).
  o Jan Paul Schmidt added a repeat effect to do loops the brute force way.
    This is also good for file format that don't support loops as well.
  o Fix for OSS driver in rate tolerance calcs that were off because
    of type conversion problems.  Guenter Geiger.
  o Allow reading sphere files with headers greater then 256 bytes.  Jimen
    Ching.
  o Fix for vorbis were comments are displayed in KEY=value format always.
    Stop printing some info to stdout in case output is a pipe. Guenter
    Geiger.
  o J Robert Ray submitted fix for AIFF handler to ignore lowercase
    chunks that are unknown.
  o Bugfix for 8-bit voc files.  Jimen Ching
  o General warning cleanups (cbagwell)
  o Memory leaks in reading WAV files (Ufuk Kayserilioglu)
  o Rearrange link order of ogg vorbis libraries so that they
    can be compiled as static. (Christian Weisgerbr)

sox-12.17.4
-----------
  o Peter Nyhlen fixed a problem with reading Comments in Ogg Vorbis files.
  o Added install target to allow installing libgsm from main Makefile.
    Leigh Smith.
  o Minor updates to sox.c to free unused memory and close all input
    files during failures.
  o Pieter Krul added a patch that makes play script look at AUDIODEV
    environment variable if it exists to find which device to use.
    This allows scripts to work with Solaris SunRays and is a good idea
    in general.
  o Updated config.sub to detect latest supported OS's.
  o Fabrizio Gennari added support for reading and writing
    MP3 files using the external libraries libmad and libmp3lame.
  o Jens Henrik Goebbert sent in several bugfixes for integer overflows
    in the compand effect.
  o Dan Dickerman sent in patches for integer overflows in the resample
    effect.
  o Jimen Ching sent in a fix for multi-channel sound file processing
    using the avg effect.
  o Richards Bannister added patches to clean up prototypes and filter
    private sizes being to small.
  o Jimen Ching adds -d option to specify 64bit data size and changed
    Ulaw/Alaw encoding to default to 8bit data size if not specified.
  o David Singer pointed out that a MS program creates AIFF files
    with an invalid length of 0 in its header.  Changed SoX to warn the
    user but continue instead of aborting since SoX can still read
    the file just fine.
  o Bert van Leeuwen added a file handler for Psion record.app used
    for System/Alarms in some Psion devices.
  o Richard Bannister sent in a patch to make writing vorbis files
    work with Vorbis 1.0 libraries.
  o Fixed configure scripts so that they can be ran with the
    --with-oss-dsp, --with-alsa, and --with-sun-audio options.
    Was causing compile time problems.  Reported by Raul Coronado.
  o Change Ogg Vorbis support to use VBR encoding to match defaults
    of oggenc based on suggestion from Christian Weisgerber.
  o Prints error message now when a channel value of -1 is given.
    Reported by Pierre Fortin.
  o Fixed bug were memory could be trashed if a input WAV file contained
    a comment.  Found by Rhys Chard.
  o Change command line to compile soxmix.o slightly to try and make
    Forte compiler happy.
  o Added support for ALSA 0.9 driver. Jimen Ching

sox-12.17.3
-----------
  o Removed check that prevented pan from being invoked when the
    input and output channels were the same.
  o Ciaran Anscomb added a flush to sunaudio driver after changing
    settings.  This is because it can start buffering data as soon
    as the device is open and the buffered data can be in a
    wrong format.
  o trim wasn't accounting for # of channels and was generally broken.
  o Jeff Bonggren fixed trim bugs were it was failing when triming
    data that equaled to BUFSIZ.  Also, trim now immediately returns
    ST_EOF when its done instead of requiring an extra call that
    returns no data.
  o auto effect wasn't rewinding the file if the file was less then
    132 bytes.  Changed auto parsing of header to be incremental
    instead of reading in a large buffer.
  o William Plant pointed out a bad pointer access in fade effect's
    parsing of options.
  o Ken pointed out a problem were private data was not 8-byte aligned
    and causing crashes on most RISC CPU's.  Fixed by going back to
    old style of declaring private data as type "double" which usually
    forces strictest alignment.
  o ima_rw was miscompiling on alpha's because of a header ordering
    problem.
  o Erik de Castro Lopo pointed out that when writing 16-bit VOC files
    the headers did not contain the correct length or encoding type.
  o Seperated st.h into 2 files.  st.h for libst users and st_i.h for
    internal use.
  o Added new types used extensively by libst: st_sample_t & st_size_t.
    This allows for more deterministic behavior on 64-bit machines and
    also allows sox to possibly work with much larger file sizes.
  o SoX was some times getting confused and thinking an EOF was an
    error case when reading audio files.  Removed unneeded aborts
    when EOF was OK.
  o Silence effect was broken on stereo files.  Also, made thresholds
    relative to original bit percision of audio data.  When 16-bit audio
    is scaled up to 32-bits, a little bit of noise starts to look like a
    large amplitude of noise.  Also, now using RMS values to smooth out
    clicks.  RMS rolling window size is 1/10 of sample rate.
  o Changed Floats into a type of encoding instead of a size of audio data.
  o Put a flush at the end of OSS driver so that no old data would be
    left in internal buffers after changing audio format parameters.
  o Fixed problem where play script wasn't installed correctly if you
    build from another directory (pointed out by Mike Castle).
  o Made GSM support internal to libst (no external library required).
  o Change configure script to enable ulaw/alaw lookup tables and GSM
    support by default.  Also have Makefile's make use of more configure
    prefix options to allow for customized installs.
  o Reverted ulaw/alaw conversion routines back to Sun's versions.
  o Modified raw file handler to write files in the same generic buffered
    fashion that was added for reading in 12.17.2.  Seems to have
    speed up some types of writing.
  o Reading Ogg Vorbis files could get confused of when EOF was reached.
  o Added uninstall rules to Makefile.  Added new ststdint.h to define
    *int*_t typedefs.
  o Added internal strcasecmp for OS/2.
  o Added support for swapping "bit" order (MSB becomes LSB) for raw u-law
    and A-law data.  Some ISDN equipment prefers it this way.  Use -x flag
    or new .la or .lu file extensions.
  o Annonymous patch submitted to fix types and spelling problems in
    various files.  Also, updated VOC files to have u-law and A-law
    support as well as able to read in VOC files using a pipe.  More
    examples added to soxexam file.

sox-12.17.2
-----------
  o Daniel Culbert found and fixed a bug in the polyphase effect
    that occurs on platforms that rand() can return large values.
    The bug resulted in polyphase resampling an audio file to a
    different rate then it said it was.
  o Stan Seibert contributed a handler for Ogg Vorbis files.  It
    handles all input formats but can only save using default
    settings.
  o Darrick Servis has made major cleanups in the code in regards
    to error conditions.  Helps people using libst.
  o Darrick Servis has added added optional seek functionality sox.
    Several formats have been modified to make use of this.
  o Geoff Kuenning rewrote the average effect into a general-purpose
    parametric mapping from N channels to M channels.
  o Geoff Kuenning added an optional delay-time parameter to the compander
    effect to allow companding to effectively operate based on future
    knowledge.
  o Geoff Kuenning Added support to fade and trim effect for specifying time
    in hh:mm:ss.frac format.
    Fixed a bug that caused integer overflow when large start/stop times
    were used.
  o Geoff Kuenning updated play/rec/soxeffect scripts to handle all effects
    added since 12.17. Spell-checked soxexam.1 file.
  o Jimen Ching updated ALSA configure support to auto-detect 4.x or 5.x API
    and compile correctly under those two.  All other versions are unsupported.
  o Merged in the NetBSD package changes into CVS finally.
  o Removed broken support for non-ANSI compilers.
  o Makefile now places the correct path to SoX in the play/rec scripts
    based on configuration script values.
  o Alexander Pevzner provided a fix for OSS driver for sound being
    dropped under heavy CPU loads.  Moved GETBLKSIZE operation
    until after setting up the format (SBLive! was modify the block size
    after changing formats).
  o With help from David Blythe, updated OSS drivers to use newer format
    interface.  OSS driver will now attempt to detect a valid endian type
    to use with sound card.
  o Carsten Borchardt pointed out a bug in lowp filter.  Added new
    nul file handler that reads and writes from/to nothing.
    Also added new synth effect that creates sounds using a simple
    synthesizer.  Created a testcd.sh that uses two new features
    to create a test sound CD for testing audio equipment.
  o Ben Last added a new program that uses libst and will merge two
    seperate audio files into a single file with multiple channels.
    This was merged into the standard sox.c file by cbagwell.
  o Andreas Menke fixed some problems with the speed effect and
    how effects were drained.  Also improved the usage of printf()'s
    to use stderr.
  o Corrected AU header length value when comments were less than
    4 bytes.
  o Added support for reading non-standard bit size data from AIFF files.
  o Ignore unmatched MARK/INSTR chunks in AIFF files now instead of quiting.
  o Fixed ALAW encoding bug in .au files as pointed out by Bruce Forsberg.
  o Unified the raw reading functions.  Probably slightly faster for
    most datatypes but was done to fix recording from the OSS driver.
    Control-C stopped working somewhere during the 12.17 series.
  o Ford Prefect added a dcshift which can shift the midline amplitude
    towards the true center.  This will allow for a greater range
    of volume adjustments without clipping audio data.
  o Heikki Leinonen submitted a silence effect that will trim off
    silence from the beginning of a file.  cbagwell made some modifications
    to trim off front and back as well as some other tweaks.
  o Made the "auto" effect the default file handler for input files.
    Also have auto handler now use file extensions if it can't figure
    it out.

sox-12.17.1
-----------
  o Andreas Kies fixed a bug were we were not detecting correctly
    if an output file was seekable.
  o Fixed a bug in the mask effect introduced in 12.17.  If the libc
    version of rand() returned more then 15-bit values then it would
    trash your data.  Reported by Friedhel Mehnert.
  o Added a new fade in/out effect from Ari Moisio.
  o AIFF files now ignore a MARK chunk if the loop type is NoLoop (0).
  o Fixed bug were it was impossible to output ADPCM data in wav files.
  o Fixed bug were rate had to be specified for sphere files (fix from
    Antti Honkela).
  o Added small work around to let compile with cygwin's gcc 95.2
    which also now allows to compile with GSM support under windows.
  o Removed accessing of sound devices in tests for sound support and
    instead just look for needed header files.  This allows the sound
    support to be detected even if the device is currently busy or when
    compiled on a box that doesn't have a sound card but the OS supports
    it (which is the enviornment of most distributions creating new
    binaries).
  o Added support to partially handle AIFC files but only uncompressed
    versions.  This should allow people to work with raw CD audio data
    on Mac OSX and also gives a basis for adding future support for
    things like ADPCM processing.
  o Added new "earwax" effect from Edward Beingessner.  It is meant to
    be used for CD audio played through headphones.  It will move the
    sound stage from left/right to in front of you.
  o Trim effect did not compute locations as was documented in the
    man pages.  Changed effect so that it computed the time the
    same way that the fade effect does.

sox-12.17
---------
  o Sox can now read and write w98 compatible gsm .wav files,
    if compiled properly with libgsm.  Thanks go to Stuart
    Daines <sjd.u-net.com> for the gsm-wav patches.
    This is new, and relatively untested. See -g format option.
  o Sox can now write IMA_ADPCM and ADPCM compressed .wav,
    this is new, and relatively untested. See -i and -a format
    options in manpage.
  o General changes to wav.c for writing additional wav formats.
    Reading wave headers: more consistency checks.
    Writing wave headers: fixes for w98.
  o Speedups to adpcm read routines, new codex versions are
    now in ima_rw.c and adpcm.c.
  o Speedups for raw.c, especially for gcc with glibc.
  o Fixed a segfault problem with ulaw/alaw conversion, where
    an out-of-range index into the tables could occur.
  o More detailed output from the stat effect.
  o Continued rewrite of resample.c, now it is almost as
    fast with floating arithmetic as the old (buggy) version
    was with 16-bit integer arithmetic.  The older version
    in sox-12.16 shifted frequencies slightly and was less
    accurate.
  o Extensive rewrite of polyphas.c, should be faster and use
    less memory now.  The sox-12.16 polyphase code had some bugs.
  o New effect 'filter' which is a high-quality DSP lowpass/
    highpass/bandpass filter using windowed sinc function
    methods, like polyphase and resample.
  o Jan Paul Schmidt added new low/high/bandpass and bandlimit
    filters to sox.  They have much better results then the old
    versions of low/high/bandpass.  The new effects are all
    Butterworth filters.
  o New data file type supported, -sl or extension .sl for
    signed 32-bit integers.  Some simplification of the raw.c
    source.
  o Some test programs and scripts in the test directory, for
    making gnuplot plots of frequency response, error-levels
    of rate-conversion and filter effects.
  o Removed sbdsp code.  All modern unixes are support via OSS,
    ALSA, or sun audio device interfaces.
  o Added AVR handler from Jan Paul Schmidt.
  o SoX now waits until the last possible moment before opening
    the output file.  This will allow all input and effect options
    to be parsed for errors and abort before overwriting any file.
  o SoX will no longer write to files that exists.  This will keep
    it from deleting files when a user mistakenly types "sox *.wav".
  o Added new compander effect from Nick Bailey.  Nice general purpose
    filter.
  o Under Solaris, SoX now checks hardware ability to play stereo/PCM
    and forces output data to match.  Sorry, no SunOS support.  I don't
    have access to one any more.
  o Fixed array overrun bug in rate effect as pointed out by Ian
    Donaldson.
  o Fixed clip24() range as pointed out by Ted Powell.
  o Fixed possible segfault in echos effect, as pointed out by Zinx
    Verituse.
  o Moved most documentation to new "soxexam.1" manual page so that
    all users on a unix system will have access to important information.
    This means no more TIPS, CHEATS, or CHEATS.eft files.
  o Richard Kent fixed a byte alignment problem in aiff comment code.
  o Loring Holden added support to create missing directories on install
    and support for installs from outside the source directory.
  o Fabien COELHO added a pan and volume effect.
  o Fabien COELHO added a speed effect to sox (like speeding up a tape
    machine).  Also added pitch which changes pitch without effecting
    duration and stretch which stretch time without effecting pitch.
  o Leigh Smith updated aiff support to use the COMT check when writing
    comments instead of the ANNO.  It is the prefered method from Apple
    and newer programs are starting to require it.  Also fixed some bugs
    in how we compute the length of various chunks in output files.
  o Changed the default block alignement for IMA ADPCM WAV files to use
    256 which is what windows programs use.  Badly written readers expect
    256.
  o Matthias Nutt helped add support for specifying multiple effects
    to SoX on the command line.
  o Curt Zirzow added a trim effect to trim off audio data.
  o Updated ALSA driver to support new interface. Jimen Ching 

sox-12.16
---------
  
  o Changed raw data functions to perform I/O operations using block reads.
    Should improve speeds greatly, especially when filesize is in megs.
    Got code ready to tweak speed more which also forced me to clean up
    Endian test code.
  o Fixed a bug in .au's handling of G.723.  It wasn't using the correct
    number of bits.  Added A-law support to .au.
  o Quoted $filename in play/rec scripts so that files with spaces in
    their names can be given.
  o Old OS/2 support didn't work.  Replaced with known working EMX
    GCC compatible code.
  o ADPCM WAV files were defaulting to 8-bit outputs and thus losing
    some persision.  Now defaults to 16-bit signed uncompressed data.
  o Fixed a couple cross-platform compiler issues.
  o Jimen Ching has added support for "configure" in to SOX.  Finally,
    a good solution to cross-platform compiling!
  o Jimen Ching has added native support for the ALSA driver to play
    and record audio from. (jching@flex.com)
  o Minor correction for -r example in manual page.
  o Renamed sox.sh to soxeffect and rewrote.  Symbolic links can be made
    from this file to the name of a sox effect.  It will then run that
    effect on STDIN and output the results to STDOUT.
  o Fixed up some makefiles and 16-bit support from patches sent by
    Mark Morgan Lloyd (markMLl.in@telemetry.co.uk).  Also added some
    nice DOS test bat files from him as well.
  o Cleaned up some more cross-platform compile problems.  In the process
    got it working with Turbo C again, kinda.  It still locks DOS up at times.
  o Made AIFF handler work with invalid headers that some programs generate.
    Also fix an Endian bug thats been there for quite a long time (when
    ran on Intel machines).  Made comment lengths even length to make
    most MacOS programs happy.  cbagwell
  o Resample function was updated by Andreas Wilde 
    (andreas@eakaw2.et.tu-dresden.de) to fix problem were freqs. were
    off by a factor of 2.
  o Added an effect that swaps stereo channels.  cbagwell
  o Combined play and rec scripts to a single program to ease mantaince.
    Also added GNU style long-options (--help).  Careful, some options have
    change (but more logical).
  o Fixed a very old silly bug were low/high/bandpass filters would
    add some trash data to the end of the sound file.
  o "avg" effect wouldn't give error message when you tried to average
    x number of channels in to the same number of channels.
  o Fixed core dump when writting AIFF files with no comments.
    (Olaf Pueschel)

sox-12.15
---------

  o Juergen Mueller moved Sox forward quite a bit by adding all the
    most commonly known "Guitar Effects".  He enhanced echo support,
    added chorus, flanger, and reverb effects.  He also wrote a very
    handy CHEAT.eft file for using various effects.
  o Incorporated Yamaha TX-16W sampler file support provided by
    Rob Talley (rob@aii.com) and Mark Lakata (lakata@physics.berkeley.edu).
  o Fixed a small bug in hcom compression, dependent on sign 
    extension.  Leigh Smith (leigh@psychokiller.dialix.oz.au).
  o sox -h now prints out the file formats and effects supported.
    Leigh Smith and Chris Bagwell.
  o smp transfers comments more completely.  Leigh Smith.
  o aiff manages markers and loops correctly and produces more 
    verbose output.  Leigh Smith.
  o Added polyphase resampler (kb@ece.cmu.edu).  This adds a slightly
    different resampling algorithm to the mix.
  o Michael Brown (mjb@pootle.demon.co.uk) sent a patch to stop crashes 
    from happening when reading mono MS ADPCM files.
  o Fabrice Bellard has added a less buggy 'rate' conversion.  I've left
    the old rate code included but if all goes well this will become
    the new 'rate'.  Please test and let me know how it works.  Resample
    effect needs to be reworked now.
  o Heiko Eissfeldt: Implemented a simple deemphasis effect for
    certain audio cd samples.
  o Matija Nalis (mnalis@public.srce.hr) sent a patch to fix volume adjustment
    (-v) option of sox.
  o Fixed typo in optimazation flag in unix makefile, as pointed out by
    Manoj Kasichainula (manojk@io.com).
  o Fixed missing ';;' in play script. cbagwell
  o Fixed bug in determining length of IMA and MS ADPCM WAVE files. cbagwell
  o Fixed bug in how stereo effects were drained which fixed the
    "reverse" effect from only saving half of stereo files. cbagwell
  o Can use "-e" without an effect again.
  o Added -g and -a options for new style support of GSM and ADPCM.  Added
    error checking to various formats to avoid allowing these types.

sox-12.14
---------

  o Bumped major version number up and shortened name.  The shorter name
    should help the various distributions using this package.
  o Added support for MS ADPCM and IMA (or DVI) ADPCM for .wav files.
    Thanks to Mark Podlipec's xanim for this code (podlipec@ici.net).
  o Change Lance Norskog's email address to thinman@meer.net.  The old
    one was bouncing.
  o Added path string to play and rec strings so that it could be run by
    users without complete paths setup (i.e. Ran by "rc" files during bootup
    or shutdown)
  o Fixed -e option from Richard Guenther 
      (richard.guenther@student.uni-tuebingen.de) and fixed a small bug
    in stat.
  o Fixed a bug in the mask effect for ULAW/ALAW files.
  o Fixed a bug in cdr output files that appended trash to end of file.
  o Guenter Geiger (geiger@iem.mhsg.ac.at) made a rather large patch to
    allow sox to work on 64-bit alphas.  It was done the easiest meathod
    by changing all long declarations to use a macro that knows to
    make it 32-bits.  Want to port to another 64-bit-but-not-alpha
    machine?  Grep for "alpha" to see changes.  There are most likely
    several bugs left for alphas.  Guenter is also supporting this
    package for the Debian distribution.
  o Did some major code cleanups to clear out some warning messages
    during compile.  This is to clear up problems I'm finding under
    both alpha and dos.  Some warning messages are actually useful
    now (pointing out possible data loss).  Hopefully, I didn't
    break anything.
  o Code clean up allows me to finally compile code under Turbo C
    again.  Too bad the EXE gets a currupted stack somewhere and locks
    up the system.  Anyone want to try it with Borland C for me?
    If you get a working EXE I would like to start distributing a DOS
    package like there used to be.
  o Speaking of cleanups, anyone want to help cleanup the makefiles for
    various platforms?  They are quite outdated right now and it is
    very obvious that Sox hasn't been able to compile under all the
    platforms it once did for several releases.  Please send in 
    the cleaned-up makefile versions along with what programs you
    used to compile it with.
  o There is a known bug in hcom's compress() function.  It is allocating
    memory that can't be free'd under some OS's.  It causes a core dump.

sox-11gamma-cb3
---------------

This release of sox is mainly a bugfix release.  The following things
have changed:

  o  Documentation has been updated when it was obviously wrong.
     Much more work could be done.  Man pages were updated to
     work correctly on Solaris and add some missing info.
  o  Several people sent me patches to fix compiling on Solaris
     as well as fix a few bugs.
  o  Change USS driver's name to OSS.  Man, does that driver
     like to change names!  This could cause problems if you
     have made your own custom play and rec scripts.
  o  Updated my email address.  Sorry if I haven't responded to
     any emails as I no longer have access to my old address.
     Please use cbagwell@sprynet.com.
  o  Fixed unix test scripts so that they worked again.
  o  Fixed endian bug in psion .wve code.
  o  Replaced outdated voc info file with detailed format info
     inside voc code.
  o  Added new sound format, cvsd (Continuously Variable Slope Delta)
     from Thomas Sailer (sailer@ife.ee.ethz.ch).

sox-11gamma-cb2
---------------

This release of sox is based on the latest gamma version released
plus some patches I've made to support the following new features:

I would like to thank everyone that wrote me about the long
standing bug in Sox that could DELETE your /dev/* file if the
program was aborted for reason such as invalid audio file.  Special
thanks for Bryan Franklin for sending in a patch when I was
to busy to even look for it.


  o  Better play support for 8-bit stereo voc files.  New support
     for outputing both 8-bit and 16-bit stereo voc files.
  o  Built-in support for playing and recording from Linux /dev/dsp.
     This is a re-write and seperate module from the previous
     support included inside the sbdsp module.  Also fixes a buffer
     size bug that showed up when using newer versions of OSS.
     This driver will work with OSS (and older versions called USS, TASD
     and Voxware).
  o  Support for audio playing and recording with SunOS /dev/audio.
  o  Fixes a bug were /dev/audio or /dev/dsp could be deleted
     when playing an invalid format audio file.
  o  Expanded options for play and rec scripts.  You can now specify
     sox effects after the filename and hear them in real time.
     Please be sure that an older version of sox is not in your path
     because these script will possibly find it first and
     incorrectly use it.  
  o  Setting play/record volume still requires an external program.
     If you have one a command line program to do this (such as
     "mixer" for Linux) then you will want to edit the play and rec
     to use this.  The current support for it is only in example
     form of how it can be done.