SoX - Sound eXchange

Welcome to the home page for SoX, the swiss army knife of sound processing programs.  SoX is a command line utility that can convert various formats of computer audio files in to other formats.  It can also apply various effects to these sound files during the conversion.  As an added bonus, SoX can play and record audio files on several unix style platforms.


History - The Beginning of Son of SoX
SoX has been been around since at least 1992 when it was first created by Lance Norskog.  Lance designed the core of SoX which is designed so that others can develop separate modules that know how to convert to and from a given format.  The core of SoX can then convert any file format that has a module in to any other format that has a module.  People from around the net have contributed modules for most of the popular formats in use today.

In 1995, Lance made his last offical release of SoX. Around that time span, I (Chris Bagwell ), decided to start making various bug fixes to SoX as well as add support for playing and recording under Linux and Sun computers.  In 1996 I decided to start making my own releases of SoX containing my patches as well as those circulating around the net.

For those interested, you can still visit SoX's original home page that hasn't changed since 1995 (gotta be a record for a web site to stay up but not change :-).


General Information
  Sox is a general purpose sound converter/player/recorder that supports the following formats:
 
  • RAW sound data in various data styles
  • RAW textual sound data
  • Amiga 8svx files
  • Apple/SGI AIFF files
  • SUN .au files
    • PCM, U-law, A-law, G7xx ADPCM files
    • mutant DEC .au files
    • NeXT .snd files
  • AVR files
  • CD-R data (music CD format)
  • CVS and VMS files (continous variable slope)
  • GSM raw data (with optional library)
  • Macintosh HCOM files
  • Amiga MAUD files
  • MP3 files (with optional external library)
  • Psion Record.app files
  • IRCAM SoundFile files
  • NIST SPHERE files
  • Turtle beach SampleVision files
  • Soundtool (DOS) files
  • Yamaha TX-16W sampler files
  • Sound Blaster .VOC files
  • Ogg Vorbis files
  • Microsoft .WAV files
    • PCM, U-law, A-law, MS ADPCM, IMA ADPCM, GSM (optional)
  • Psion (palmtop) A-law .WVE files
  • Record and Play from OSS or ALSA /dev/dsp and Sun /dev/audio.
  • nul file type that reads and writes from/to nothing.

The following effects can be applied to sound data:
 
  • Channel averaging, duplication, and removal
  • Band-pass filter
  • Band-reject filter
  • Chorus effect
  • DCShift audio
  • Deemphases filter
  • Move soundstage to front of listener.
  • Add an echo or sequence of echos
  • Fade in or out
  • Apply a flanger effect
  • Apply a high-pass filter
  • Apply a low-pass filter
  • Display a list of loops in a file
  • Add masking noise to a signal
  • Pan sound between channels
  • Apply a phaser effect
  • Change the pitch of a sound file without effecting its speed.
  • Change sampling rates using several different algorithms.
  • Apply a reverb effect
  • Reverse sound samples (to search for Satanic messages :)
  • Detect periods of silence and start and stop processing based on it
  • Change the speed of samples being played (without effecting pitch)
  • Display general stats on sound samples
  • Stretch/shorten the duration of a sound file.
  • Swap stereo channels
  • Create sounds with a simple synthesizer
  • Trim audio data from beginning and end of file.
  • Add the world-famous Fender Vibro-Champ effect
  • Adjust volume of samples.

Latest News
Released SoX 12.17.4 on March 23, 2003.  Things fixed/added since version 12.17.3:
 
  • Various bugfixes to Ogg Vorbis handler as well as updating to use version 1.0 of library.  Also, modified the files that are output by Ogg Vorbis handler to use VBR format.
  • Minor cleanups to sox.c to free and close all files instead of relying on C library to do it on exit.
  • Update autoconf files to latest version.
  • Fixed some integer overflow problems in compand effect.
  • libst prototype cleanups and private data structure cleanups.
  • Added new handler for Psion Record.app files.
  • Modified Makefile target soxmix.o slightly to hopefully compile on a wider range of OS's.
  • Added ability in install the internal GSM files as a library on your system.
  • Play/Record scripts now look at an AUDIODEV enviornment variable to see what audio device to play to.  Also scripts to work on Sun Rays.
  • Added support for reading and writing MP3 files if external MP3 libraries are avaliable.
  • Fix multile channel bug in avg effect.
  • Allow AIFF files with an invalid length of 0 to be processed.
  • Fixed configure script's support for -with-* options related to audio devices.
  • SoX no prints error message when a chanell value of -1 is given.
  • Fixed memory trashing bug when input WAV's contained comments.
  • Added support for ALSA 0.9.

Technical Information
Sox is often used to convert an audio file from one sampling rate to another rate (i.e. from DAT to CD rates).  Sox's currently has three different algorithms that each suffer from different problems.  Please read a good technical overview of each's ability and possibly provide improvements if your into DSP.  It is currently based on version 12.16 of SoX and the effects have be improved since then.

If your interested in the format of various audio files then you will be interested in the Audio File Format FAQ which I also maintain..


Release Information
  Sox has been tested under Linux, Solaris, and Windows 9x and I have received success reports for various other platforms such as Irix and OS/2. 

Download the latest source code (last updated March 23, 2003): sox-12.17.4.tar.gz

Other files available (will slowly update to 12.17.4 versions):


Support and Development
SorceForge.net Most of the SoX project's resources are provided by Soureforge .  There is a SoX project web site that can be of use when working with CVS and its mailing list.

There is a low volume mailing list set up that you can subscribe to or read online located at the SoX-users Mailing List web site.

Development of SoX is done using CVS .  It is possible to view the files checked in to CVS using a CVS web interface .

If you have CVS installed on your system then you may obtain a snapshot of the latest source by performing the following commands.  The commands will log you in and check out a copy of the sox module and place it in the subdirectory it was ran from.

cvs -d :pserver:anonymous@cvs.sox.sourceforge.net:/cvsroot/sox login
cvs -z3 -d :pserver:anonymous@cvs.sox.sourceforge.net:/cvsroot/sox co sox

The anonymous CVS account does not need a password.  When prompted for a password by the cvs command, enter nothing and hit Enter.

To merge in future updates you may run the following command (when ran inside the sox directory that was created from your checkout):

cvs update

If you make any changes to SoX that you would like to be included in future releases then you may use the following command to make an easy to read diff.

cvs diff -uw

This diff can then be sent to cbagwell@users.sourceforge.net for inclusing in future release.


Related Sites
  Below are some links related to Sound Processing.

Chris Bagwell <cbagwell@users.sourceforge.net >
Last Updated: March 26, 2003