Change History
--------------

This file contains a list of all changes starting after the release of
sox-11gamma, followed by a list of prior authors and features.


sox-14.3.2	2011-02-27
----------

File formats:

  o Add seek support to mp3 handler for speed improvements.  (Pavel Karneliuk)
  o Fix bug were WavPack header was not updated correctly when closing
    file.  Fixed libsox memory leak when closing WavPack files.
    (David Bryant)
  o Fix RIFF chunk length error when writing 24-bit files. (David Bryant)
  o 24-bit WAV files were leaving channel maps unassigned. Change to use
    common channel mappings based on channel count.  This allows to
    work more seemlessly with other apps such as WavPack and Foobar2000.
    (David Bryant)
  o Fix ffmpeg playback bug caused by alignment requirements on some platforms.
    Closes bug #3017690.  (Reuben Thomas).
  o Fix memory leak in ffmpeg. (Doug Cook)
  o Handle 0 length chunks in WAV files gracefully.  (Beat Jorg)
  o When skipping over chunks, account for word alignment. Helps
    with some Logic Pro generated files.  (D Lambley)
  o Fix incorrect MP3 file length determination with VBR & .5s initial
    silence.  (robs)

Audio device drivers:

  o Fix immediate segfault on OSX while attempting to record. (Adam Fritzler)
  o Fix segfault on OSX playback for some HW that gives smaller then
    requested buffers. (cbagwell)
  o Clean up system resource in coreaudio on close.  Allows running
    back-to-back open()/close()'s without exiting app first. (cbagwell)
  o Add support for 32-bit samples to OSS driver. (Eric Lammerts)
  o Add support for 24 and 32-bit samples to waveaudio (Win32) driver.
    (Doug Cook)
  o Support specifying audio device other than default on OSX (cbagwell)

Effects:

  o F.R. [3051700] spectrogram -r for `raw' spectrogram, no legend.  (robs)
  o Fix -w option on stats effect. (Ronald Sprouse)
  o Fix segfault with some ladspa plugins (Thor Andreassen)
  o Optionally look for png.h in libpng directory to support OpenBSD
    packaging.  Helps enable spectrograph effect. (cbagwell)
  o libpng15 requires application to include zlib.h header file. (cbagwell)
    Add this to spectrograph effect. [3184238]
  o Enable LADSPA effects on all platforms without any external
    dependencies.  Mainly useful for Linux, Windows and OS X which have
    binaries readily available. (cbagwell)
  o Support specifying an absolute end location for trim effect instead
    only an offset from trim begin location. (Ulrich Klauer)
  o Fix regression where MP3 handler required libmad headers to be installed.
    (Samuli Suominen) 
  o Allow dynamic loading of lame to be enabled even if lame header files
    are not installed.  (Doug Cook)

Other new features:

  o Soxi now reports duration of AMR files.  (robs)
  o Document the "multiple" combine option in man pages and in
    usage output (Ulrich Klauer).

Internal improvements:

  o Distribute msvc9 project files that had been in CVS only. (cbagwell)
  o Add msvc10 project files (also compatible with the Windows SDK 7.1).
    (Doug Cook)
  o cmake now compiles waveaudio driver under windows environment. (cbagwell)
    [3072672]

sox-14.3.1	2010-04-11
----------

Newly deprecated features (to be removed in future):

  Deprec-  Feature    [O(ption)]                           Removal
  ated in  [F(ormat)] [E(ffect)]   Replacement             due after
  -------  ----------------------  ----------------------  -------
  14.3.1   F mp3: lame 3.97        lame > 3.97             2011-04-11
  14.3.1   F sndfile: sndfile 1.0.11 sndfile > 1.0.11      14.3.1

Previously deprecated features (to be removed in future):

  Deprec-  Feature    [O(ption)]                           Removal
  ated in  [F(ormat)] [E(ffect)]   Replacement             due after
  -------  ----------------------  ----------------------  -------
  14.2.0   E key alias             pitch                   14.3.1
  14.2.0   E pan                   ~= mixer/remix          14.3.1
  14.3.0   F flac: libFLAC 1.1.2,3 libFLAC > 1.1.3         14.3.1
  14.3.0   PLAY_RATE_ARG           SOX_OPTS                14.3.1
  14.3.0   E norm -b, norm -i      gain -B, gain -en       2010-06-14
  14.3.0   E filter                ~=sinc                  2010-06-14
  14.1.0   E resample alias        rate                    2010-06-14
  14.1.0   E polyphase alias       rate                    2010-06-14
  14.1.0   E rabbit alias          rate                    2010-06-14

LibSoX interface changes:

  o Added new variants of sox_open to allow read/write from/to memory
    buffers (in POSIX 2008 environment); see example5.c.  (robs)

File formats:

  o New Grandstream ring-tone (gsrt) format.  (robs)
  o CVSD encode/decode speed-ups.  (Kimberly Rockwell, P. Chaintreuil)
  o Add ability to select MP3 compression parameters.  (Jim Harkins)
  o Now writes out ID3-tags in MP3 files with lame supports it.  (Doug Cook)
  o Also can write VBR Tag ("XING Header") in MP3 files. (Jim Hark /
    Doug Cook)
  o Increase percision of MP3 encoders to use 24-bits instead of 
    16-bits. (Doug Cook)
  o Fix failed writing 24-bit PAF files (and possibly other libsndfile
    based formats).  (cbagwell)
  o Allow libsndfile to be dlopen()'ed at runtime if --enable-dl-sndfile
    is used. (Doug Cook)
  o Allow amr-nb/amr-wb to be dlopen()'ed at runtime if 
    --enable-dl-amrwb or --enable-dl-amrnb is used. (Doug Cook)
  o amrnb and amrwb formats can optionally use opencore-amr libraries.
    (cbagwell)

Audio device drivers:

  o Add native windows audio driver.  (Pavel Karneliuk, Doug Cook)
  o Add 32-bit support to ALSA driver.  (Pavel Hofman)
  o Make OpenBSD sndio audio driver default over older sunau driver.
   (cbagwell)

Effects:

  o Fix [2254919] silence doesn't trim digital silence correctly.  (robs)
  o Fix [2859842] stats effect crashes on 64-bit arch.  (Ulrich Klauer)

Other new features:

  o Added libSoX example #4: concatenating audio files.  (robs)
  o Show soxi version & usage information when no args given.  (robs)

Other bug fixes:

  o Fix build so that grouped files (e.g. play -r 6k "*.vox" plays all
    at 6k) works.  (robs)
  o Fix build to support auto file type detection with pipes on FreeBSD
    and elsewhere.  (Dan Nelson)
  o Fix simultaneous play & rec not working.  (robs)
  o Fix multi-threading problems on multi-core Windows OS; also, change
    default to single-threaded.
  o Fix mistaken file size with pipe input on Windows.  (Doug Cook)
  o Fix missing documentation for -R (repeatable), and pulseaudio driver.
  o Fix memory leak of format private data.  (Slawomir Testowy)

Internal improvements:

  o Move bit-rot detection support files to sub-directory (could
    previously cause build problems).  (robs)
  o [2859244] Fixes to improve compatibility with MSVC.  (Doug Cook)
  o Added utilities to help any format handler dlopen() external
    libraries at run time instead of link time. (Doug Cook)
  o Compiling with mingw now has feature parity with cygwin. (Doug Cook
    and cbagwell)
   


sox-14.3.0	2009-06-14
----------

Previously deprecated features that have been removed in this release:

  Deprec-  Feature    [O(ption)]
  ated in  [F(ormat)] [E(ffect)]   Replacement
  -------  ----------------------  ----------------------
  14.1.0   E resample *            ~= rate
  14.1.0   E polyphase *           ~= rate
  14.1.0   E rabbit *              ~= rate
  14.2.0   E dither: RPDF,scaled   dither (TPDF only)
  14.1.0   F flac: libFLAC 1.1.1   libFLAC > 1.1.1

  * But interface retained as an alias for `rate'.

LibSoX interface changes:

  o sox_format_init() has been supeseded by sox_init().
  o Removed obsolete error codes (SOX_E...); new sox_strerror()
    function to convert error codes to text.
  o Use of sox_effect_options() is now mandatory when initialising an
    effect (see example0.c for an example of this).
  o sox_flow_effects() has a new (3rd) parameter: a void pointer
    `client_data' that is passed as a new (2nd) parameter to the flow
    callback function.  client_data may be NULL.

File formats:

  o Slight improvement to A-law/u-law conversion accuracy: round LSB
    instead of truncating.  (robs)
  o Fix length in wav header with multi-channel output to pipe.  (robs)
  o Fix [2028181] w64 float format incompatibility.  (Tim Munro)
  o Fix reading AIFF files with pad bytes in COMT chunks. (Joe Holt)
  o Fix AIFF file length bug to stop reading trash data on files that
    have extra chunks at end of file. (Joe Holt)
  o Fix file length being 4 bytes short for AIFF sowt CD tracks. (Joe Holt)
  o Fix [2404566] segfault when converting from MS ADPCM wav file.  (robs)
  o Fix slight FLAC seek inaccuracy e.g. when using `trim' effect.  (robs)
  o Fix mp3 decode sometimes being up to a block short.  (robs)
  o Fix not outputing GSM-in-wav when input is GSM-in-wav.  (robs)

Audio device drivers:

  o New native OpenBSD audio handler for play/recording.  (Alexandre Ratchov)
  o 24-bit support for ALSA handler.  (robs)
  o Warn if ALSA under/overrun.  (robs)

Effects:

  o New `stats' effect; multichannel audio statistics.  (robs)
  o New `sinc' FFT filter effect; replacement for `filter'.  (robs)
  o New `fir' filter effect using external coefficients/file.  (robs)
  o New `biquad' filter effect using external coefficients.  (robs)
  o New `overdrive' effect.  (robs)
  o New `vad' Voice Activity Detector effect.  (robs)
  o `synth' enhancements: can now set common parameters for multiple
    channels, new `pluck' and `tpdf' types, `scientific' note
    notation, [2778142] just intonation.  (robs)
  o New multi-channel support and revised sizing options for `spectrogram'.
    N.B. revised options are not directly backwards compatible -- see the
    man page for details of the new syntax.  (robs)
  o Richer gain/normalise options.  (robs)
  o [2704442] Slight change to `riaa' gain: now norm'd to 0dB @ 1k
    (previously 19.9dB @ DC).  (Glenn Davis)
  o Fix [2487589] `dither' clipping detection & handling.  (robs)
  o Fix `repeat' sometimes stopping repeating too soon.  (robs)
  o Fix `repeat' sometimes repeating wrong audio segments.  (robs)
  o Fix [2332343] 'silence' segfault with certain lengths. (cbagwell)
  o Fix `silence' empty output file with A-law input.  (robs)
  o Fix temporary file problems in Windows (cygwin) with normalise and
    other effects.  (robs)
  o Fix [2779041] spectrogram PNG file is invalid on Windows.  (robs)
  o Fix [2787587] `trim x 0' should produce zero length audio.  (robs)
  o Parallel effects channel processing on some hyper-threading/mult-core
    architectures.  New `--single-threaded' option to disable this.  (robs)

Other new features:

  o Added ability to create shared DLL's on cygwin (cbagwell)
  o New `--guard' & `--norm' options; use temporary files to guard against
    clipping for many, but not currently all, effects.  (robs)
  o New `--ignore-length' option to ignore length in input file header (for
    simple encodings & for mp3); instead, read to end of file.  (robs)
  o New `--temp DIRECTORY' option.  (robs)
  o New `--play-rate-arg ARG' option.  (robs)
  o New SOX_OPTS environment variable; can be used to provide default
    values for above and other options.  (robs)
  o Grouped files, e.g. play -r 6k "*.vox" plays all at 6k.  (robs)
  o Automatically `dither'; new `--no-dither' option to disable this.  (robs)
  o Can now use `v' & `V' keys to adjust volume whilst playing audio (on some
    systems).  (robs)
  o New bitrate, time in seconds, & total options for soxi; bitrate
    and file-size display for sox.  (robs)
  o `Magic' (libmagic) file type detection now selected using `--magic'
    option (where supported).
  o [2003121] In many cases, no longer need to specify -t when inputing
    audio from a `pipe'.  (robs)
  o Support more Shoutcast URL variants.  (robs)
  o Added libSoX example #3: playing audio.  (robs)

Other bug fixes:

  o Fix [2262177] SoX build could fail with parse /etc/issue error.  (robs)
  o Fix "no handler for detected file type `application/octet-stream;
    charset=binary'" with raw files when using libmagic.  (robs)

Internal improvements:

  o Rationalise use of and make repeatable across different platforms
    pseudo random number generators.  (robs)
  o Rationalise effects' options interface (getopt compatible).  (robs)
  o Added stub headers to allow test compilation of all sources on
    linux.  (robs)


sox-14.2.0	2008-11-09
----------

Previously deprecated features that have been removed in this release:

  Deprec-  Feature    [O(ption)]
  ated in  [F(ormat)] [E(ffect)]   Replacement
  -------  ----------------------  ----------------------
  14.0.0   E pitch                 new pitch = old key

File formats:

  o New `.cvu' unfiltered CVSD; supports any bit-rate.  (robs)
  o New `.sox' native format intended for intermediate files.  (robs)
  o Fix WAV write on 64-bit arch.  (robs)
  o Fix writing PRC ADPCM files.  (Silas Brown)
  o Fix problems reading short mp3 files.  (robs)

Effects:

  o N.B. Reduced default bandwidth setting for `rate' effect from 99%
    to 95%; use `rate -s' to be compatible with SoX v14.1.0.  (robs)
  o New options for `rate' effect to configure phase response,
    band-width and aliasing.  (robs)
  o New options for 'dither' effect: RPDF, TPDF, noise-shaping.  (robs)
  o New `riaa' effect: RIAA vinyl playback EQ.  (robs)
  o New `loudness' effect: gain control with ISO 226 loudness
    compensation.  (robs)
  o New `bend' effect; pitch bending.  (robs)
  o New -b option for the norm effect; can be used to fix stereo
    imbalance.  (robs)
  o Wider tempo range for `tempo' effect.  (robs)
  o New --effects-file option to read effects and arguments from
    a file instead of command line. (cbagwell)
  o `filter' effect now supports --plot.  (robs)
  o Improved documentation for the `stat' effect.  (robs)
  o Fix broken audio pass-through with noiseprof effect.  (robs)
  o Fix graph legend display when using --plot octave.  (robs)
  o Fix rare crash with `rate' effect.  (robs)
  o Fix [2190767] `norm' under-amplifying in some cases.  (George Yohng)
  o Fix [2007062] Earwax effect can overflow; should clip. (robs)
  o Fix [2223251] mcompand should use linkwitz-riley.  (robs)
  o Fix `phaser' clicks and overflows.  (robs)
  o Trim will now skip past 2G point correctly. (cbagwell)
  o Improved handling of speed changes in the effects chain.  (robs)

Other new features:

  o New psuedo-effects "newfile" and ":" to allow running
    multiple effect chains on a single file.  newfile will
    create a new output file when an effect chain terminates.
    Of most use with trim and silence effects. (cbagwell)
  o Can now use multiple pipes as inputs to the combiner;
    see `Special Filenames' in sox(1).  (robs)
  o Display SoX build/run environment information with -V -V.  (robs)
  o Display (with -V) the detected file-type if it differs from the 
    file extension.  (robs)
  o New -t option for soxi; to display the detected file type.  (robs)
  o New -b/--bits, -e/--encoding alternative options for specifying
    audio encoding parameters.  (robs)
  o [FR 1958680] Support more than 32 input files.  (robs)
  o New native Mac OSX audio handler for playing/recording. (cbagwell)

Other bug fixes:

  o Bump library version because it was not binary compatible with
    SoX 14.0.1 (Pascal Giard)
  o Turn off versioning of special libsox_fmt* libraries since thats
    not really needed.  (kwizart)
  o Fixed crash when running play with no arguments. (Dan Nelson)
  o Allow libpng to be found with -static option. (cbagwell)
  o Allow libsamplerate to be found if pkg-config is installed but
    no samplerate.pc exists. (cbagwell)
  o [2038855] external lpc10 lib patch.  (Oden Eriksson, Mandriva)
  o Fix memory leaks in effects chain when restarting effects. (cbagwell)
  o Fixed pkg-config CFLAGS. (evilynux)
  o Fix sndfile inclusion in build in some circumstances.  (robs)
  o Fix [2026912] Fails on URL-like filenames.  (robs)
  o Always add _LARGEFILE_SUPPORT when off_t is 64bits to work around
    buggy platforms.  Fixes not able to read WAV files. (cbagwell)

Internal improvements:

  o Fixed all compiler warnings (with gcc 4.3.1, 64-bit arch.).  (robs)
  o Updates to internal effects chain API.  (cbagwell)
  o Retire old FFT routines (speeds up `noisered' effect).  (robs)
  o Allow effects to use getopt.  (robs)
  o Use libmagic for mp3.  (robs)
  o Change sox_seek() offset to 64-bit to work with > 2G files (cbagwell)
  o Merged libsfx back into libsox to align with sox.h API. (cbagwell)


sox-14.1.0	2008-7-29
----------

Previously deprecated features that have been removed in this release:

  Deprec-  Feature    [O(ption)]
  ated in  [F(ormat)] [E(ffect)]   Replacement
  -------  ----------------------  ----------------------
  13.0.0   O -e                    -n
  13.0.0   O -b/-w/-l/-d           -1/-2/-4/-8
  13.0.0   E avg, pick             mixer
  13.0.0   E highp, lowp           highpass -1, lowpass -1
  13.0.0   E mask                  dither
  13.0.0   E vibro                 ~= tremolo
  13.0.0   F auto                  Becomes internal only

File formats:

  o New option --help-format shows info about supported format(s).  (robs)
  o New WavPack format (includes lossless audio compression, but not
    guaranteed lossless file compression).  (robs)
  o New htk format.  (robs)
  o Add .f4 & .f8 raw file extensions.  (robs)
  o Writing aiff, aifc & dvms now repeatable with -R.  (robs)
  o Writing hcom no longer fails with unsupported rate--chooses
    best match.  (robs)
  o Au/snd: added support for 32-bit integer and 64-bit float PCM
    encoding/decoding; display name of unsupported encoding.  (robs)
  o Can now write .amb (.wav variant) files [FR 1902232].  (robs)
  o Can now read 2,3(2.6),4 bit ADPCM .voc files [FR 1714991].  (robs)
  o Can now read some MP3 ID3 tags.  (robs)
  o Can now write Sounder files.  (robs)
  o Can now write DEC-variant au files (with -x).  (robs)
  o Comments support for SoundTool files.  (robs)
  o Fix [1864216] comments mangled when writing ogg-vorbis.  (robs)
  o Fix short noise at end of alsa playback.  (Morita Sho/Tim Munro/robs)
  o Fix wve seek accuracy.  (robs)
  o Fix lpc10 not working.  (robs)
  o Fix [1187257] wav MS-ADPCM block-align size incorrect.  (robs)
  o For wav & au, fix [548256] size in header wrong when piping out.  (robs)
  o Fix IRCAM SF header processing; support all (modern) variants.  (robs)
  o Fix 24-bit read/write on big-endian systems.  (robs)
  o Fix crash trying to open non-existent play-list.  (robs)
  o Fix FLAC read from stdin with libFLAC >= 8.  (Patrick Taylor Ramsey/robs)
  o Fix [1997637] Trim effect loses samples (with wav).  (robs)

Effects:

  o New `splice' effect; splice together audio sections.  (robs)
  o New `remix' effect; mixes any number of channels.  (robs)
  o New `norm' (normalise) effect.  (robs)
  o New `delay' effect; delay one or more channels.  (robs)
  o New `contrast' enhancement effect [FR 708923].  (robs)
  o Improved `rate' resampling effect; resample, polyphase, & rabbit
    now deprecated.  (robs)
  o New `spectrogram' effect; creates a PNG (if built with PNG lib).  (robs)
  o `synth' can now sweep linearly and squarely (as well as
    exponentially).  (robs)
  o Can now `fade' out to EOF without giving file-length (if it can
    be determined from the input file header).  (robs)
  o Fix synth max. level setting for some output encodings.  (robs)
  o Fix crash on 64-bit arch. with tempo & key effects.  (Sami Liedes)
  o `gain' alias for the vol effect.  (robs)

Other new features:

  o Now possible to control play-back resampling quality (and hence
    cpu-load) via the PLAY_RATE_ARG environment variable.  (robs)
  o Command line support for multiple file comments.  (robs)
  o New --combine=mix-power option to mix combine using 1/sqrt(n) scaling
    instead of 1/n [FR 2012856].  (robs)
  o New --input-buffer option to specify (only) input buffer size.  (robs)
  o New `soxi' utility to extract/display file header fields.  (robs)
  o Pkg-config support. (Pascal Giard)
  o Simple VU meter.  (robs)
  o Heuristic to detect when playing an album and set
    the default replay-gain mode to `album'.  (robs)
  o Better auto-choice of output file format parameters when
    type is different to that of input file.  (robs)
  o SoX now treats (and displays) encoding size & signal precision
    separately.  (robs)
  o Default audio devices (sox), and allow environment variables to
    be used to override the default audio device driver (rec/play)
    and default audio device (all).  (robs)
  o Simpler file info display for `play'.  (robs)
  o For some file-types, warn if file size seems too short.  (robs)
  o Added auto-detect for caf, sndr, txw & sf files.  (robs)
  o Added example0: simpler example of how to develop applications that
    use the libSoX effects chain.  (robs)
  o Added example2: simple example of how to develop applications that
    use libSoX to read an audio file.  (robs)
  o Moved contents of soxexam man page into soxeffect man page.  (robs)

Other bug fixes:

  o Fix [1890983] rec shortcut should apply bit depth (8-bit,
    16-bit, etc.) to input handler.  (robs)
  o Fix ungraceful handling of out of disc space and other write
    errors (bug was introduced in 14.0.0).  (robs)
  o Fix endian selection (-B, -L, -x) in some circumstances.  (robs)
  o Fix auto-detect of hcom files.  (robs)

Internal improvements:

  o Use FORTIFY_SOURCE with gcc.  (robs)
  o Fixed all compiler warnings (with gcc 4.2.3, 32-bit arch).  (robs)
  o Reimplement (separately) SoundTool & Sounder format handlers.  (robs)
  o Allow formats & effects to have any size of private data.  (robs)


sox-14.0.1	2008-01-29
----------

  File formats:

  o Added support for non-standard, non-WAVE_FORMAT_EXTENSIBLE
    (esp. 24-bit) PCM wav (see wavpcm in soxformat.7 for details).  (robs)

  Effects:

  o Reimplemented reverb to be similar to freeverb.  (robs)

  Bug fixes:

  o Fix Sndtool read error causing noise at start.  (Reynir Stefánsson)
  o Fix mixer with >4 numbers, and mixer -3 behaving as mixer -4.  (robs)
  o Fix [1748909] sox does not report remaining playtime of mp3s.  (robs)
  o Fix failure to read AIFF files with empty MARK chunk.  (robs)
  o Fix spurious 'Premature EOF' message in some circumstances.  (robs)
  o Switched to 16-bit for libao driver since not all its plugins
    support it (such as oss, nas, and pulse audio) (Morita Sho)
  o Stop crash when "rec" is run with no arguments (Morita Sho).
  o Fix -V (without argument) on non-gnu systems.  (robs)
  o Fix reported (with -V) output audio length in some cases.  (robs)
  o Fix actual FLAC output file audio length in some cases.  (robs)
  o Fix poor 24-bit FLAC compression & support newer versions of
    libFLAC (1.2.x).  (robs)
  o Fix loss of 1 decoded FLAC block when using "trim 0 ...".  (robs)
  o Fix trim when first effect with IMA-ADPCM input wav file.  (robs)

  Internal improvements:

  o Let "make distcheck" run some automated test scripts.
  o Distribute missing cmake files.
  o Fix ogg vorbis compile error on some platforms.
  o Remove unused libltdl that could cause header mismatch with
    installed libltdl.
  o Fix AMR detection with --disable-shared.  (robs)
  o Updated configure to support linking to static libraries
    on mingw for flac, ogg, and libsamplerate libraries.
  o Added example1: simple example of how to develop applications that
    use the libSoX effects chain.  (robs)


sox-14.0.0	2007-09-11
----------

  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
    slightly 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 Added oops effect (mixer special case).  (robs)
  o All effects that could only work on mono or stereo audio, now
    work with any number of channels.  (robs)
  o Added WSOLA-based key and tempo effects.  (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 uncompressed NIST/Sphere read regression in v13 [Bug #1736016].
  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 Fix crash when encoding Vorbis or FLAC: with no comment.  (robs)
  o Fix 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)
  o Fix OSS driver on big endian machines that was introduced in
    last release.

  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	2007-02-11
----------

  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	2006-09-03
-----------

  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 Fix deemph effect would lose stereo separation. (1479249)  robs
  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	2006-05-07
------------

  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	2005-12-05
-----------

  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	2005-08-22
-----------

  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	2004-12-20
-----------

  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	2004-10-13
-----------

  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	2004-08-15
-----------

  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)


