ref: ea405f02c7390df7012c2d93e8480f5520e4752e
dir: /README.win32/
SoX --- This file contains information specific to the Win32 version of SoX. Please refer to the README file for general information. The binary SOX.EXE can be installed anywhere you desire. The only restriction is that the included CYGWIN1.DLL and CYGGOMP-1.DLL must be located in the same directory as SOX.EXE or somewhere within your PATH. SoX Helper Applications ----------------------- SoX also includes support for SOXI.EXE, PLAY.EXE and REC.EXE and their behaviors are documented in included PDF's. They have the same install restrictions as SOX.EXE. SOXI.EXE, PLAY.EXE, and REC.EXE are not distributed with this package to reduce size requirements. They are, in fact, only copies of the original SOX.EXE binary which changes SOX.EXE's behavior based on the executable's filename. If you wish to make use of these utils then you can create them yourself. copy sox.exe soxi.exe copy sox.exe play.exe copy sox.exe rec.exe If you are concerned with disk space, the play and record functionality can be equated using the "-d" option with SOX.EXE. soxi functionality can be equated using the "--info" option with SOX.EXE. The rough syntax is: play: sox [input files and options] -d [effects] rec: sox -d [output file and options] [effects] soxi: sox --info [input files and options] wget ---- SoX can make use of the wget command line utility to load files over the internet. A binary copy of wget has been included with this package of SoX for your convience. For SoX to make use of wget, it must be located either in your PATH or within the same directory that SoX is ran from. Custom configuration of wget can be made by editing the file wget.ini contained in the same directory as wget.exe. Please consult wget's homepage for access to source code as well as further instructions on configuring. http://www.gnu.org/software/wget Acknowledgements ---------------- SOX.EXE included in this package makes use of the following projects. See the cygbuild script included with the source code package for further information on how it was compiled and packaged. SoX - http://sox.sourceforge.net Ogg Vorbis - http://www.vorbis.com FLAC - http://flac.sourceforge.net libsndfile - http://www.mega-nerd.com/libsndfile WavPack - http://www.wavpack.com PNG - http://www.libpng.org/pub/png Enjoy, The SoX Development Team Appendix - MP3 Support ---------------------- SoX contains support for reading and writing MP3 files but does not ship with the DLL's that perform decoding and encoding of MP3 data because of patent restrictions. For further details, refer to: http://en.wikipedia.org/wiki/MP3#Licensing_and_patent_issues MP3 support can be enabled by placing Lame encoding DLL and/or MAD decoding DLL into the same directory as SOX.EXE. These can be compiled yourself, may turn up on searches of the internet or may be included with other MP3 applications already installed on your system. Try searching for cygmp3lame-0.dll, libmp3lame.dll, cygmad-0.dll, and libmad.dll. Instructions are included here for using Cygwin to create the DLL's. It is assumed you already have cygwin installed on your system with its optional gcc compiler installed. The commands are ran from bash shell cygwin installs. Obtain the latest Lame and MAD source code from approprate locations. Lame MP3 encoder http://lame.sourceforge.net MAD MP3 decoder http://www.underbit.com/products/mad cd lame-398-2 ./configure make cp libmp3lame/.libs/cygmp3lame-0.dll /path/to/sox/libmp3lame.dll MAD library up to 0.15.1b has a bug in configure that will not allow building DLL under cygwin. So an additional command is needed to work around this. cd libmad-0.15.1b ./configure make gcc -shared -Wl,-export-all -Wl,--out-implib=libmad.dll.a -o cygmad-0.dll version.o fixed.o bit.o timer.o stream.o frame.o synth.o decoder.o layer12.o layer3.o huffman.o cp cygmad-0.dll /path/to/sox/libmad.dll Alternatively, the MAD configure script can be patched to allow building and installing libmad under standard cygwin directories. --- ../libmad-0.15.1b.orig/configure.ac 2004-01-23 03:41:32.000000000 -0600 +++ configure.ac 2009-05-25 22:44:50.846400000 -0500 @@ -51,17 +51,17 @@ esac esac -dnl case "$host" in -dnl *-*-cygwin* | *-*-mingw*) -dnl LDFLAGS="$LDFLAGS -no-undefined -mdll" -dnl ;; -dnl esac + case "$host" in + *-*-cygwin* | *-*-mingw*) + LDFLAGS="$LDFLAGS -no-undefined" + ;; + esac fi dnl Support for libtool. dnl AC_DISABLE_SHARED -dnl AC_LIBTOOL_WIN32_DLL +AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) --- end diff cd libmad-0.15.1b patch -p0 < configure.ac.diff touch NEWS AUTHORS ChangeLog autoreconf -i -f ./configure make cp .libs/cymad-0.dll /path/to/sox/libmad.dll It may also be possible to create DLL's using MS VC++ since both libraries include VC++ project files. Lame creates a library call lame_enc.dll which does not correctly export VBR symbols and MAD does not export any symbols. Therefore, cygwin is simpliest and is suggested method.