


SOX(1)              UNIX Programmer's Manual               SOX(1)



NAME
     sox - SOund eXchange - universal sound sample translator

SYNOPSIS
     sox _i_n_f_i_l_e _o_u_t_f_i_l_e
     sox _i_n_f_i_l_e _o_u_t_f_i_l_e [ _e_f_f_e_c_t [ _e_f_f_e_c_t _o_p_t_i_o_n_s ... ] ]
     sox _i_n_f_i_l_e -e _e_f_f_e_c_t [ _e_f_f_e_c_t _o_p_t_i_o_n_s ... ]
     sox [ _g_e_n_e_r_a_l _o_p_t_i_o_n_s  ] [ _f_o_r_m_a_t _o_p_t_i_o_n_s  ] _i_f_i_l_e [ _f_o_r_m_a_t
     _o_p_t_i_o_n_s  ] _o_f_i_l_e [ _e_f_f_e_c_t [ _e_f_f_e_c_t _o_p_t_i_o_n_s ... ] ]
     _G_e_n_e_r_a_l _o_p_t_i_o_n_s: [ -V ] [ -v _v_o_l_u_m_e ]
     _F_o_r_m_a_t _o_p_t_i_o_n_s: [ -t _f_i_l_e_t_y_p_e ] [ -r _r_a_t_e ] [ -s/-u/-U/-A ]
     [ -b/-w/-l/-f/-d/-D ] [ -c _c_h_a_n_n_e_l_s ] [ -x ]
     _E_f_f_e_c_t_s:
          copy
          rate
          avg
          stat
          echo _d_e_l_a_y _v_o_l_u_m_e [ _d_e_l_a_y _v_o_l_u_m_e ... ]
          vibro _s_p_e_e_d [ _d_e_p_t_h ]
          lowp _c_e_n_t_e_r
          band [ -_n ] _c_e_n_t_e_r [ _w_i_d_t_h ]

DESCRIPTION
     _S_o_x translates sound files from one format to another, pos-
     sibly doing a sound effect.

OPTIONS
     The option syntax is a little grotty, but in essence:
          sox file.au file.voc
     translates a sound sample in SUN Sparc .AU format into a
     SoundBlaster .VOC file, while
          sox -v 0.5 file.au -rate 12000 file.voc rate
     does the same format translation but also lowers the ampli-
     tude by 1/2 and changes the sampling rate from 8000 hertz to
     12000 hertz via the rate _s_o_u_n_d _e_f_f_e_c_t loop.

     File type options:

     -t _f_i_l_e_t_y_p_e
               gives the type of the sound sample file.

     -r _r_a_t_e   Give sample rate in Hertz of file.

     -s/-u/-U/-A
               The sample data is signed linear (2's complement),
               unsigned linear, U-law (logarithmic), or A-law
               (logarithmic).  U-law and A-law are the U.S. and
               international standards for logarithmic telephone
               sound compression.

     -b/-w/-l/-f/-d/-D
               The sample data is in bytes, 16-bit words, 32-bit



Printed 4/16/92                                                 1






SOX(1)              UNIX Programmer's Manual               SOX(1)



               longwords, 32-bit floats, 64-bit double floats, or
               80-bit IEEE floats.  Floats and double floats are
               in native machine format.

     -x        The sample data is in XINU format; that is, it
               comes from a machine with the opposite word order
               than yours and must be swapped according to the
               word-size given above.  Only 16-bit and 32-bit
               integer data may be swapped.  Machine-format
               floating-point data is not portable.  IEEE floats
               are a fixed, portable format. ???

     -c _c_h_a_n_n_e_l_s
               The number of sound channels in the data file.
               This may be 1, 2, or 4; for mono, stereo, or quad
               sound data.

     General options:

     -e        after the input file allows you to avoid giving an
               output file and just name an effect.  This is only
               useful with the stat effect.

     -v _v_o_l_u_m_e Change amplitude (floating point); less than 1.0
               decreases, greater than 1.0 increases.  Note: we
               perceive volume logarithmically, not linearly.
               Note: see the stat effect.

     -V        Print a description of processing phases.  Useful
               for figuring out exactly how _s_o_x is mangling your
               sound samples.

     The input and output files may be standard input and output.
     This is specified by '-'.  The -t _t_y_p_e option must be given
     in this case, else _s_o_x will not know the format of the given
     file.  The -t, -r, -s/-u/-U/-A, -b/-w/-l/-f/-d/-D and -x
     options refer to the input data when given before the input
     file name.  After, they refer to the output data.

     If you don't give an output file name, _s_o_x will just read
     the input file.  This is useful for validating structured
     file formats; the stat effect may also be used via the -e
     option.

FILE TYPES
     _S_o_x needs to know the formats of the input and output files.
     File formats which have headers are checked, if that header
     doesn't seem right, the program exits with an appropriate
     message.  Currently, the raw (no header), IRCAM Sound Files,
     Sound Blaster, SPARC .AU (w/header), Mac HCOM, PC/DOS .SOU,
     Sndtool, and Sounder, NeXT .SND, and Amiga/SGI AIFF and 8SVX
     formats are supported.



Printed 4/16/92                                                 2






SOX(1)              UNIX Programmer's Manual               SOX(1)



     .aiff     AIFF files used on Amiga and SGI.  Note: the AIFF
               format supports only one SSND chunk.  It does not
               support multiple sound chunks, or the 8SVX musical
               instrument description format.  AIFF files are
               multimedia archives and and can have multiple
               audio and picture chunks.  You may need a separate
               archiver to work with them.

     .au       SUN Microsystems AU files.  There are apparently
               many types of .au files; DEC has invented its own
               with a different magic number and word order. The
               .au handler can read these files but will not
               write them.  Some .au files have valid AU headers
               and some do not.  The latter are probably original
               SUN u-law 8000 hz samples.  These can be dealt
               with using the .ul format (see below).

     .hcom     Macintosh HCOM files.  These are (apparently) Mac
               FSSD files with some variant of Huffman compres-
               sion.  The Macintosh has wacky file formats and
               this format handler apparently doesn't handle all
               the ones it should.  Mac users will need your
               usual arsenal of file converters to deal with an
               HCOM file under Unix or DOS.

     .raw      Raw files (no header).
               The sample rate, size (byte, word, etc), and style
               (signed, unsigned, etc.) of the sample file must
               be given.  The number of channels defaults to 1.

     .ub, .sb, .uw, .sw, .ul
               These are several suffices which serve as a short-
               hand for raw files with a given size and style.
               Thus, ub, sb, uw, sw, and ul correspond to
               "unsigned byte", "signed byte", "unsigned word",
               "signed word", and "ulaw" (byte).  The sample rate
               defaults to 8000 hz if not explicitly set, and the
               number of channels (as always) defaults to 1.
               There are lots of Sparc samples floating around in
               u-law format with no header and fixed at a sample
               rate of 8000 hz.  (Certain sound management
               software cheerfully ignores the headers.) Simi-
               larly, most Mac sound files are in unsigned byte
               format with a sample rate of 11025 or 22050 hz.

     .sf       IRCAM Sound Files.
               SoundFiles are used by academic music software
               such as the CSound package, and the MixView sound
               sample editor.

     .voc      Sound Blaster VOC files.
               VOC files are multi-part and contain silence



Printed 4/16/92                                                 3






SOX(1)              UNIX Programmer's Manual               SOX(1)



               parts, looping, and different sample rates for
               different chunks.  On input, the silence parts are
               filled out, loops are rejected, and sample data
               with a new sample rate is rejected.  Silence with
               a different sample rate is generated appropri-
               ately.  On output, silence is not detected, nor
               are impossible sample rates.

EFFECTS
     Only one effect from the palette may be applied to a sound
     sample.  To do multiple effects you'll need to run _s_o_x in a
     pipeline.

     copy                          Copy the input file to the
                                   output file.  This is the
                                   default effect if both files
                                   have the same sampling rate,
                                   or the rates are "close".

     rate                          Translate input sampling rate
                                   to output sampling rate via
                                   linear interpolation to the
                                   Least Common Multiple of the
                                   two sampling rates.  This is
                                   the default effect if the two
                                   files have different sampling
                                   rates.  This is fast but
                                   noisy.

     avg                           Mix 4- or 2-channel sound file
                                   into 2- or 1-channel file by
                                   averaging the samples for dif-
                                   ferent speakers.

     stat                          Do a statistical check on the
                                   input file, and print results
                                   on the standard error file.
                                   stat may copy the file
                                   untouched from input to out-
                                   put, if you select an output
                                   file. The "Volume Adjustment:"
                                   field in the statistics gives
                                   you the argument to the -v
                                   _n_u_m_b_e_r which will make the
                                   sample as loud as possible.

     echo [ _d_e_l_a_y _v_o_l_u_m_e ...  ]    Add echoing to a sound sample.
                                   Each delay/volume pair gives
                                   the delay in seconds and the
                                   volume (relative to 1.0) of
                                   that echo.  If the volumes add
                                   up to more than 1.0, the sound



Printed 4/16/92                                                 4






SOX(1)              UNIX Programmer's Manual               SOX(1)



                                   will melt down instead of fad-
                                   ing away.

     vibro _s_p_e_e_d  [ _d_e_p_t_h ]        Add the world-famous Fender
                                   Vibro-Champ sound effect to a
                                   sound sample by using a sine
                                   wave as the volume knob.
                                   Speed gives the Hertz value of
                                   the wave.  This must be under
                                   30.  Depth gives the amount
                                   the volume is cut into by the
                                   sine wave, ranging 0.0 to 1.0
                                   and defaulting to 0.5.

     lowp _c_e_n_t_e_r                   Apply a low-pass filter.  The
                                   frequency response drops loga-
                                   rithmically with _c_e_n_t_e_r fre-
                                   quency in the middle of the
                                   drop.  The slope of the filter
                                   is quite gentle.

     band [ -_n ] _c_e_n_t_e_r [ _w_i_d_t_h ]  Apply a band-pass filter.  The
                                   frequency response drops loga-
                                   rithmically around the _c_e_n_t_e_r
                                   frequency.  The _w_i_d_t_h gives
                                   the slope of the drop.  The
                                   frequencies at _c_e_n_t_e_r + _w_i_d_t_h
                                   and _c_e_n_t_e_r - _w_i_d_t_h will be
                                   half of their original ampli-
                                   tudes.  Band defaults to a
                                   mode oriented to pitched sig-
                                   nals, i.e. voice, singing, or
                                   instrumental music.  The -_n
                                   (for noise) option uses the
                                   alternate mode for un-pitched
                                   signals.  Band introduces
                                   noise in the shape of the
                                   filter, i.e. peaking at the
                                   _c_e_n_t_e_r frequency and settling
                                   around it.

     _S_o_x enforces certain effects.  If the two files have dif-
     ferent sampling rates, the requested effect must be one of
     copy, or rate, If the two files have different numbers of
     channels, the avg effect must be requested.

BUGS
     The syntax is horrific.  It's very tempting to include a
     default system that allows an effect name as the program
     name and just pipes a sound sample from standard input to
     standard output, but the problem of inputting the sample
     rates makes this unworkable.



Printed 4/16/92                                                 5






SOX(1)              UNIX Programmer's Manual               SOX(1)



FILES
SEE ALSO
NOTICES
     The echoplex effect is:
         Copyright (C) 1989 by Jef Poskanzer.
         Permission to use, copy, modify, and distribute this
     software and its
         documentation for any purpose and without fee is hereby
     granted, provided
         that the above copyright notice appear in all copies and
     that both that
         copyright notice and this permission notice appear in
     supporting
         documentation.  This software is provided "as is"
     without express or
         implied warranty.







































Printed 4/16/92                                                 6



