SoX(1)                         Sound eXchange_ng                        SoX(1)



NAME
       SoX - Sound eXchange_ng, another Swiss Army knife of audio manipulation

SYNOPSIS
       sox_ng [global-options] [format-options] infile1
            [[format-options] infile2] ... [format-options] outfile
            [effect [effect-options]] ...

       play_ng [global-options] [format-options] infile1
            [[format-options] infile2] ... [format-options]
            [effect [effect-options]] ...

       rec_ng [global-options] [format-options] outfile
            [effect [effect-options]] ...

DESCRIPTION
   Introduction
       SoX  reads  and  writes audio files in most popular formats and can op-
       tionally apply effects to them. It can combine multiple input  sources,
       synthesize  audio  and, on many systems, act as a general purpose audio
       player or as a multitrack audio recorder.  It can also split the  input
       into multiple output files.

       All  SoX  functionality is available using just the sox_ng command.  To
       simplify playing and recording audio, if SoX is invoked as play_ng, the
       output file is automatically set to be the default sound device and, if
       invoked as rec_ng, the default sound device is used as an input source.
       Additionally,  the  soxi_ng  command provides a convenient way to query
       audio file header information.

       The heart of SoX is a library called libsox_ng.   Those  interested  in
       extending  SoX  or  using it in other programs should refer to the lib-
       sox_ng manual page.

       SoX is a command-line audio processing tool particularly suited to mak-
       ing quick, simple edits and to batch processing.  If you need an inter-
       active, graphical audio editor, use audacity(1).

                                 *        *        *

       The overall SoX processing chain can be summarized as follows:

                    Input(s) -> Combiner -> Effects -> Output(s)

       On the SoX command line, the positions of the Output(s) and the Effects
       are  swapped w.r.t. the logical flow just shown and, while options per-
       taining to files are placed before their respective file names, the op-
       posite  is  true for effects.  To show how this works in practice, here
       is a selection of examples of how SoX might be used.  The simple

          sox_ng recital.au recital.wav

       translates an audio file in Sun AU format  to  a  Microsoft  WAV  file,
       while

          sox_ng recital.au -b 16 recital.wav channels 1 rate 16k fade 3 norm

       performs  the  same  format  translation  but also applies four effects
       (down-mix to one channel, sample rate change, fade  in  and  normalize)
       and stores the result at a bit-depth of 16.

          sox_ng -r 16k -e signed -b 8 -c 1 voice-memo.raw voice-memo.wav

       converts  `raw'  (a.k.a.  `headerless') audio to a self-describing file
       format,

          sox_ng slow.aiff fixed.aiff speed 1.027

       adjusts audio speed,

          sox_ng short.wav long.wav longer.wav

       concatenates two audio files and

          sox_ng -m music.mp3 voice.wav mixed.flac

       mixes together two audio files.

          play_ng "The Moonbeams/Greatest/*.ogg" bass +3

       plays a collection of audio files applying a bass boosting effect,

          play_ng -n -c1 synth sin %-12 sin %-9 sin %-5 sin %-2 fade h 0.1 1 0.1

       plays a synthesized `A minor seventh' chord with a pipe organ sound,

          rec_ng -c 2 radio.aiff trim 0 30:00

       records half an hour of stereo audio and

          play_ng -q take1.aiff & rec -M take1.aiff take1-dub.aiff

       (with a POSIX shell and where supported  by  hardware)  records  a  new
       track in a multitrack recording.  Finally,

          rec_ng -r 44100 -b 16 -e signed-integer -p \
            silence 1 0.50 0.1% 1 10:00 0.1% | \
            sox_ng -p song.ogg silence 1 0.50 0.1% 1 2.0 0.1% : \
            newfile : restart

       records  a stream of audio such as an LP or cassette and splits it into
       multiple audio files at points where there are two seconds of  silence.
       Also, it does not start recording until it detects some sound and stops
       after it sees ten minutes of silence.

       The above is just an overview of SoX's capabilities. Detailed  explana-
       tions of how to use all SoX parameters, file formats and effects can be
       found below in this manual, in soxformat_ng(7) and in soxi_ng(1).

   File Format Types
       SoX can work with `self-describing' and `raw' audio  files.   `Self-de-
       scribing'  formats  (e.g. WAV, FLAC, MP3) have a header that completely
       describes the signal and encoding attributes of  the  audio  data  that
       follows. `raw' or `headerless' formats do not contain this information,
       so the audio characteristics of these must be described on the SoX com-
       mand line, except for a few which can be inferred from the filename ex-
       tension such as .gsm, always -c1 -r8000 -e gsm, and named  raw  formats
       like .f32, .s16 and .ul which give the encoding but not the sample rate
       or number of channels.

       The following four characteristics are used to describe the  format  of
       audio data:

       sample rate
              The  sample rate in samples per second (`Hertz' or `Hz').  Digi-
              tal telephony traditionally uses a sample rate of 8000Hz  (8kHz)
              though 16 and even 32kHz are becoming more common. Audio Compact
              Discs use 44100Hz (44.1kHz), Digital Audio Tape  and  many  com-
              puter systems use 48kHz and professional audio systems often use
              96kHz.

       sample size
              The number of bits used to store each sample.  Today, 16-bit  is
              commonly  used,  8-bit was popular in the early days of computer
              audio and 24-bit is used in the professional audio arena.

       data encoding
              The way in which each  audio  sample  is  represented  (or  `en-
              coded').   Some  encodings have variants with different byte-or-
              derings or bit-orderings, some compress the audio data  so  that
              it  takes  up less disk space or transmission bandwidth than un-
              compressed formats.  Commonly-used encoding types include float-
              ing point, <mu>-law, ADPCM, signed-integer PCM, MP3 and FLAC.

       channels
              The  number  of  audio  channels  contained  in  the  file.  One
              (`mono') and two (`stereo') are widely used and `surround sound'
              audio typically contains six or more channels.

       The  term  `bit rate' is a measure of the amount of storage occupied by
       an encoded audio signal per unit of time.  It can depend on all of  the
       above  and  is  typically  denoted  as  a number of kilobits per second
       (kbps).  An A-law telephony signal has a bit rate of 64  kbps,  MP3-en-
       coded  stereo  music typically has a bit rate of 128-196 kbps and FLAC-
       encoded stereo music typically has a bit rate of 550-760 kbps.

       Most self-describing formats also allow textual `comments' to be embed-
       ded  in  the  file  that can be used to describe the audio in some way,
       e.g. for music, the title, the author, etc.

       One important use of audio file comments is to convey `Replay Gain' in-
       formation.   SoX  can  apply Replay Gain automatically for formats that
       contain comments but does not generate it.  By default, SoX copies com-
       ments  from the first input file to output files that support comments,
       so output files may contain Replay Gain information which is incorrect.
       This  can  be fixed, when converting input files with --replay-gain en-
       abled, by removing all comments using --comment "" or removing just the
       REPLAYGAIN comment with

       soxi_ng -a in.au | grep -v REPLAYGAIN > comments
       sox_ng --replay-gain=track in.au --comment-file comments out.au



   Determining and setting the File Format
       SoX  uses several mechanisms to determine or set the format of an audio
       file.  Depending on the circumstances, individual  characteristics  may
       be determined or set using different mechanisms.

       To  determine the format of an input file, SoX uses, in order of prece-
       dence and as given or available:

       1.  Command-line format options,

       2.  The contents of the file header,

       3.  The filename extension.

       To set the output file format, SoX uses, in order of precedence and  as
       given or available:

       1.  Command-line format options,

       2.  The filename extension,

       3.  The  input  file format characteristics or the closest that is sup-
           ported by the output file type.

       For all files, SoX exits with an error if the file type cannot  be  de-
       termined.  Command-line  format options may need to be added or changed
       to resolve the problem.

   Playing & Recording Audio
       The play_ng and rec_ng commands are provided so that basic playing  and
       recording is as simple as

          play_ng existing-file.wav

       and

          rec_ng new-file.wav

       These two commands are functionally equivalent to

          sox_ng existing-file.wav -d

       and

          sox_ng -d new-file.wav

       Further  options  and  effects (as described below) can be added to the
       commands in either form.

                                 *        *        *

       When playing a file with a sample rate that is not supported by the au-
       dio output device, SoX automatically invokes the rate effect to perform
       the necessary sample rate conversion.  For compatibility with old hard-
       ware,  the  default  rate  quality  level  is set to `low'. This can be
       changed by explicitly specifying the rate effect with a different qual-
       ity level, e.g.

          play_ng ... rate -m

       or by using the --play-rate-arg option (see below).

                                 *        *        *

       On  some  systems,  SoX allows the audio playback volume to be adjusted
       while using play_ng.  Where supported, this is achieved by tapping  the
       `v'  &  `V'  keys  during playback. If there is a softvol effect in the
       chain, these keys will adjust that instead of the hardware mixer.

       To help with setting a suitable recording level, SoX  includes  a  peak
       level  meter  which can be invoked (before making the actual recording)
       as follows:

          rec_ng -n

       The recording level should be adjusted (using the system-provided mixer
       program,  not  SoX)  so  that  the meter is, at most, occasionally full
       scale and never `in the red' (an exclamation mark is shown).   See  the
       -S (--show-progress) option below.

   Accuracy
       Many  file formats that compress audio discard some of the audio signal
       information. Converting to such a format and back again will  not  pro-
       duce  an  exact  copy of the original audio.  This is the case for many
       formats used in telephony (e.g. A-law, GSM) where low signal  bandwidth
       is more important than high audio fidelity and for formats used in por-
       table music players (e.g. MP3, Ogg Vorbis) where adequate fidelity  can
       be  retained  even with the large compression ratios that are needed to
       make portable players practical.

       Formats that discard audio signal information are called `lossy'.  For-
       mats  that do not are called `lossless'.  The term `quality' is used as
       a measure of how closely the original audio signal is  reproduced  when
       using a lossy format.

       Audio  file  conversion  with SoX is lossless when it can be, i.e. when
       not using lossy compression, when not reducing  the  sampling  rate  or
       number  of channels and when the number of bits used in the destination
       format is not less than in the source format.  For example,  converting
       from  an  8-bit  PCM format to a 16-bit PCM format is lossless but con-
       verting from an 8-bit PCM format to (8-bit) A-law isn't.

       SoX converts all audio files to an internal, uncompressed 32-bit format
       before  performing any audio processing. This means that manipulating a
       file that is stored in a lossy format can cause further losses in audio
       fidelity.  E.g. with

          sox_ng long.mp3 short.mp3 trim 10

       SoX first decompresses the input MP3 file, then applies the trim effect
       and finally creates the output MP3 file by recompressing the audio with
       a possible reduction in fidelity above that which occurred when the in-
       put file was created.  Hence, if what is ultimately desired is  lossily
       compressed  audio,  it  is  best  to perform all audio processing using
       lossless file formats and then convert to the lossy format only at  the
       final  stage.   Applying  multiple effects with a single SoX invocation
       will, in general, produce more accurate results than those produced us-
       ing multiple SoX invocations.

   Dithering
       Dithering  is  a  technique used to maximize the dynamic range of audio
       stored at a particular bit-depth. Any distortion introduced by  quanti-
       zation  is  decorrelated by adding a small amount of white noise to the
       signal.  In most cases, SoX can determine whether the selected process-
       ing  requires dither and will add it during output formatting if appro-
       priate.

       By default, SoX automatically adds TPDF dither  when  the  output  bit-
       depth is less than 24 and any of the following are true:

       o   bit-depth  reduction has been specified explicitly using a command-
           line option

       o   the output file format supports only bit-depths lower than that  of
           the input file format

       o   an effect has increased the effective bit-depth within the internal
           processing chain

       For example, adjusting the volume with vol 0.25 requires two additional
       bits  in  which  to  losslessly  store  its results (since 0.25 decimal
       equals 0.01 binary) so, if the input file bit-depth is 16, SoX's inter-
       nal  representation  will  use  18  bits  after  processing this volume
       change.  In order to store the output at the same depth as  the  input,
       dithering is used to remove the additional bits.

       Use  the  -V option to see what processing SoX has automatically added.
       The -D (--no-dither) option may be given to override automatic  dither-
       ing.   To  invoke  dithering  manually  (e.g. to select a noise-shaping
       curve) use the dither effect.

   Clipping
       Clipping is distortion that occurs when an audio signal level (or `vol-
       ume')  exceeds  the range of the chosen representation.  In most cases,
       clipping is undesirable and so should be  corrected  by  adjusting  the
       level prior to the point in the processing chain at which it occurs.

       In  SoX,  clipping can happen when using the vol or gain effects to in-
       crease the audio volume. Clipping can also occur with  many  other  ef-
       fects, when converting one format to another and even when simply play-
       ing the audio.

       Playing an audio file often involves resampling and processing by  ana-
       log components and that can introduce a DC offset or amplification, all
       of which can produce distortion if the audio signal level was initially
       too close to the clipping point.

       For these reasons, it is usual to make sure that an audio file's signal
       level has some `headroom', i.e. it does not exceed a  particular  level
       below  the  maximum  possible  level of the given representation.  Some
       standards bodies recommend as much as 9dB headroom, but in most  cases,
       3dB  (~~  70%  linear)  is enough.  Note that this wisdom seems to have
       been lost in modern music production; in fact,  many  CDs,  MP3s,  etc.
       are  now mastered at levels above 0dBFS and the audio is clipped as de-
       livered.

       SoX's stat and stats effects can assist in determining the signal level
       of  an  audio file. The gain or vol effect can be used to prevent clip-
       ping, e.g.

          sox_ng dull.wav bright.wav gain -6 treble +6

       guarantees that the treble boost will not clip.

       If clipping occurs at any point during processing, SoX displays a warn-
       ing message to that effect.

       See the global -G (--guard) option and the gain and norm effects.

   Input File Combining
       SoX's input combiner can be configured with the --combine global option
       to combine multiple files using one of the following methods:  concate-
       nate,  sequence, mix, mix-power, merge and multiply, with shorthands -m
       for --combine mix, -M for merge and -T for multiply.

       The default is sequence for play_ng, and concatenate for sox_ng.

       For methods other than sequence, multiple input  files  must  have  the
       same  sampling rate. If necessary, separate SoX invocations can be used
       to make sampling rate adjustments prior to combining them.   and,  with
       concatenate,  the  input  files must also have the same number of chan-
       nels.

       The sequence combining method is similar to concatenate in that the au-
       dio  from each input file is sent serially to the output file but here,
       the output file may be closed and reopened at  the  transition  between
       input  files.   This  may be just what is needed when sending different
       types of audio to an output device but is not generally useful when the
       output is a normal file.

       With  the mix or mix-power combining methods, the number of channels in
       each input file need not be the same but SoX issues a warning  if  they
       are  not  and  some  channels in the output file will not contain audio
       from every input file.  A mixed audio file cannot  be  unmixed  without
       reference to the original input files.

       If  the  merge  combining  method is selected the number of channels in
       each input file need not be the same and a merged audio file  comprises
       all  channels  from all the input files and unmerging is possible using
       multiple invocations of SoX with the remix effect.   For  example,  two
       mono  files  could  be merged to form one stereo file and the first and
       second mono files would become the  left  and  right  channels  of  the
       stereo file.

       The  multiply  combining  method multiplies the sample values of corre-
       sponding channels treated as numbers in the interval -1 to +1.  If  the
       number  of  channels  in  the  input files is not the same, the missing
       channels will contain silence.

       When combining input files, SoX applies any specified effects  (includ-
       ing, for example, the vol volume adjustment effect) after the audio has
       been combined. However, it is often useful to be able to set the volume
       of the inputs individually (i.e. `balance' them) before combining takes
       place.  For all combining methods, input file volume adjustments can be
       made  manually  using the -v option, which can be given for one or more
       input files. If it is given for only some of the input files, the  oth-
       ers  receive  no  volume  adjustment.  In some circumstances, automatic
       volume adjustments may be applied.  The global -V option can be used to
       show the input file volume adjustments that have been selected manually
       or automatically.

       Some special considerations need to made when mixing input files:

       Unlike the other methods, mix combining can cause clipping in the  com-
       biner if no balancing is performed.  In this case, if manual volume ad-
       justments are not given, SoX tries to ensure that clipping does not oc-
       cur  by  automatically  adjusting  the volume (amplitude) of each input
       signal by a factor of ^1/n, where n is the number of input  files.   If
       this  results  in  audio that is too quiet or otherwise unbalanced, the
       input file volumes can be set manually with -v. Using the  norm  effect
       on the mix is another alternative.

       If  mixed  audio seems loud enough at some points but too quiet in oth-
       ers, dynamic range compression can be applied to correct this - see the
       compand effect.

       With  the  mix-power  combine method, the mixed volume is approximately
       equal to that of one of the input signals.  This is achieved by balanc-
       ing  using a factor of ^1/<sqrt>n instead of ^1/n.  Note that this bal-
       ancing factor does not guarantee that clipping will not occur  but  the
       number  of  clips  will  usually be low and the resulting distortion is
       usually imperceptible.

   Output Files
       SoX's default behaviour is to take one or more input  files  and  write
       them to a single output file.

       This  behaviour  can  be  changed  by placing the newfile pseudo-effect
       within the effects list and SoX will enter multiple output mode.

       In multiple output mode, a new file is created when the  effects  prior
       to  the  newfile indicate that they are done.  The effects chain listed
       after newfile is then started up and its output is  saved  to  the  new
       file.

       In  multiple  output mode, a unique number is appended automatically to
       all filenames and, if the filename has an extension, the number is  in-
       serted before the extension.  This behaviour can be customized by plac-
       ing %n in the filename where the number should be substituted.  An  op-
       tional number can be placed after the % to indicate a minimum width for
       the number with leading zeroes.  %n defaults to two digits or, if no %n
       is included, to three digits before the filename extension.

       Multiple output mode is not very useful unless an effect that stops the
       effects chain is specified before newfile. If the end of  the  file  is
       reached  before  the  effects chain stops, no new file is created as it
       would be empty.

       The following is an example of splitting the first 60 seconds of an in-
       put file into two 30 second files and ignoring the rest.

          sox_ng song.wav ringtone%1n.wav trim 0 30 : newfile : trim 0 30


   Stopping SoX
       Usually,  SoX  completes its processing and exits automatically once it
       has read all audio data from the input files.

       It can also be terminated earlier by sending it  an  interrupt  signal,
       usually  by pressing the keyboard interrupt key which is normally Ctrl-
       C.  This is required in some circumstances such as when  using  SoX  to
       make  a  recording.  When SoX is playing multiple files, Ctrl-C behaves
       slightly differently: pressing it once skips to the next file; pressing
       it twice in quick succession causes SoX to exit.

       Another  way  to  stop  processing early is to use an effect that has a
       time period or sample count; the trim effect is  an  example  of  this.
       Once all effects chains have stopped, SoX stops.

FILENAMES
       Filenames  can  be  simple file names, relative or absolute path names,
       URLs (for input files only) or special filenames.  URL support requires
       one of the wget, wget2 or curl programs to be installed.

       Giving  SoX an input or output filename that is the same as the name of
       a SoX effect does not work since SoX will treat it as an effect  speci-
       fication.   You  can  work  around this by calling the file ./chorus on
       Unix or .\chorus on MS/DOS but it is not usually a problem  since  most
       audio  filenames  have  a  filename extension after a dot, which effect
       names do not.

       Using the same file name as an input and an output is unlikely to  work
       as  intended  because  it is likely to truncate the file before reading
       all of it.

   Special Filenames
       The following filenames may be used in certain circumstances  in  place
       of a normal filename:

       -      SoX  can be used in simple pipeline operations by using the spe-
              cial filename `-' which, if used as an  input  filename,  causes
              SoX to read audio data from the `standard input' (stdin) and, if
              used as the output filename, will cause SoX to send  audio  data
              to  the  `standard output' (stdout).  When using this option for
              the output file, and sometimes when using it for an input  file,
              the file type (see -t below) must also be given.

       "|program [options] ..."
              An  initial  `pipe' character specifies that the given command's
              standard output (stdout) should be used as an input  file.   Un-
              like the special filename -, this can be used for several inputs
              to one SoX command.  For example, if a program genw generates  a
              mono  WAV  signal  on its standard output, the following command
              makes a stereo file from two generated signals:

                 sox_ng -M "|genw --imd -" "|genw --thd -" out.wav

              For headerless (raw) audio and some other formats, -t  needs  to
              be given before the input command.

       "wildcard-filename"
              Specifies that filename `globbing' (wildcard matching) should be
              performed by SoX instead of by the shell if  the  wildcard-file-
              name  contains  the characters *, ? or characters ranges such as
              [A-Z].  This allows a single set of file options to  be  applied
              to a group of files.  For example, if the current directory con-
              tains three files, file1.vox, file2.vox and file3.vox,

                 play_ng --rate 6k *.vox

              is expanded by the shell (in most environments) to

                 play_ng --rate 6k file1.vox file2.vox file3.vox

              which only treats the first `vox' file as having a  sample  rate
              of 6k.  With

                 play_ng --rate 6k "*.vox"

              the given sample rate option is applied to all the files.

              If  you  do  not want SoX to glob the filenames, you can use the
              option  --no-glob  before  each  filename  that  should  not  be
              globbed,  which  is necessary if you need to process files whose
              names contain wildcard characters.

       -p, --sox-pipe
              This can be used in place of an output filename to specify  that
              its  output  will  be  used as the input to another SoX command.
              For example, in the command:

                 play_ng "|sox_ng -n -p synth 2" "|sox_ng -n -p synth 2 tremolo 10"

              play_ng thinks it's playing two files in  succession  that  come
              from pipes, but in fact they both come from other invocations of
              SoX, each with different effects.

              -p is in fact an alias for `-t sox -'.

       -d, --default-device
              This can be used in place of an  input  or  output  filename  to
              specify  that  the  default  audio device (if one has been built
              into SoX) is to be used.  This is akin  to  invoking  rec_ng  or
              play_ng as described above.

       -n, --null
              This  can  be  used  in  place of an input or output filename to
              specify that a `null file' is to be  used.   Here,  `null  file'
              refers to a SoX-specific mechanism and is not related to any op-
              erating system mechanism with some special name.

              Using a null file as an input is equivalent to  using  a  normal
              audio  file  that contains an infinite amount of silence and, as
              such, is not generally useful unless used with  an  effect  that
              specifies a finite time length such as trim or synth.

              Using  a  null file as an output amounts to discarding the audio
              and is mainly useful with effects that produce information about
              the  audio  instead  of affecting it such as noiseprof, stat and
              spectrogram.

              The sampling rate associated with a  null  file  is  by  default
              48kHz  but,  as with a normal file, this can be overridden using
              format options such as -r (see below).

   Supported File and Audio Device Types
       See soxformat_ng(7) for a list and description of  the  supported  file
       formats and audio device drivers.

OPTIONS
   Global Options
       These  options can be specified on the command line at any point before
       the first effect name.

       The SOX_OPTS environment variable can be used  to  provide  alternative
       default values for SoX's global options.  See ENVIRONMENT (below).

       --buffer bytes, --input-buffer bytes
              Set  the  size in bytes of the buffers used for processing audio
              (default 8192).  --buffer applies to input, effects  and  output
              processing; --input-buffer applies only to input processing, for
              which it overrides --buffer if both are given.

              Large values for --buffer may cause SoX to be become slow to re-
              spond  to  requests  to  terminate  or to skip to the next input
              file.

       --clobber
              Don't prompt before overwriting an existing file  that  has  the
              same  name  as an output file. This is the default behaviour; to
              override it, use --no-clobber.

       --combine concatenate|merge|mix|mix-power|multiply|sequence
              Select the input file combining method.  See Input File  Combin-
              ing above for a description of them.

       -D, --no-dither
              Disable  automatic  dither  -  see Dithering above.  This may be
              useful to ensure that SoX produces the same output in successive
              runs  or if a file has been converted from 16 to 24 bit with the
              intention of doing some processing on it, but in  fact  no  pro-
              cessing  is  needed  after  all and the original 16 bit file has
              been lost, in which case no dither is needed when converting the
              file back to 16 bits.  See the stats effect for how to determine
              the actual bit-depth of the audio within a file.

       --effects-file filename
              Read a file to obtain all effects and their arguments.  The file
              is  parsed  as if the values were specified on the command line.
              A new line can be used in place of the special : marker to sepa-
              rate effect chains.  For convenience, such markers at the end of
              the file are normally ignored; if you want to specify  an  empty
              last effects chain, use an explicit : by itself on the last line
              of the file.  This option causes any effects  specified  on  the
              command line to be discarded.

       -G, --guard
              Automatically  invoke the gain effect to guard against clipping.
              E.g.

                 sox_ng -G in.au -b 16 out.au rate 44100 dither -s

              is shorthand for

                 sox_ng in.au -b 16 out.au gain -h rate 44100 gain -rh dither -s

              See -V, --norm, and the gain effect.

       -h, --help
              Show SoX's version number and usage information.

       --help-effect name
              Show usage information for the specified effect.  The  name  all
              can be used to show it for all available effects.

       --help-format name
              Show  information about the specified file format.  The name all
              can be used to show information for all supported formats.

       --i, --info
              If given as the first parameter to sox_ng, behave as soxi_ng.

       -m|-M  Equivalent to --combine mix and --combine merge respectively.

       --magic
              If SoX has been built with the optional `libmagic' library, this
              option enables its use in helping to detect audio file types.

       --multi-threaded | --single-threaded
              By default, SoX is `multi threaded' and processes audio channels
              for most multichannel effects in parallel on hyperthreading  and
              multicore processors.

              If  the --single-threaded option is given, it processes them one
              at a time, which may be more efficient on systems with less RAM.

              A larger buffer size than the default may be needed  to  benefit
              more  from  multithreaded  processing (e.g. 131072; see --buffer
              above).

       --no-clobber
              Prompt before overwriting an existing file with the same name as
              that given for the output file.

              Unintentionally  overwriting  a  file  is  easier than you might
              think, for example, if you accidentally enter

                 sox_ng file1 file2 effect1 effect2 ...

              when what you really meant was

                 play_ng file1 file2 effect1 effect2 ...

              then, without this option, file2 will  be  overwritten.   Hence,
              using  this option is recommended and can be set in the SOX_OPTS
              environment variable (see ENVIRONMENT below).

       --norm[=dB-level]
              Automatically invoke the gain effect to guard  against  clipping
              and to normalize the audio. E.g.

                 sox_ng --norm in.au -b 16 out.au rate 44100 dither -s

              is shorthand for

                 sox_ng in.au -b 16 out.au gain -h rate 44100 gain -nh dither -s

              Optionally,  the  audio can be normalized to a given level, usu-
              ally below 0 dBFS:

                 sox_ng --norm=-3 in.au out.au

              See -V, -G and the gain effect.

       --play-rate-arg arg
              Selects a quality option to be used when the rate effect is  in-
              voked  automatically  when  playing audio.  This option is typi-
              cally set via the SOX_OPTS environment variable (see ENVIRONMENT
              below)  and  its default value, when playing, is -l (low quality
              but fast).  See the rate effect for other alternatives.

       --plot gnuplot|octave|off
              If not set to off (the default if --plot is not given), run in a
              mode that can be used in conjunction with the gnuplot program or
              the GNU Octave program to assist with the selection and configu-
              ration  of many of the transfer function-based effects.  For the
              first given effect that supports the selected plotting  program,
              SoX  outputs commands to plot the effect's transfer function and
              stops without actually processing any audio.  E.g.

                 sox_ng --plot octave input-file -n highpass 1320 > highpass.plt
                 octave highpass.plt


       -q, --no-show-progress
              Run in quiet mode when SoX wouldn't otherwise do  so.   This  is
              the  opposite  of  the -S option.  To suppress error and warning
              messages, see -V below.

       -R     Run in `repeatable' mode.  When this option is given, SoX embeds
              a  time stamp in the output file if its format supports comments
              and will seed  pseudo  random  number  generators,  as  used  by
              dither,  with  that number, ensuring that successive SoX invoca-
              tions with the same inputs and the  same  parameters  yield  the
              same output.

       --replay-gain track|album|off
              Select  whether  or not to apply replay gain adjustment to input
              files.  The default is off for  sox_ng  and  rec_ng,  album  for
              play_ng  when  (at  least)  the first two input files are tagged
              with the same Artist and Album names and track for play_ng  oth-
              erwise.

       -S, --show-progress
              Display   input   file   format/header  information,  processing
              progress as a percentage of the input file(s), elapsed time, re-
              maining  time  (if known, in brackets) and the number of samples
              written to the output file.  Also shown is a peak  level  meter,
              and  an  indication  of whether clipping has occurred.  The peak
              level meter shows up to two channels and is calibrated for digi-
              tal audio as follows:

                          dB FSD   Display       dB FSD   Display
                           -25     -              -11     ====
                           -23     =               -9     ====-
                           -21     =-              -7     =====
                           -19     ==              -5     =====-
                           -17     ==-             -3     ======
                           -15     ===             -1     =====!
                           -13     ===-

              A  three-second  peak-held value of the headroom in dBs is shown
              to the right of the meter if the headroom is less than 6dB.

              This option is enabled by default when  using  SoX  to  play  or
              record audio but can be disabled with -q.

       -T     Equivalent to --combine multiply

       --temp directory
              Specify  that any temporary files should be created in the given
              directory.  This can be useful if there are permission  or  free
              space  problems  with  the default location. In this case, using
              `--temp .' (to use the current directory) is often a good  solu-
              tion.

       --version
              Show SoX's version number and exit.

       -V[level]
              Set  verbosity.  This  is particularly useful for seeing how any
              automatic effects have been invoked by SoX.

              SoX displays messages on the console (stderr) according  to  the
              following verbosity levels:

              0      No  messages are shown at all; use the exit status to de-
                     termine if an error has occurred.

              1      Only error messages are shown.  These  are  generated  if
                     SoX cannot complete the requested commands.

              2      Warning  messages are also shown.  These are generated if
                     SoX can complete the requested commands but  not  exactly
                     according  to  the  requested  command  parameters, or if
                     clipping occurs.  This is the default.

              3      Descriptions of SoX's processing phases are  also  shown,
                     to see exactly how SoX is processing your audio.

              4 to 6 Messages to help with debugging SoX are also shown.

              Each  occurrence  of the -V option increases the verbosity level
              by 1. Alternatively, the verbosity level can be set to an  abso-
              lute number by specifying it immediately after the -V, e.g.  -V0
              shuts it up.

   Input File Options
       These options apply to the first input filename that  follows  them  on
       the command line.

       --ignore-length
              Override  the  audio  length given in an audio file's header. If
              this option is given, SoX keeps reading audio until  it  reaches
              the end of the input file.

       -v, --volume factor
              Intended  for  use when combining multiple input files, this op-
              tion adjusts the volume of the file that follows it on the  com-
              mand line by a factor of factor. This allows it to be `balanced'
              w.r.t. the other input files.  This is a linear (amplitude)  ad-
              justment,  so  a  number  less than 1 decreases the volume and a
              number greater than 1 increases it.  If  a  negative  number  is
              given then, in addition to the volume adjustment, the audio sig-
              nal will be inverted.

              See the norm, vol and gain effects, Input File  Balancing  above
              and the Special Filenames' section on wildcard-filenames.

   Input & Output File Format Options
       These options apply to the input or output file whose name they immedi-
       ately precede on the command line and are used mainly when working with
       headerless file formats or when specifying a format for the output file
       that is different from that of the input file.

       -b bits, --bits bits
              Set the number of bits (a.k.a. bit-depth or word length) in each
              encoded  sample.  It is not applicable to complex encodings such
              as MP3 or GSM and not necessary with encodings that have a fixed
              number of bits such as A-law, <mu>-law and ADPCM.

              For an input file, the most common use for this option is to in-
              form SoX of the number of bits per sample in a  `raw'  (`header-
              less') audio file.  For example

                 sox_ng -r 16k -e signed -b 8 input.raw output.wav

              converts  a  particular  `raw'  file  to a self-describing `WAV'
              file.

              For an output file, this option can be used to  set  the  output
              encoding  size.   By default, the output encoding size is be set
              to the input encoding size, provided it is supported by the out-
              put file type.  For example:

                 sox_ng input.cdda -b 24 output.wav

              converts  raw  CD  digital  audio  (16-bit, signed-integer) to a
              24-bit (signed-integer) `WAV' file.

       -c CHANNELS, --channels CHANNELS
              Sets the number of audio channels in the audio file. This can be
              any number greater than zero.

              For an input file, the most common use for this option is to in-
              form SoX of the number of channels in a `raw' (headerless) audio
              file.   Occasionally, it may be useful to use this option with a
              headered file to override the (presumably  incorrect)  value  in
              the  header  but this is only supported with certain file types.
              For example:

                 sox_ng -r 48k -e float -b 32 -c 2 input.raw output.wav

              converts a `raw' file to a self-describing `WAV' file.

                 play_ng -c 1 music.wav

              interprets the file data as belonging to a  single  channel  re-
              gardless of what is indicated in the file header and if the file
              does in fact have two channels, it is played at half speed.

              For an output file, this option provides a shorthand for  speci-
              fying  that  the  channels  effect should be invoked in order to
              change (if necessary) the number of channels in the audio signal
              to  the  number  given.  For example, the following two commands
              are equivalent:

                 sox_ng input.wav -c 1 output.wav bass -b 24
                 sox_ng input.wav      output.wav bass -b 24 channels 1

              though the second form is more flexible as it allows effects  to
              be ordered arbitrarily.

       -e ENCODING, --encoding ENCODING
              Set  the  audio  encoding type, sometimes needed with file types
              that support more than one encoding scheme such as raw,  WAV  or
              AU  but  not with MP3 or FLAC.  The available encoding types are
              as follows:

              signed-integer
                     PCM data stored as signed (`two's complement')  integers.
                     Commonly  used  with  a  16  or 24 -bit encoding size.  A
                     value of 0 represents minimum signal power.

              unsigned-integer
                     PCM data stored as unsigned integers.  Commonly used with
                     an  8-bit encoding size.  A value of 0 represents maximum
                     signal power.

              floating-point
                     PCM data stored as IEEE 753 single precision (32-bit)  or
                     double  precision  (64-bit)  floating point (`real') num-
                     bers.  A value of 0 represents minimum signal power.

              a-law  International telephony standard for logarithmic encoding
                     to  8  bits per sample.  It has a precision equivalent to
                     roughly 13-bit PCM and is sometimes encoded with reversed
                     bit-ordering (see the -X option).

              u-law/mu-law
                     The North American telephony standard for logarithmic en-
                     coding to 8 bits per sample, a.k.a. <mu>-law has a preci-
                     sion  equivalent  to  roughly 14-bit PCM and is sometimes
                     encoded with reversed bit-ordering (see the -X option).

              oki-adpcm
                     OKI (a.k.a. VOX, Dialogic, or Intel) 4-bit  ADPCM  has  a
                     precision  equivalent  to roughly 12-bit PCM.  ADPCM is a
                     form of audio compression that makes  a  good  compromise
                     between audio quality and encoding/decoding speed.

              ima-adpcm
                     IMA  (a.k.a.  DVI) 4-bit ADPCM has a precision equivalent
                     to roughly 13-bit PCM.

              ms-adpcm
                     Microsoft 4-bit  ADPCM  has  a  precision  equivalent  to
                     roughly 14-bit PCM.

              gsm-full-rate
                     GSM  is  currently  used  for the majority of the world's
                     digital wireless telephone calls.   It  utilizes  several
                     audio  formats  with  different  bit rates and associated
                     speech quality.   SoX  has  support  for  GSM's  original
                     13kbps `Full Rate' audio format.

              Encoding  names  can  be abbreviated where this would not be am-
              biguous; e.g. unsigned-integer can be given as  un,  but  not  u
              (ambiguous with u-law).

              For an input file, the most common use for this option is to in-
              form SoX of the encoding of a `raw'  (`headerless')  audio  file
              (see the examples in -b and -c above).

              For an output file, this option can be used (perhaps with -b) to
              set the output encoding. For example:

                 sox_ng input.cdda -e float output1.wav
                 sox_ng input.cdda -b 64 -e float output2.wav

              converts a raw CD  digital  audio  (16-bit  signed  integer)  to
              floating  point  `WAV'  files of single and double precision re-
              spectively.

              If this option is not given, the output  encoding  will  be  the
              same as the input encoding, provided it is supported by the out-
              put file type.

       --no-glob
              Specifies that filename `globbing'  (wildcard  matching)  should
              not be performed by SoX on the following filename.  For example,
              if the current  directory  contains  the  two  files  `five-sec-
              onds.wav' and `five*.wav', then

                 play_ng --no-glob "five*.wav"

              can be used to play just the single file `five*.wav'.

       -r, --rate rate[k]
              Gives  the  sample  rate  in Hz (or kHz if followed by k) of the
              file.

              For an input file, the most common use for this option is to in-
              form SoX of the sample rate of a `raw' (`headerless') audio file
              (see the examples in -b and -c above).  Occasionally it  may  be
              useful to use this option with a `headered' file to override the
              value in the header, though this is only supported with  certain
              file  types.   For  example, if audio was recorded with a sample
              rate of 48k from a source that played back a little too  slowly,
              say 1.5%,

                 sox_ng -r 48720 input.wav output.wav

              would  correct  the  speed by changing only the file header (but
              see the speed effect for the more usual solution to  this  prob-
              lem).

              For  an output file, this option provides a shorthand for speci-
              fying that the rate effect should be invoked in order to  change
              (if  necessary) the sample rate of the audio signal to the given
              value.  For example, the following two commands are equivalent:

                 sox_ng input.wav -r 48k output.wav bass -b 24
                 sox_ng input.wav        output.wav bass -b 24 rate 48k

              though the second form is more flexible as it  allows  rate  op-
              tions to be given and allows the effects to be ordered arbitrar-
              ily.

       -t, --type FILE-TYPE
              Give the type of an audio  file.   For  both  input  and  output
              files,  this option is commonly used to inform SoX of the type a
              `headerless' audio file where the actual/desired type cannot  be
              determined from the filename extension.  For example:

                 another-command | sox_ng -t mp3 - output.wav
                 sox_ng input.wav -t raw output.bin

              It  can  also  be  used to override the type implied by an input
              filename extension but, if overriding with a  type  that  has  a
              header,  SoX  exit with an error message if such a header is not
              actually present.

              There are also pseudo filetypes that tell SoX to use a specified
              format module that handles more than one type of audio file such
              as -t sndfile and -t ffmpeg or when a type of file can  be  han-
              dled by several different format modules, such as WAV files con-
              taining MP3-encoded data.

              Furthermore, the file type can be used to  select  a  particular
              audio device driver for recording and playing.

              See soxformat_ng(7) for a list of supported file types.

       -L, --endian little
       -B, --endian big
       -x, --endian swap
              These  options  specify whether the byte order of the audio data
              is, respectively, `little endian', `big endian' or the  opposite
              to  that  of  the system on which SoX is being used.  Endianness
              applies only to data encoded as floating point or as  signed  or
              unsigned  integers of 16 or more bits.  It is often necessary to
              specify one of these options for headerless files and  sometimes
              necessary  for  (otherwise)  self-describing files.  A given en-
              dian-setting option may be  ignored  for  an  input  file  whose
              header  contains a specific endianness identifier or for an out-
              put file that is actually an audio device.

              N.B.  Unlike other format characteristics, the endianness (byte,
              nibble,  &  bit ordering) of the input file is not automatically
              used for the output file. For example, when the following is run
              on a little-endian system:

                 sox_ng -B audio.s16 trimmed.s16 trim 2

              trimmed.s16 will be created as little-endian;

                 sox_ng -B audio.s16 -B trimmed.s16 trim 2

              must be used to preserve big-endianness in the output file.

              The -V option can be used to check the selected orderings.

       -N, --reverse-nibbles
              Specifies  that  the  nibble ordering of the samples (i.e. the 2
              halves of a byte) should be reversed, which is sometimes  useful
              with ADPCM-based formats.

              See the N.B. in the section on -x above.

       -X, --reverse-bits
              Specifies  that  the  bit  ordering of the samples should be re-
              versed, which is sometimes useful with a few (mostly headerless)
              formats.

              See the N.B. in the section on -x above.

   Output File Format Options
       These options only apply to output files and may only precede an output
       filename on the command line.

       --add-comment TEXT
              Append a comment to the output file header (where applicable).

       --comment TEXT
              Specify the comment text to store  in  the  output  file  header
              (where applicable).

              SoX provides a default comment `Processed by SoX' if this option
              (or --comment-file) is not given. To  specify  that  no  comment
              should be stored in the output file, use --comment "" .

       --comment-file FILENAME
              Specify  a file containing the comment text to store in the out-
              put file header (where applicable).

       -C, --compression FACTOR
              Set the compression factor for variably-compressed  output  file
              formats.  If this option is not given then a default compression
              factor applies.  The compression factor is  interpreted  differ-
              ently for different compressed file formats; see the description
              of the file formats that use this option in soxformat_ng(7)  for
              more information.

EFFECTS
       In  addition  to converting, playing and recording audio files, SoX can
       be used to invoke a number of audio effects.  Multiple effects  may  be
       applied  by  specifying  them one after the other at the end of the SoX
       command line, forming an `effects chain'.  Note that applying  multiple
       effects  in real time (i.e. when playing audio) may require a high per-
       formance computer.

       Some of the SoX effects are primarily intended to be applied to a  sin-
       gle instrument or `voice'. To facilitate this, the remix effect and the
       global SoX option -M can be used to isolate then recombine tracks  from
       a multitrack recording.

   Multiple Effects Chains
       A  single  effects chain is made up of one or more effects.  Audio from
       the input runs through the chain until either the end of the input file
       is reached or an effect terminates the chain.

       SoX  supports running multiple effects chains over the input audio.  In
       this case, when one chain indicates that it is done  processing  audio,
       the  audio data is sent through the next effects chain.  This continues
       until either no more effects chains exist or the input has reached  the
       end of the file.

       Effects chains can be separated by placing a : (colon) after an effect;
       any following effects are a part of a new effects chain.

       It is important to place the effect that stops the chain as  the  first
       effect in the chain because any samples that are buffered by effects to
       the left of the terminating effect will be discarded.   The  amount  of
       samples  discarded  is  related to the --buffer option and it should be
       kept small, relative to the sample rate, if the terminating effect can-
       not  be first.  Further information on stopping effects can be found in
       the Stopping SoX section.

       There are a few pseudo-effects that can help when  using  multiple  ef-
       fects  chains.   These  include  newfile, which starts writing to a new
       output file before moving to the next effects chain, and restart, which
       moves  back  to the first effects chain.  Pseudo-effects must be speci-
       fied as the first effect in a chain and as the only effect in  a  chain
       (i.e. they must have a : before and after them).

       Here  is  an  example  of multiple effects chains.  It splits the input
       file into multiple files, each of 30 seconds in length and each  output
       filename will have unique number in its name, as documented in the Out-
       put Files section.

          sox_ng in.au out.au trim 0 30 : newfile : restart


   Common Notation And Parameters
       In the descriptions that follow, [square brackets] are used  to  denote
       parameters  that  are  optional, {braces} to denote those that are both
       optional and repeatable, <angle brackets> to denote those that are  re-
       peatable but not optional and pipe characters `|' separate options from
       which to choose one of several alternatives.  Where applicable, default
       values for optional parameters are shown (in parentheses).

       The  following parameters are used with, and have the same meaning for,
       several effects:

       frequency
              A frequency in Hz or, if followed by k, in kHz or,  if  preceded
              by  %, in semitones relative to A (440Hz); alternatively, scien-
              tific note names (e.g. E2) may be used.

       gain   A power gain in dB.  Zero gives no gain, less than zero gives an
              attenuation and greater than zero amplifies.

       duration
              See Time Specifications below.

       position
              A  position  within the audio stream; the syntax is [=|-|+]time-
              spec, where timespec is a time specification  (see  below).  The
              optional first character indicates whether the timespec is to be
              interpreted relative to the start (=) or end (-) of the audio or
              relative to the previous position (+) if the effect accepts mul-
              tiple positional arguments.  The audio length must be known  for
              end-relative locations to work, though some effects do accept -0
              for the end of the audio even if the length is  unknown.   Which
              of  =, - and + is the default depends on the effect and is shown
              in its syntax as, e.g., position(+).

              Examples: `=2:00' is two minutes into the audio stream,  `-100s'
              is  one hundred samples before the end of the audio, `+0:12+10s'
              is twelve seconds and ten samples after  the  previous  position
              and  `-0.5+1s'  is one sample less than half a second before the
              end of the audio.

       width[h|k|o|q]
              Used to specify the bandwidth of a filter.  A number of  differ-
              ent  methods  to specify the width are available (though not all
              for every effect).  One of the characters shown may be  appended
              to select the desired method as follows:

                           Method    Notes
                      h      Hz
                      k     kHz
                      b      Hz      Old non-frequency-warped response
                      o   octaves
                      q   Q-factor   See [2]
                      s    slope

              For each effect that uses this parameter, the default method (if
              no character is appended) is the one that is listed first in the
              first line of the effect's description.

   Time Specifications
       A timespec can be given in one the following two forms:

       [[hours:]minutes:]seconds[.frac][t]
              For example, a time specification of `1:30.5' corresponds to one
              minute, thirty and 1/2 seconds.  The  component  values  do  not
              have  to  be  normalized;  e.g.   `1:23:45', `83:45', `79:0285',
              `1:0:1425', `1::1425' and `5025' are all equivalent.

       sampless
              Specifies the number of samples directly, as  in  `8000s'.   For
              large  sample  counts,  e notation is supported: `1.7e6s' is the
              same as `1700000s'.

       Time specifications can also be chained with + or -  into  a  new  time
       specification  where  the right part is added to or subtracted from the
       total so far.  For example, `3:00-200s' means two hundred samples  less
       than three minutes.

       If  a time specification is a plain whole number with no t or s suffix,
       whether it is taken as a number of seconds or a number of  samples  de-
       pends  on  the  effect in question. At present, it always means seconds
       except for the duration parameters of the silence effect.

   Supported Effects
       To see whether SoX has support for an optional effect, enter sox_ng  -h
       and  look  for  its name in the EFFECTS list; a categorized list of the
       effects can be found in the accompanying README file.

       allpass [-1|-2] frequency [width[h|k|o|q]]
              Apply a two-pole all-pass filter  with  central  frequency  fre-
              quency  and  filter width width.  An all-pass filter changes the
              audio's frequency to phase  relationship  without  changing  its
              frequency to amplitude relationship.  The filter is described in
              detail in [1].

              -1 or -2 use an experimental 1-pole or 2-pole filter,  in  which
              case width does not apply.

              This effect supports the --plot global option.

       band [-n] frequency [width[h|k|o|q]]
              Apply  a  band-pass  filter.  The frequency response drops loga-
              rithmically around the center frequency.   The  width  parameter
              gives  the  slope  of  the  drop: the frequencies at frequency +
              width and frequency - width will have half their original ampli-
              tudes.  Its default value is half of the center frequency.

              band  defaults  to a mode oriented to pitched audio, i.e. voice,
              singing or instrumental music.  The -n (for noise)  option  uses
              the alternate mode for unpitched audio (e.g. percussion), though
              -n introduces a power gain of about 11dB in the filter,  so  be-
              ware  of output clipping.  band introduces noise in the shape of
              the filter, peaking at the center frequency and settling  around
              it.

              This effect supports the --plot global option.

              See sinc for a band-pass filter with steeper shoulders.

       bandpass|bandreject [-c] frequency width[h|k|o|q|b]
              Apply  a  two-pole  Butterworth  band-pass or band-reject filter
              with central  frequency  frequency,  and  (3dB-point)  bandwidth
              width.   The  -c  option  applies only to bandpass and selects a
              constant skirt gain (peak gain = Q) instead of  the  default,  a
              constant  0dB peak gain.  The filters roll off at 6dB per octave
              (20dB per decade) and are described in detail in [1].

              These effects support the --plot global option.

              See sinc for a band-pass filter with steeper shoulders.

       bass|treble gain [frequency [width[s|h|k|o|q]]]
              Boost or cut the bass (lower) or treble (upper)  frequencies  of
              the audio using a two-pole shelving filter with a response simi-
              lar to that of a standard hifi's tone controls.   This  is  also
              known as shelving equalization.

              gain gives the gain at 0Hz for bass or, for treble, whichever is
              the lower of ~22kHz and the Nyquist frequency.  Its useful range
              is  about -20 (for a large cut) to +20 (for a large boost).  Be-
              ware of Clipping when using a positive gain.

              The filter can be fine-tuned using the following optional param-
              eters:

              frequency sets the filter's central frequency and so can be used
              to extend or reduce the frequency range to be  boosted  or  cut.
              The default values are 100Hz for bass and 3kHz for treble.

              width determines how steep the filter's shelf transition is.  In
              addition to the common width specification methods, `slope' (the
              default)  may be used.  Its useful range is about 0.3 for a gen-
              tle slope to 1 (the maximum) for a steep slope; and its  default
              value is 0.5.

              The filters are described in detail in [1].

              These effects support the --plot global option.

              See equalizer for a peaking equalization effect.

       bend [-f frame-rate(25)] [-o oversampling(16)]
              {start-position(+),cents,end-position(+)}

              Changes  the pitch by specified amounts at specified times with-
              out changing  the  duration.   Each  given  triple:  start-posi-
              tion,cents,end-position specifies one bend.  cents is the number
              of cents (100 cents = 1 semitone) by which to  bend  the  pitch.
              The  other  values  specify the points in time at which to start
              and end bending the pitch.   During  each  bend,  the  frequency
              changes  logarithmically,  i.e.  by the same number of cents per
              second.

              The pitch bending algorithm uses the Discrete Fourier  Transform
              (DFT)  at a particular frame rate and oversampling rate.  The -f
              and -o parameters may be used to  adjust  these  parameters  and
              thus control the smoothness of the changes in pitch.

              For  example,  an  initial  tone  is  generated, then bent three
              times, yielding four different notes in total:

                 play_ng -n synth 2.5 sin 667 gain 1 \
                   bend .35,180,.25  .15,740,.53  0,-520,.3

              Here, the first bend runs from 0.35 to 0.6 seconds and the  sec-
              ond  one from 0.75 to 1.28 seconds.  Note that the clipping that
              is produced in this example is deliberate;  to  remove  it,  use
              gain -5 in place of gain 1.

              See pitch.

       biquad b0 b1 b2 a0 a1 a2
              Apply  a  biquad Infinite Impulse Response filter with the given
              coefficients, where b* and a* are the numerator and  denominator
              coefficients respectively.

              See http://en.wikipedia.org/wiki/Digital_biquad_filter (where a0
              = 1).

              This effect supports the --plot global option.

       channels channels
              Invoke a simple algorithm to change the number  of  channels  in
              the  audio  signal to the given number: mixing if decreasing the
              number of channels or duplicating if increasing  the  number  of
              channels.

              The  channels effect is invoked automatically if SoX's -c option
              specifies a number of channels that is different to that of  the
              input  file(s).   Alternatively, if this effect is given explic-
              itly, SoX's -c option need not be given.  For example, the  fol-
              lowing two commands are equivalent:

                 sox_ng input.wav -c 1 output.wav bass -b 24
                 sox_ng input.wav      output.wav bass -b 24 channels 1

              though the second form is more flexible as it allows the effects
              to be ordered arbitrarily.

              For example, when making a stereo file  quadraphonic,  the  left
              and right channels are copied into the third and fourth and when
              mixing a four-channel file down to stereo, the left  channel  is
              the  mix  of the first and third and the right of the second and
              fourth.

              See remix for an effect that allows channels to be mixed and se-
              lected arbitrarily.

       chorus gain-in gain-out <delay decay speed depth -s|-t>
              Add  a chorus effect to the audio.  This can make a single voice
              sound like a chorus but can also be applied to instrumentation.

              Chorus resembles an echo effect with a short  delay  but,  while
              echo's  delay  is constant, chorus' delay varies by a sinusoidal
              or triangular modulation.

              See [3] for further discussion of the chorus effect.

              The parameters for each chorus give its fixed delay in millisec-
              onds,  the  volume of the delayed output, the frequency in Hz of
              the modulation, the depth of the modulation  in  milliseconds  -
              each  delay  ranges  from the fixed delay to delay + depth - and
              whether the modulation is sinusoidal (-s)  or  triangular  (-t).
              Gain-out is then applied to the sum of the input scaled by gain-
              in and the outputs from the delays scaled by their decays.

              For internal reasons, there is a limit of 256 chorus stages.

              For a flow diagram of how chorus works, say sox_ng --help-effect
              chorus.

              A  typical delay is around 40ms to 60ms; the modulation speed is
              best near 0.25Hz and the modulation depth around 2ms.  For exam-
              ple, a single delay:

                 play_ng guitar1.wav chorus 0.7 0.9 55 0.4 0.25 2 -t

              Two delays of the original samples:

                 play_ng guitar1.wav chorus 0.6 0.9 50 0.4 0.25 2 -t \
                    60 0.32 0.4 1.3 -s

              A fuller-sounding chorus (with three additional delays):

                 play_ng guitar1.wav chorus 0.5 0.9 50 0.4 0.25 2 -t \
                    60 0.32 0.4 2.3 -t 40 0.3 0.3 1.3 -s


       compand attack1,decay1{,attack,decay}
              [soft-knee-dB:]in-dB1[,out-dB1]{,in-dB,out-dB}
              [gain [initial-volume-dB [delay]]]

              Compand (compress or expand) the dynamic range of the audio.

              The  attack and decay parameters (in seconds) determine the time
              over which the instantaneous level of the input signal is  aver-
              aged to determine its volume; attacks refer to increases in vol-
              ume and decays refer to decreases.  For most situations, the at-
              tack  time  (its response to the music getting louder) should be
              shorter than the decay time because the human ear is more sensi-
              tive  to  sudden  loud  music than sudden soft music.  When more
              than one pair of attack/decay parameters is specified, each  in-
              put channel is companded separately and the number of pairs must
              agree with the number of input  channels.   Typical  values  are
              0.3,0.8 seconds.

              The  second  parameter  is  a  list of points on the compander's
              transfer function specified in dB relative to the maximum possi-
              ble  signal  amplitude.   The input values must be in a strictly
              increasing order but the transfer function does not have  to  be
              monotonically rising.  If omitted, the value of out-dB1 defaults
              to the same value as in-dB1; levels below in-dB1  are  not  com-
              panded  but  may  have gain applied to them.  The point `0,0' is
              assumed but may be overridden by `0,out-dBn'.  If  the  list  is
              preceded by a soft-knee-dB value, then the points at where adja-
              cent line segments on the transfer function meet are rounded  by
              the  amount given.  Typical values for the transfer function are
              `6:-70,-60,-20'.

              The third (optional) parameter is an additional gain in dB to be
              applied  at  all points on the transfer function and allows easy
              adjustment of the overall gain.

              The fourth (optional) parameter is an initial level  to  be  as-
              sumed  for  each  channel when companding starts.  This lets you
              supply a nominal level initially so that, for  example,  a  very
              large  gain  is  not applied to initial signal levels before the
              companding action has begun to operate:  it  is  quite  probable
              that  in  such  an  event,  the output would be severely clipped
              while the compander gain adjusts itself.  A typical  value  (for
              audio which is initially quiet) is -90 dB.

              The fifth (optional) parameter is a delay in seconds.  The input
              signal is analyzed immediately to control the compander, but  it
              is  delayed before being fed to the volume adjuster.  Specifying
              a delay approximately equal to the attack/decay times allows the
              compander  to  operate  in  a  predictive rather than a reactive
              mode.  A typical value is 0.2 seconds.

              For a flow diagram of how compand works, say  sox_ng  --help-ef-
              fect compand.

                                    *        *        *

              The  following  example  might  be used to make a piece of music
              with both quiet and loud passages suitable for listening to in a
              noisy environment such as a moving vehicle:

                 sox_ng asz.wav asz-car.wav compand 0.3,1 6:-70,-60,-20 -5 -90 0.2

              The  transfer  function (`6:-70,...') says that very soft sounds
              (below -70dB) remain unchanged.  This stops the  compander  from
              boosting  the  volume on `silent' passages such as between move-
              ments.  However, sounds in the range -60dB to 0dB (maximum  vol-
              ume)  are boosted so that the 60dB dynamic range of the original
              music is compressed 3-to-1 into a  20dB  range,  which  is  wide
              enough  to  enjoy  the music but narrow enough to get around the
              road noise.  The `6:' selects  6dB  soft-knee  companding.   The
              -5 dB output gain is needed to avoid clipping (the number is in-
              exact and was derived by experimentation).  The -90 dB  for  the
              initial  volume  will work fine for a clip that starts with near
              silence and the delay of 0.2 seconds makes the  compander  react
              more quickly to sudden volume changes.

              In  the  next  example, compand is used as a noise-gate for when
              the noise is at a lower level than the signal:

                 play_ng in.au compand .1,.2 -inf,-50.1,-inf,-50,-50 0 -90 .1

              Here is another noise-gate, this time for when the noise is at a
              higher  level  than the signal (making it, in some ways, similar
              to a squelch effect):

                 play_ng in.au compand .1,.1 -45.1,-45,-inf,0,-inf 45 -90 .1

              This effect supports the --plot global option (for the  transfer
              function).

              See mcompand for a multiple-band companding effect.

       contrast [enhancement-amount(75)]
              Comparable  with compression, this effect modifies an audio sig-
              nal to make it sound louder.   enhancement-amount  controls  the
              amount  of  the  enhancement and is a number in the range 0-100.
              Note that enhancement-amount = 0 still gives a significant  con-
              trast enhancement.

              See the compand and mcompand effects.

       dcshift shift [limiter-gain]
              Apply  a  DC shift to the audio.  This can be useful to remove a
              DC offset (caused perhaps by a hardware problem in the recording
              chain)  from  the  audio.   The effect of a DC offset is reduced
              headroom and hence volume.  The stat or stats effect can be used
              to determine if a signal has a DC offset.

              The  given dcshift value is a floating point number in the range
              of +-2 that indicates the amount to shift the audio (which is in
              the range of +-1).

              An  optional  limiter-gain  can be specified as well.  It should
              have a value much less than 1 (e.g. 0.05 or 0.02)  and  is  used
              only on peaks to prevent clipping.

              An  alternative  approach to removing a DC offset (albeit with a
              short delay) is to use the highpass filter effect at a frequency
              of say 10Hz, as illustrated in the following example:

                 sox_ng -n dc.wav synth 5 sin %0 50
                 sox_ng dc.wav fixed.wav highpass 10


       deemph Apply Compact Disc (IEC 60908) de-emphasis with a treble attenu-
              ation shelving filter.

              Pre-emphasis was applied in the mastering of some CDs issued  in
              the early 1980s.  These included many classical music albums, as
              well as now sought-after issues of albums by The  Beatles,  Pink
              Floyd  and  others.   Pre-emphasis should be removed at playback
              time by a de-emphasis filter in the playback  device.   However,
              not  all  modern  CD players have this filter and very few PC CD
              drives have it; playing pre-emphasized audio without the correct
              de-emphasis filter results in audio that sounds harsh and is far
              from what its creators intended.

              With the deemph effect, it is possible to  apply  the  necessary
              de-emphasis  to  audio that has been extracted from a pre-empha-
              sized CD and then either burn the de-emphasized audio to  a  new
              CD  (which  will then play correctly on any CD player) or simply
              play the correctly de-emphasized audio files on the PC.  For ex-
              ample:

                 sox_ng track1.wav track1-deemph.wav deemph

              and then burn track1-deemph.wav to CD, or

                 play_ng track1-deemph.wav

              or simply

                 play_ng track1.wav deemph

              The  de-emphasis  filter is implemented as a biquad and requires
              the input audio sample rate to be either 44.1kHz or 48kHz.   Its
              maximum  deviation from the ideal response is only 0.06dB (up to
              20kHz).

              This effect supports the --plot global option.

       delay {position(=)}
              Delay one or more audio channels such that  they  start  at  the
              given  position.   For  example,  delay  1.5 +1 3000s delays the
              first channel by 1.5 seconds, the second channel by 2.5  seconds
              (one  second  more than the previous channel), the third channel
              by 3000 samples and leaves other channels undelayed.   The  fol-
              lowing (one long) command plays a chime sound:

                 play_ng -n synth -j 3 sin %3 sin %-2 sin %-5 sin %-9 \
                   sin %-14 sin %-21 fade h .01 2 1.5 delay \
                   1.3 1 .76 .54 .27 remix - fade h 0 2.7 2.5 norm -1

              and this arpeggiates a guitar chord:

                 play_ng -n synth pl G2 pl B2 pl D3 pl G3 pl D4 pl G4 \
                   delay 0 .05 .1 .15 .2 .25 remix - fade 0 4 .1 norm -1

              To delay all channels by the same amount, use the pad effect.

       dither [-S|-s|-f filter] [-a] [-p precision]
              Apply  dithering  to  the  audio.  Dithering deliberately adds a
              small amount of noise to the signal in  order  to  mask  audible
              quantization effects that can occur if the output sample size is
              less than 24 bits.  With no options, this effect adds TPDF white
              noise.

              The  -s option enables noise-shaping with the shibata filter and
              with the -f option it is possible to select a particular  noise-
              shaping  filter  from  the following list: lipshitz, f-weighted,
              modified-e-weighted,  improved-e-weighted,  gesemann,   shibata,
              low-shibata  and  high-shibata.   The  filter  types are distin-
              guished by the following properties: audibility of noise,  level
              of  (inaudible,  but  in  some circumstances problematic) shaped
              high frequency noise and processing speed and they are available
              for the following sample rates:

               Filter         Sample rates
               lipshitz       44100
               f-weighted     46000
               e-weighted     46000
               gesemann       44100,48000
               shibata        8000,11025,16000,22050,32000,37800,44100,48000
               low-shibata    44100,48000
               high-shibata   44100

              The  -S  option selects a slightly `sloped' TPDF, biased towards
              higher frequencies.  It can be used at any  sampling  rate  but,
              below  ~~22kHz,  plain  TPDF  is  probably  better and, above ~~
              37kHz, noise-shaping (if available) is probably better.

              The -a option enables a mode where dithering (and  noise-shaping
              if  applicable) are automatically enabled only when needed.  The
              most likely use for this is when applying fade in or out  to  an
              already  dithered  file, so that the redithering applies only to
              the faded portions.  However, auto dithering is  not  foolproof,
              so  the  fades should be checked carefully for any noise modula-
              tion; if this occurs, then either redither the whole file or use
              trim and fade and concatenate the results.

              The  -p option overrides the target precision in bits and can be
              from 1 to 24.

              If the SoX global option -R option is not given, the pseudo-ran-
              dom  number  generator  used  to generate the white noise is re-
              seeded, i.e. the generated noise will be different on every  in-
              vocation.

              If  the target precision is 1-bit, the sdm effect is applied au-
              tomatically with default settings. Invoke it manually to control
              its options.

              See the section on Dithering (above).

       dolbyb   [-e|-d]   [-uupsamp]   [-h]   [-tgain(1.0)]   [-a  prec(-5.0)]
       [-f{1|2|3|4}]
              dolbyb is a Dolby B decoder/encoder based on  dolbybcsoftwarede-
              code  which  simulates  the  operation of a Dolby B en/decoder's
              electronic circuit.

              By default, dolbyb applies Dolby B decoding to its input signal;
              with  -e  it does Dolby B encoding. -d is also accepted but only
              for symmetry, as it is the default mode of operation.

              -u sets the upsampling ratio to use in the sliding filter.  Dig-
              ital  filtering only works well if the sample rate is well above
              the cutoff frequency of the filter. For Dolby B's  sliding  fil-
              ter,  that  frequency  can be as high as 34kHz and this does not
              work well if the sample rate is  only  44.1Khz.  To  get  around
              this,  it  upsamples  the  audio to a higher rate when it passes
              through this filter.  By default, -u0, the  upsampling  rate  is
              set  automatically  so  that  the  upper sample rate is at least
              200Khz; upsampling can be switched off with -u1.

              If -h is given, upsampling is used throughout  the  effect  from
              when the audio enters to when it leaves, not just in the sliding
              filter.  As dolbyb's up/downsampling algorithm  is  simple  (re-
              peating and averaging samples) you may obtain higher quality re-
              sults by upsampling with rate before dolbyb -u1 and downsampling
              it afterwards.

              -t  ("threshold")  adjusts the gain when the audio is fed to the
              Dolby gain control circuits.  When a tape deck  is  encoding  or
              decoding  a magnetic tape, it knows the signal level at the tape
              heads but with audio files the maximum signal level may not  ac-
              curately represent the tape's maximum flux density (200nWb/m for
              cassette tapes), giving erroneous results.  The  -t  option  ad-
              justs  the  volume  level  at which the sliding filter reacts to
              overcome this.  Its default value is 1.0, which assumes that the
              maximum amplitude of the signal represents the maximum recording
              level on tape; higher values assume that  it  was  recorded  too
              quietly  and  values  below 1.0 are for when it was recorded too
              loud.

              To begin with, when you have little idea of what level  to  use,
              try a wide range of levels like 5, 10, 15 and 20.  If the result
              sounds muffled, the threshold is too low and if it seems to have
              too  much  treble, the threshold is too high.  Once you know the
              approximate level, you can try more  closely-spaced  levels  and
              listen  carefully  to find the best level possible.  Logic would
              suggest listening to where tracks fade out, to see if the treble
              increases,  but  this  method  doesn't seem to work well and the
              best way seems to be to see how low the level can be set  before
              the  results  sound  dull and muffled, then choose a level a bit
              higher than this; you can just about hear the difference between
              results that differ in threshold setting by about 2.

              In  decode  mode,  the program has to use trial and error to get
              the right output sample values. -a sets how accurate it needs to
              be  before it is considered OK. A figure of 0.0 dB would mean an
              accuracy of about 1 sample value. The default is -5.0 dB,  which
              is accurate to less than one sample value.

              -f  selects  one  of  four  types of filter to use.  The program
              originally simulated an analog circuit for a Dolby B  noise  re-
              ducer. However, too much filtering in the side path was altering
              the phase of the side path audio, which caused problems when the
              side path was recombined with the main signal. Basically signals
              don't add together very well if there is too much difference  in
              the phase.  To fix this, there are now 4 filter modes with hope-
              fully less of a phase change:

              -f1    is the original method.

              -f2    is a newer method that seems to work better than 1.

              -f3    is another rearrangement which in practice  doesn't  seem
                     to be any better than 1.

              -f4    seems to work best, hence it is the default mode.
       For  further  detail  on  these parameters and advice on digitizing and
       processing  Dolby B-encoded  tapes,  consult  the  wiki   pages   under
       https://codeberg.org/martinwguy/libdolbyb

       dop    DSD  over PCM.  1-bit DSD data is packed into 24-bit samples for
              transport over non-DSD-aware links.

       downsample [factor(2)]
              Downsample the signal by an integer factor: Only  the  first  of
              each factor samples is retained, the others are discarded.

              No decimation filter is applied.  If the input is not a properly
              band-limited baseband signal, aliasing will occur.  This may  be
              desirable, e.g., for frequency translation.

              For  a  general  resampling  effect with antialiasing, see rate.
              See upsample.

       earwax This effect takes a 44.1kHz stereo signal and  adds  audio  cues
              that,  when listened to on headphones, move the sound stage from
              inside your head to outside and in front of you, as if listening
              to loudspeakers.

       echo gain-in gain-out <delay decay>
              Add  echoes to the audio.  In nature, echoes are reflected sound
              and digital echo effects emulate this and are often used to help
              fill out the sound of a single instrument or vocal.

              To see how earwax works, say sox_ng --help-effect earwax.

              Gain-in controls how much of the input signal is delivered clean
              to the output, delay is the time difference in milliseconds  be-
              tween the original signal and its reflection, decay is the loud-
              ness of the reflected signal and gain-out is a final volume  ad-
              justment of the result.

              There is no limit to the number of delay/decay pairs you can use
              and gains and decays can be negative or greater than  1  if  you
              wish.

              echo extends the length of the signal by the maximum delay time.

              For  a  flow diagram of how echo works, say sox_ng --help-effect
              echo.

              For example, this makes it sound as if there are twice  as  many
              instruments as are actually playing:

                 play_ng lead.aiff echo 0.8 0.88 60 0.4

              If  the delay is very short, it sound like a metallic robot: mu-
              sic:

                 play_ng lead.aiff echo 0.8 0.88 6 0.4

              A longer delay sounds like an open air concert in the mountains:

                 play_ng lead.aiff echo 0.8 0.9 1000 0.3

              One mountain more, and:

                 play_ng lead.aiff echo 0.8 0.9 1000 0.3 1800 0.25


       echos gain-in gain-out <delay decay>

              Echos stands for `Echo in Sequel' and adds a sequence of  echoes
              to the audio.  That is, the first echo takes the input, the sec-
              ond the input and the first echo, the third the  input  and  the
              output  of  the  second  echo and so on.  A single echos has the
              same effect as a single echo.  Each delay decay pair  gives  the
              delay in milliseconds (with a minimum of one sample) and the de-
              cay of that echo.  Gain-out is a final volume multiplier applied
              to  the  sum  of  the  input x gain-in and the delays' outputs x
              their respective decays.

              echos extends the length of the  signal  by  the  maximum  delay
              time.

              For  a flow diagram of how echos works, say sox_ng --help-effect
              echos.

              For example:

              The sample is bounced twice in symmetric echos:

                 play_ng lead.aiff echos 0.8 0.7 700 0.25 700 0.3

              The sample is bounced twice in asymmetric echos:

                 play_ng lead.aiff echos 0.8 0.7 700 0.25 900 0.3

              The sample sounds as if it were played in a garage:

                 play_ng lead.aiff echos 0.8 0.7 40 0.25 63 0.3


       equalizer frequency width[q|o|h|k] gain
              Apply a two-pole peaking equalization filter.  With this filter,
              the  signal  level at and around a selected frequency can be in-
              creased or decreased while,  unlike  band-pass  and  band-reject
              filters, the level at all other frequencies is unchanged.

              frequency  gives  the  filter's  central  frequency in Hz, width
              gives its bandwidth and gain the required gain or attenuation in
              dB.  Beware of Clipping when using a positive gain.

              In order to produce complex equalization curves, this effect can
              be given several times, each with a different central frequency.

              The filter is described in detail in [1].

              This effect supports the --plot global option.

       fade [type] fade-in-length [stop-position(=) [fade-out-length]]
              Apply a fade effect to the beginning, end, or both of the audio.

              An optional type can be specified to select  the  shape  of  the
              fade  curve:  q  for  quarter  of a sine wave, h for half a sine
              wave, t for linear (`triangular') slope, l for logarithmic,  and
              p for inverted parabola.  The default is logarithmic.

              A  fade-in  starts  from  the  first sample and ramps the signal
              level from 0 to full volume over  the  time  given  as  fade-in-
              length.  Specify 0 if no fade-in is wanted.

              For  a fade-out, the audio is truncated at stop-position and the
              signal level is ramped from full volume down to 0 over an inter-
              val  of  fade-out-length before the stop-position.  If fade-out-
              length is not specified, it defaults to the same value as  fade-
              in-length.   No  fade-out  is  performed if stop-position is not
              specified.  If the audio length can be determined from the input
              file header and any previous effects, then `-0' (or, for histor-
              ical reasons, `0') may be specified for stop-position  to  indi-
              cate  the  usual  case of a fade out that ends at the end of the
              input audio stream.

              See the splice effect.

       fir [coefs-file|coefs]
              Use SoX's FFT convolution engine with given Finite  Impulse  Re-
              sponse  filter  coefficients.  If a single argument is given, it
              is the name of a file containing the filter coefficients  (white
              space  separated; may contain `#' comments).  If the filename is
              `-' or if no argument is given, the coefficients are  read  from
              the  `standard  input'  (stdin);  otherwise, coefficients may be
              given on the command line.  Examples:

                 sox_ng in.au out.au fir .0195 -.082 .234 .891 -.145 .043

                 sox_ng in.au out.au fir coefs.txt

              with coefs.txt containing

                 # HP filter: freq=10000
                   1.2311233052619888e-01
                  -4.4777096106211783e-01
                   5.1031563346705155e-01
                  -6.6502926320995331e-02

              This effect supports the --plot global option.

       firfit [knots-file|<freq gain>]
              Use SoX's FFT convolution engine to make  a  filter  whose  fre-
              quency  response  approximates a spline passing through a series
              of frequency/gain pairs.  If a single argument is given,  it  is
              the  name of a file containing the knots (white space separated;
              may contain `#' comments).  If the given filename is `-'  or  if
              no  argument is given, the knots are read from the `standard in-
              put' (stdin); otherwise, knots may be given on the command line.

              Gains are in dB and the knot frequencies must be  in  increasing
              order.

              Examples:

                 sox_ng in.au out.au firfit 20 0 10000 -3

              gives a gentle low-pass filter and

                 sox_ng in.au out.au firfit knots.txt

              with knots.txt containing

                 # Approximate telephone response
                 300  -100
                 400   -10
                 480     0
                 2800    0
                 3000  -10
                 3400 -100

              approximates the response of a carbon microphone telephone.

              This effect supports the --plot global option.

       flanger    [delay(0)   [depth(2)   [regen(0)   [width(71)   [speed(0.5)
       [shape(sine) [phase(25) [interp(linear)]]]]]]]]
              Apply a flanging effect to the audio.  See [3]  for  a  detailed
              description of flanging.

              The  parameters give the base delay and the added swept delay in
              milliseconds, the percentage of regeneration (the delayed signal
              feedback),  width the percentage of delayed signal that is mixed
              with the original, speed the number of sweeps  per  second,  the
              shape  of  the  swept wave (sine or triangle), the percentage of
              phase shift of the swept wave in multichannel flanges (0 = 100 =
              the  same  phase  on each channel) and the type of digital delay
              line interpolation (linear or quadratic).

              The input and the delay's output are mixed and balanced so  they
              don't clip, so a width of 100 gives 50:50 mixing; to obtain only
              the delayed output and none of the input, specify width as inf.

              Despite containing a delay, flanger does not extend  the  length
              of the signal so, if you also want the last dregs of the delayed
              output and feedback, pad the signal beforehand.

              For a flow diagram of how flanger works, say  sox_ng  --help-ef-
              fect flanger.

              sine, triangle, linear and quadratic can be abbreviated.

       gain [-e|-B|-b|-r] [-n] [-l|-h] [gain-dB(0)]
              Apply  amplification  or  attenuation to the audio signal or, in
              some cases, to some of its channels.  Note that use  of  any  of
              -e, -B, -b, -r and -n requires temporary file space to store the
              audio to be  processed,  so  may  be  unsuitable  for  use  with
              streamed audio.

              Without other options, gain-dB adjusts the signal power level by
              the given number of dB: positive amplifies (beware of clipping),
              negative attenuates.  With other options, the gain-dB amplifica-
              tion or attenuation is applied after the processing due to those
              options.

              With the -e option, the levels of the audio channels of a multi-
              channel file are equalized, i.e. gain is applied to all channels
              other than that with the highest peak level so that all channels
              attain the same peak level (but, without also giving -n, the au-
              dio is not normalized).

              The  -B  (balance) option is similar to -e, but with -B, the RMS
              level is used instead of the peak level.  -B might  be  used  to
              correct stereo imbalance caused by an imperfect record turntable
              cartridge.  Note that, unlike -e, -B might cause some clipping.

              -b is similar to -B but has clipping protection, i.e. if  neces-
              sary  to  prevent  clipping whilst balancing, attenuation is ap-
              plied to all channels.  In conjunction with -n, -B  and  -b  are
              synonymous.

              The  -r option is used in conjunction with a prior invocation of
              gain with the -h option - see below for details.

              The -n option normalizes the audio to 0dB FSD.  It is often used
              in conjunction with a negative gain-dB so that the audio is nor-
              malized to a given level below 0dB.  For example,

                 sox_ng in.au out.au gain -n

              normalizes to 0dB, and

                 sox_ng in.au out.au gain -n -3

              normalizes to -3dB.

              The -l option invokes a simple limiter. For example,

                 sox_ng in.au out.au gain -l 6

              applies 6dB of gain but never clips.  Note  that  limiting  more
              than a few dBs more than occasionally in a piece of audio is not
              recommended as it can cause audible distortion.  See the compand
              effect for a more capable limiter.

              The -h option is used to apply gain to provide headroom for sub-
              sequent processing.  For example, with

                 sox_ng in.au out.au gain -h bass +6

              6dB of attenuation is applied prior to the bass boosting effect,
              ensuring that it does not clip.  Of course, with bass, it is ob-
              vious how much headroom is needed but, with other effects  (e.g.
              rate,  dither), it is not always as clear.  Another advantage of
              using gain -h rather than an explicit attenuation  is  that,  if
              the  headroom  is  not used by subsequent effects, it can be re-
              claimed with gain -r, for example:

                 sox_ng in.au out.au gain -h bass +6 rate 44100 gain -r

              The above effects chain guarantees never to clip nor amplify; it
              attenuates if necessary to prevent clipping, but by only as much
              as is needed to do so.

              Output formatting (dithering and bit-depth reduction)  also  re-
              quires headroom which cannot be reclaimed, e.g.

                 sox_ng in.au out.au gain -h bass +6 rate 44100 gain -rh dither

              Here,  the  second gain invocation reclaims as much of the head-
              room as it can from the preceding effects but  retains  as  much
              headroom as is needed for subsequent processing.  The SoX global
              option -G can be given to automatically invoke gain -h and  gain
              -r.

              See the norm and vol effects.

       highpass|lowpass [-1|-2] frequency [width[q|o|h|k]]
              Apply  a  high-pass or low-pass filter with 3dB point frequency.
              The filter can be either single-pole (with -1),  or  double-pole
              (the  default,  or  with -2).  width applies only to double-pole
              filters; the default is Q = 0.707 and gives  a  Butterworth  re-
              sponse.   The  filters roll off at 6dB per pole per octave (20dB
              per pole per decade).  The double-pole filters are described  in
              detail in [1].

              These effects support the --plot global option.

              See sinc for filters with a steeper roll-off.

       hilbert [-n taps]
              Apply  an  odd-tap  Hilbert transform filter, phase shifting the
              signal by 90 degrees.

              This is used in many matrix coding schemes and for analytic sig-
              nal  generation.   The process is often written as a multiplica-
              tion by i (or j), the imaginary unit.

              An odd-tap Hilbert transform filter has a band-pass characteris-
              tic,  attenuating the lowest and highest frequencies.  Its band-
              width can be controlled by the number of filter taps, which  can
              be  specified with -n.  By default, the number of taps is chosen
              for a cutoff frequency of about 75 Hz.

              This effect supports the --plot global option.

       ladspa [-l|-r] module [plugin] [argument ...]
              Apply a LADSPA [5] (Linux Audio Developer's Simple  Plugin  API)
              plugin.   Despite  the  name, LADSPA is not Linux-specific and a
              wide range of effects is available as LADSPA  plugins,  such  as
              cmt  [6]  (the Computer Music Toolkit) and Steve Harris's plugin
              collection [7]. The first argument is  the  plugin  module,  the
              second  the  name  of the plugin (a module can contain more than
              one plugin) and any other arguments are for the control ports of
              the  plugin. Missing arguments are supplied by default values if
              possible.

              Normally, the number of input ports of the plugin must match the
              number  of  input channels and the number of output ports deter-
              mines the output channel count.  However, the -r (replicate) op-
              tion allows cloning a mono plugin to handle multichannel input.

              Some  plugins introduce latency which SoX may optionally compen-
              sate for.  The -l (latency  compensation)  option  automatically
              compensates  for latency as reported by the plugin via an output
              control port named "latency".

              If it is set, the environment variable LADSPA_PATH  is  used  as
              the search path for plugins.

       loudness [gain [reference]]
              Loudness  control  is  similar  to  the gain effect but provides
              equalization   for   the    human    auditory    system.     See
              http://en.wikipedia.org/wiki/Loudness for a detailed description
              of loudness.  The gain is adjusted by the given  gain  parameter
              (usually negative) and the signal equalized according to ISO 226
              w.r.t. a reference level of 65dB, though an  alternative  refer-
              ence level may be given if the original audio has been equalized
              at some other level.  A default gain of -10dB is used if a  gain
              value is not given.

              See the gain effect.

       lowpass [-1|-2] frequency [width[q|o|h|k]]
              Apply  a  low-pass  filter.  See the description of the highpass
              effect for details.

       mcompand "compand-args" {frequency "compand-args"}

              The quoted compand-args are as for the compand effect:
              attack1,decay1{,attack,decay}
              [soft-knee-dB:]in-dB1[,out-dB1]{,in-dB,out-dB}
              [gain [initial-volume-dB [delay]]]

              The multi-band compander is similar to the single-band compander
              but  the  audio is first divided into bands using Linkwitz-Riley
              crossover filters and a separately specifiable compander is  run
              on  each band.  See the compand effect for the definition of its
              parameters.  Compand parameters  are  specified  between  double
              quotes  and  the  crossover  frequency for that band is given by
              crossover-freq; these can be repeated to create multiple bands.

              The following examples approximate Dolby A compression  and  de-
              compression,  as  used  for tape noise reduction in professional
              recording studios:

              # Dolby A compressor
              sox_ng in.au dolbyA.au mcompand \
                  ".1,.1 4:-56,-46,-36,-26,-26,-20,-17,-15,-9,-9" 80 \
                  ".1,.1 4:-56,-46,-36,-26,-26,-20,-17,-15,-9,-9" 3k \
                  ".1,.1 4:-56,-46,-36,-26,-26,-20,-17,-15,-9,-9" 9k \
                  ".1,.1 4:-56,-42,-36,-23,-26,-18,-17,-14,-9,-9"

              # Dolby A decompressor
              sox_ng dolbyA.au out.au mcompand \
                  ".1,.1 4:-46,-56,-26,-36,-20,-26,-15,-17,-9,-9" 80 \
                  ".1,.1 4:-46,-56,-26,-36,-20,-26,-15,-17,-9,-9" 3k \
                  ".1,.1 4:-46,-56,-26,-36,-20,-26,-15,-17,-9,-9" 9k \
                  ".1,.1 4:-42,-56,-23,-36,-18,-26,-14,-17,-9,-9"

              Real Dolby A probably compands each channel separately but  that
              is left as an exercise to interested readers.

              See compand for a single-band companding effect.

       noiseprof [profile-file]
              Calculate  a  profile  of  the audio for use in noise reduction.
              See the description of the noisered effect for details.

       noisered [profile-file [amount]]
              Reduce noise in the audio signal  by  profiling  and  filtering.
              This effect is moderately effective at removing consistent back-
              ground noise such as hiss or hum.  To use it, first run SoX with
              the  noiseprof  effect  on a section of audio that ideally would
              contain silence but in fact contains noise - such  sections  are
              typically  found  at  the  beginning  or the end of a recording.
              noiseprof writes a noise profile to profile-file or to stdout if
              no profile-file or if `-' is given.  E.g.

                 sox_ng speech.wav -n trim 0 1.5 noiseprof speech.noise-profile

              To  actually remove the noise, run SoX again, this time with the
              noisered effect; noisered reduces noise  according  to  a  noise
              profile generated by noiseprof, from profile-file if it is given
              or from stdin if no profile-file or if `-' is given.  E.g.

                 sox_ng speech.wav cleaned.wav noisered speech.noise-profile 0.3

              How much noise should be removed is specified by amount-a number
              between  0  and  1 with a default of 0.5.  Higher numbers remove
              more noise but present a greater likelihood of  removing  wanted
              components  of  the  audio signal.  Before replacing an original
              recording with a noise-reduced version, experiment with  differ-
              ent  amount  values  to find the optimal one for your audio; use
              headphones to check that you are happy with the results,  paying
              particular attention to quieter sections of the audio.

              On  most systems, the two stages - profiling and reduction - can
              be combined using a pipe, e.g.

                 sox_ng noisy.wav -n trim 0 1 noiseprof | \
                     play_ng noisy.wav noisered


       norm [dB-level]
              Normalize the audio.  norm is just an alias for gain -n; see the
              gain effect for details.

       oops   Out  Of  Phase  Stereo  effect.  Mixes stereo to twin mono where
              each mono channel contains the difference between the  left  and
              right stereo channels.  This is sometimes known as the `karaoke'
              effect as it often has the effect of removing most or all of the
              vocals from a recording.  It is equivalent to remix 1,2i 1,2i.

       overdrive [gain(20) [color(20)]]
              Non-linear  distortion.  The color parameter controls the amount
              of even harmonic content in the overdriven output. Both  parame-
              ters range from 0 to 100.

       pad { [%]length[@position(=)] }
              Pad  the  audio  with silence at the beginning, at the end or at
              any specified points throughout the audio.  length is the amount
              of  silence to insert and position the position in the input au-
              dio stream at which to insert it.  Any number of lengths and po-
              sitions  may be specified, provided that a specified position is
              not less that the previous one.  Position is  optional  for  the
              first  and  last  lengths specified and if omitted correspond to
              the beginning and the end of the audio respectively.  For  exam-
              ple,  pad 1.5 1.5 adds 1.5 seconds of silence at each end of the
              audio, whilst pad 4000s@3:00 inserts 4000 samples of  silence  3
              minutes into the audio.  If silence is wanted only at the end of
              the audio, either specify the end position or  specify  a  zero-
              length pad at the start.

              If  a pad specification starts with with a % sign, the output is
              padded to a multiple of length at the  specified  position.  For
              example,  pad  0  %10 adds silence at the end of the audio up to
              the next multiple of 10 seconds.

              See delay for an effect that can add silence at the beginning of
              the audio on a channel-by-channel basis.

       phaser gain-in gain-out delay decay speed [-s|-t]
              Add  a  phasing effect to the audio.  See [3] for a detailed de-
              scription of phasing.

              delay gives the delay in milliseconds, decay the amount of feed-
              back  from the delay and speed the frequency of delay-time modu-
              lation wave in Hz.

              The modulation is either sinusoidal (-s),  which  is  preferable
              for  multiple instruments, or triangular (-t) which gives single
              instruments a sharper phasing effect.  The decay should be  less
              than 0.5 to avoid feedback, and usually no less than 0.1.  Gain-
              out is the volume of the output.

              Technically, the SoX phaser is not a phaser; it is a flanger.  A
              flanger  does  comb  filtering  with  equidistant  spacing (e.g.
              100Hz, 200Hz, 300Hz, 400Hz, ...), while a phaser does comb  fil-
              tering  with  factored spacing (e.g. 100Hz, 200Hz, 400Hz, 800Hz,
              ...) that sounds more harmonic.  SoX's  flanger  effect  differs
              from  this  one in that it has signal feedback for more dramatic
              effects and that there can be a fixed modulation  phase  differ-
              ence between different channels.

              For a flow diagram of how phaser works, say sox_ng --help-effect
              phaser.

              For example:

                 play_ng snare.flac phaser 0.8 0.74 3 0.4 0.5 -t

              Gentler:

                 play_ng snare.flac phaser 0.9 0.85 4 0.23 1.3 -s

              A popular sound:

                 play_ng snare.flac phaser 0.89 0.85 1 0.24 2 -t

              More severe:

                 play_ng snare.flac phaser 0.6 0.66 3 0.6 2 -t


       pitch [-q] shift [segment [search [overlap]]]
              Change the audio pitch but not the tempo.

              shift gives the pitch shift  as  positive  or  negative  `cents'
              (i.e. 100ths of a semitone).

              Pitch  and  tempo  share the same fundamental algorithm; see the
              tempo effect for a description of the other parameters.

              See the bend, speed and tempo effects.

       rate [-q|-l|-m|-h|-v] [override-options] frequency]
              Change the audio sampling rate (i.e. resample the audio) to  any
              given  frequency  (even  non-integer if this is supported by the
              output file format) using a quality level defined as follows:

                    Quality    B/W    Rej dB     Typical Use
              -q     quick     n/a   ~=30@Fs/4   playback on ancient hardware
              -l      low      80%      100      playback on old hardware
              -m    medium     95%      100      audio playback
              -h     high      95%      125      16-bit mastering (use with
                                                 dither)
              -v   very high   95%      175      24-bit mastering

              where  B/W  (bandwidth) is the percentage of the audio frequency
              band that is preserved and Rej dB is the level of  noise  rejec-
              tion.   Increasing  levels of resampling quality come at the ex-
              pense of increasing amounts of time to process the audio.  If no
              quality  option  is given, the quality level used is `high' when
              processing audio and `low'  when  playing  it.   See  Playing  &
              Recording Audio above.

              The  `quick'  algorithm uses cubic interpolation; all others use
              band-limited interpolation.  By default, all algorithms  have  a
              linear phase response; for `medium', `high' and `very high', the
              phase response is configurable (see below).

              The rate effect is invoked  automatically  if  SoX's  -r  option
              specifies a rate that is different to that of the input file(s).
              Alternatively, if this effect is given explicitly, then SoX's -r
              option  need  not be given.  For example, the following two com-
              mands are equivalent:

                 sox_ng input.wav -r 48k output.wav bass -b 24
                 sox_ng input.wav        output.wav bass -b 24 rate 48k

              though the second command is more flexible as it allows rate op-
              tions  to  be  given, and allows the effects to be ordered arbi-
              trarily.

              Override Options
              The simple quality selection described above  provides  settings
              that satisfy the needs of the vast majority of resampling tasks.
              Occasionally, however, it may be desirable to fine-tune the  re-
              sampler's  filter response; this can be achieved using the over-
              ride options in the following table:

              -M/-I/-L   Phase response=minimum/intermediate/linear
              -s         Steep filter (bandwidth=99%)
              -a         Allow aliasing/imaging above the pass band
              -b width   Any bandwidth % (74-99.7 or 85-99.7 with 0
              -p phase   Any phase response (0=minimum, 25=intermediate,
                         50=linear, 100=maximum)

              These cannot be used with the `quick' or `low' algorithms.

              All  resamplers  use  filters  that  can sometimes create `echo'
              (a.k.a.  `ringing') artefacts with  transient  signals  such  as
              those  that occur with `finger snaps' or other highly percussive
              sounds.  Such artefacts are much more noticeable  to  the  human
              ear if they occur before the transient (`pre-echo') than if they
              occur after it (`post-echo').  Note that the  frequency  of  any
              such artefacts is related to the smaller of the original and new
              sampling rates but if this is at least  44.1kHz,  the  artefacts
              will lie outside the range of human hearing.

              A phase response setting may be used to control the distribution
              of any transient echo between `pre'  and  `post':  with  minimum
              phase, there is no pre-echo but the longest post-echo; with lin-
              ear phase, pre- and post-echo are in equal  amounts  (in  signal
              terms,  but  not  in audibility); the intermediate phase setting
              attempts to find the best compromise by selecting a small length
              (and level) of pre-echo and a medium-length of post-echo.

              A minimum, intermediate or linear phase response is selected us-
              ing the -M, -I and -L options; a custom phase  response  can  be
              created  with  the -p option.  Note that phase responses between
              `linear' and `maximum' (greater than 50) are rarely useful.

              A resampler's bandwidth setting determines how much of the  fre-
              quency  content of the original signal (w.r.t. the original sam-
              ple rate when upsampling or the new sample  rate  when  downsam-
              pling)  is preserved during conversion.  The term `pass band' is
              used to refer to all frequencies up to the bandwidth point (e.g.
              for  a  44.1kHz sampling rate and a resampling bandwidth of 95%,
              the pass band represents frequencies  from  0Hz  (DC)  to  circa
              21kHz).   Increasing  the  resampler's  bandwidth  results  in a
              slower conversion and can increase transient echo artefacts (and
              vice versa).

              The  -s  `steep  filter' option changes the resampling bandwidth
              from the default of 95% (based on the 3dB point) to 99%.  The -b
              option  allows the bandwidth to be set to any value in the range
              74-99.7% but bandwidth values greater than 99%  are  not  recom-
              mended  for  normal  use  as  they can cause excessive transient
              echo.

              If the -a option is given, aliasing/imaging above the pass  band
              is  allowed.   For example, with 44.1kHz sampling rate and a re-
              sampling bandwidth of 95%, this  means  that  frequency  content
              above  21kHz  can be distorted. However, since this is above the
              pass band (i.e.  above the highest frequency  of  interest/audi-
              bility),  this  may  not be a problem.  The benefits of allowing
              aliasing/imaging are reduced processing time and reduced (by al-
              most half) transient echo artefacts.

              Examples:

                 sox_ng input.wav -b 16 output.wav rate -s -a 44100 dither -s

              is  default (high) quality resampling with overrides for a steep
              filter, to allow aliasing, at a 44.1kHz sample rate  and  noise-
              shaped dithering to a 16-bit WAV file.

                 sox_ng input.wav -b 24 output.aiff rate -v -I -b 90 48k

              is very high quality resampling with overrides for an intermedi-
              ate phase, a bandwidth of 90%, at a 48k sampling rate and  stor-
              ing the output to a 24-bit AIFF file.

       remix [-a|-m|-p] <out-spec>
              out-spec  = in-spec{,in-spec} | 0
              in-spec   = [in-chan][-[in-chan2]][vol-spec]
              vol-spec  = p|i|v[volume]

              Select  and mix input audio channels into output audio channels.
              Each output channel is specified in turn  by  a  given  out-spec
              which is a list of contributing input channels and volume speci-
              fications.

              Note that this effect operates on the audio channels within  the
              SoX effects processing chain; it should not be confused with the
              -m global option, where multiple files are  mix-combined  before
              entering the effects chain.

              An  out-spec  contains comma-separated input channel numbers and
              hyphen-delimited channel number ranges; alternatively, 0 may  be
              given to create a silent output channel.  For example,

                 sox_ng input.wav output.wav remix 6 7 8 0

              creates  an output file with four channels, where channels 1, 2,
              and 3 are copies of channels 6, 7, and 8 in the input file,  and
              channel 4 is silent.  Whereas

                 sox_ng input.wav output.wav remix 1-3,7 3

              creates  a  (somewhat bizarre) stereo output file where the left
              channel is a mix-down of input channels 1, 2, 3 and  7  and  the
              right channel is a copy of input channel 3.

              Where  a  range of channels is specified, the channel numbers to
              the left and right of the hyphen are optional and default  to  1
              and to the number of input channels respectively. Thus

                 sox_ng input.wav output.wav remix -

              performs a mix-down of all input channels to mono.

              By default, where an output channel is mixed from multiple input
              channels, each input channel is scaled  by  a  factor  of  ^1/n.
              Custom  mixing  volumes  can  be  set by following a given input
              channel or range of input channels with a vol-spec (volume spec-
              ification) which is one of the letters p, i, or v, followed by a
              volume number, the meaning of which depends on the given letter:

              Letter   Volume number        Notes
                p      power adjust in dB   0 = no change
                i      power adjust in dB   As for p but invert the audio
                v      voltage multiplier   1 = no change; 0.5 ~= 6dB attenua-
                                            tion; 2 ~= 6dB gain; -1 = invert

              If  an out-spec includes at least one vol-spec then, by default,
              ^1/n scaling is not applied to any other channels  in  the  same
              out-spec  (though maybe in other out-specs) though the -a (auto-
              matic) option can be given to retain the  automatic  scaling  in
              this case.  For example,

                 sox_ng input.wav output.wav remix 1,2 3,4v0.8

              results  in  channel  level  multipliers  of  0.5,0.5 and 1,0.8,
              whereas

                 sox_ng input.wav output.wav remix -a 1,2 3,4v0.8

              results in channel level multipliers of 0.5,0.5 and 0.5,0.8.

              The -m (manual) option disables  all  automatic  volume  adjust-
              ments, so

                 sox_ng input.wav output.wav remix -m 1,2 3,4v0.8

              results in channel level multipliers of 1,1 and 1,0.8.

              The  volume number is optional and omitting it corresponds to no
              volume change; however, the only case in which this is useful is
              in  conjunction  with  i.   For example, if input.wav is stereo,
              then

                 sox_ng input.wav output.wav remix 1,2i

              is a mono equivalent of the oops effect.

              If the -p option is given, any automatic  ^1/n  scaling  is  re-
              placed  by ^1/<sqrt>n (`power') scaling; this gives a louder mix
              but one that may occasionally clip.

              One use of the remix effect is to split an audio file into a set
              of files, each containing one of the constituent channels in or-
              der to perform subsequent processing on individual  audio  chan-
              nels.  When more than a few channels are involved, a script such
              as the following is useful:

              #! /bin/sh
              chans=`soxi_ng -c "$1"`
              while [ $chans -ge 1 ]; do
                 chans0=`printf %02i $chans`   # 2 digits hence up to 99 chans
                 out=`echo "$1"|sed "s/\(.*\)\.\(.*\)/\1-$chans0.\2/"`
                 sox_ng "$1" "$out" remix $chans
                 chans=`expr $chans - 1`
              done

              If a file input.wav containing six audio  channels  were  given,
              the  script  would  produce  six output files: input-01.wav, in-
              put-02.wav, ..., input-06.wav.

              See the swap effect.

       repeat [count(1)|-]
              Repeat the entire audio count times, or once  if  count  is  not
              given.   The  special  value - requests infinite repetition.  It
              requires temporary file space to store the audio to be repeated.
              Note  that  repeating once yields two copies: the original audio
              and the repeated audio.

       reverb [-w] [reverberance(50%) [HF-damping(50%) [room-scale(100%)
              [stereo-depth(100%) [pre-delay(0ms) [wet-gain(0dB)]]]]]]

              Add reverberation to the audio using the  `freeverb'  algorithm.
              A  reverberation effect is sometimes desirable for concert halls
              that are too small or contain so many  people  that  the  hall's
              natural  reverberance is diminished.  Applying a small amount of
              stereo reverb to a dry mono signal usually makes it  sound  more
              natural.  See [3] for a detailed description of reverberation.

              This  effect  increases the volume of the audio and continues to
              reverberate after the input finishes so, to prevent clipping and
              keep  the audible part of the final reverberation, a typical in-
              vocation might be:

                 play_ng dry.au gain -3 pad 0 1 reverb

              The -w option can be given to select only the `wet' signal, thus
              allowing  it to be processed further, independently of the `dry'
              signal.  E.g.

                 play_ng -m in.au "|sox_ng in.au -p reverse reverb -w reverse"

              for a reverse reverb effect.

       reverse
              Reverse the audio completely.  Requires temporary file space  to
              store the audio to be reversed.

       riaa   Apply  RIAA vinyl playback equalization.  The sampling rate must
              be 44.1, 48, 88.2, 96 or 192kHz.

              This effect supports the --plot global option.

       sdm [-f filter] [-t order] [-n num] [-l latency]
              Apply a 1-bit sigma-delta modulator producing DSD  output.   The
              input should be previously upsampled, e.g. with the rate effect,
              to a high rate, 2.8224MHz for DSD64.  The -f option selects  the
              noise-shaping  filter  from  the following list where the number
              indicates the order of the filter:

                                      clans-4   sdm-4
                                      clans-5   sdm-5

                                      clans-6   sdm-6
                                      clans-7   sdm-7
                                      clans-8   sdm-8

              The noise filter may be combined with a partial  trellis/viterbi
              search by supplying the following options:

              -t order
                     Trellis order, max 32.

              -n num Number of paths to consider, max 32.

              -l latency
                     Output latency, max 2048.

              The  result of using these parameters is hard to predict and can
              include high noise levels or instability.  Caution is advised.

       silence [-l] above-periods [duration threshold[d|%]]
              [below-periods duration threshold[d|%]]

              Removes silence from the beginning, middle or end of the  audio,
              where `silence' is determined by a specified threshold.

              The above-periods value is used to indicate whether audio should
              be trimmed at the beginning of the audio. A value of zero  indi-
              cates  that  no  silence should be trimmed from the beginning in
              which case duration and threshold are omitted.  When a  non-zero
              above-periods is specified, you must also specify a duration and
              threshold and it trims audio until  it  finds  non-silence.   It
              will  normally  be 1 when trimming silence from the beginning of
              the audio, but it can be increased to higher values to trim  all
              audio  up  to  the  Nth non-silence period.  For example, if you
              have an audio file with two songs that each contains  2  seconds
              of silence before the song, you could specify an above-period of
              2 to strip out both silences and the first song.

              duration indicates the amount of time for which non-silence must
              be  detected before it stops trimming the silence before it.  By
              increasing duration, short bursts of quiet noise can be  treated
              as silence and trimmed off.  duration has the peculiarity that a
              bare number is interpreted as a sample count, not as a number of
              seconds.   To  specify  seconds,  either use the t suffix (as in
              2t), a decimal point (as in 2.0) or specify minutes too  (as  in
              0:02).

              threshold  indicates  the maximum sample value in any channel is
              considered silence. For digital audio, a value of 0 may be  fine
              but  for audio recorded from analog you may wish to increase the
              value to include background noise.   threshold  numbers  may  be
              suffixed  with  d to indicate that the value is in decibels or %
              to indicate a percentage of the maximum possible  sample  value.
              By default, it is in percent.

              To trim silence from the end of the audio, specify a below-peri-
              ods count, which means to remove all audio after the last  onset
              of  silence is detected.  Normally, this will be 1 but it can be
              increased to leave shorter periods of silence and the audio that
              follows  them  intact.   For example, if you have a track with 1
              second of silence in the middle and 1 second  at  the  end,  you
              could set below-period to 2 to leave the middle silence and what
              follows it and remove from the final silence on.

              When below-periods is given, its duration specifies  the  length
              of  silence that must exist before audio is not copied any more.
              By specifying a  higher  duration,  shorter  silences  that  are
              wanted  can  be  left  in the audio.  For example, if you have a
              song with 1 second of silence in the middle and 2 seconds of si-
              lence at the end, a duration of 2 could be used to skip over the
              middle silence and trim the end  instead  of  starting  trimming
              from half way through.

              Unfortunately,  the  length  of the silence at the end has to be
              longer than any preceding silence for this to work so  you  must
              know the length of the silence at the end.

              A  more  reliable way to trim silence from the end is to use the
              silence effect in combination with the reverse effect.  By first
              reversing  the audio, you can use the above-periods to trim from
              what looks like the front of the file, then reverse it again  to
              get back to normal.

              To remove silence from the middle of a file, give a negative be-
              low-periods.  This value is then treated as positive  value  and
              is also used to indicate that the effect should restart process-
              ing as specified by the above-periods, making  it  suitable  for
              removing periods of silence in the middle of the audio.

              The -l option indicates that below-periods' duration of `silent'
              audio should be left intact at the beginning of each  period  of
              silence,  for example, if you want to remove long pauses between
              words but do not want to remove the pauses completely.

              The following example shows how this effect can be used to  make
              a  recording  that does not contain the silence that usually oc-
              curs between pressing the record button and  the  start  of  the
              performance:

                 rec_ng parameters filename other-effects silence 1 5 2%

              This  example  should  remove  the  start of the recording until
              there's a period of non-silence longer than 0.2s and louder than
              0.1%,  then  start searching for a silence that's longer than 1s
              and quieter than 3% and remove it if found, leaving the first 1s
              of  it  in  place,  then  start copying again until a silence is
              found that's longer than 1s and quieter than 3%, trim that to 1s
              and so on.

                 sox_ng in.au out.au silence -l 1 0.2 0.1% -1 1.0 3%


       sinc [-a att|-b beta] [-p phase|-M|-I|-L] [-t tbw|-n taps]
              [freqHP][-freqLP [-t tbw|-n taps]] [-r]]

              Apply  a kaiser-windowed low-pass, high-pass, band-pass or band-
              reject filter to the signal.  The freqHP and  freqLP  parameters
              give  the  frequencies of the 6dB points of a high-pass and low-
              pass filter that may be invoked individually  or  together.   If
              both are given, freqHP less than freqLP creates a band-pass fil-
              ter and freqHP greater than freqLP creates a band-reject filter.
              For example, the invocations

                 sinc 3k
                 sinc -4k
                 sinc 3k-4k
                 sinc 4k-3k

              create  a  high-pass, low-pass, band-pass and band-reject filter
              respectively.

              The default stop band attenuation of  120dB  can  be  overridden
              with -a; alternatively, the kaiser window's `beta' parameter can
              be given directly with -b.

              The default transition bandwidth of 5% of the total band can  be
              overridden with -t (and tbw in Hertz); alternatively, the number
              of filter taps can be given directly with -n and is  limited  to
              the range of 11-32767.

              If  both freqHP and freqLP are given, a -t or -n option given to
              the left of the frequencies applies to both frequencies; one  of
              these options given to the right of the frequencies applies only
              to freqLP.

              The -p, -M, -I and -L options control  the  filter's  phase  re-
              sponse; see the rate effect for details.

              The  -r option controls whether the filter should round the num-
              ber of taps to the closest integer instead of truncating it.

              This effect supports the --plot global option.

       softvol [volume(1.0) [double-time(0) [headroom(0)]]]
              The soft volume effect applies a simple multiplier to the  audio
              ensuring that it does not clip. When a sample would have clipped
              the volume multiplier is automatically reduced to compensate.

              It is a simple compander with the advantages of being very  fast
              and having no pre- or post-echo and reacts so fast that its vol-
              ume-reduction glitches don't add audible noise.

              volume sets the initial volume multiplier; the  default  of  1.0
              means no change.

              double-time  says  that  the  volume should slowly increase at a
              rate that makes it double every  double-time  seconds.   A  good
              value for usual music is 10 and the default value of 0 says that
              the volume should not increase automatically.

              headroom is in dB and limits the loudest amplitude to less  than
              the  32-bit  maximum.  This may be necessary when the final bit-
              depth reduction and/or dithering make it clip.  A value  of  0.1
              is  sufficient  to protect down to a bit-depth of 8 with dither-
              ing.

              When playing sound in interactive mode, the `v' and `V' keys re-
              duce  and  increase  the volume if there is a softvol in the ef-
              fects chain. If there are more than one, which one it adjusts is
              probably random.

       spectrogram [options]
              Create  a  spectrogram of the audio. The audio is passed unmodi-
              fied through the SoX processing chain.  This effect is  optional
              -  type sox_ng --help and check the list of supported effects to
              see if it has been included.

              The spectrogram is rendered in a Portable Network Graphic  (PNG)
              file  and  shows time in the X axis, frequency in the Y axis and
              audio signal magnitude in the Z axis, represented by  the  color
              (or  optionally  the  intensity) of the pixels in the X-Y plane.
              If the audio signal contains multiple channels, these are  shown
              from  top  to  bottom starting from channel 1, which is the left
              channel for stereo audio.

              For example, if `my.wav' is a stereo file, then

                 sox_ng my.wav -n spectrogram

              creates a spectrogram of the entire file in the  file  `spectro-
              gram.png'.   More often though, analysis of a smaller portion of
              the audio is required; e.g. with

                 sox_ng my.wav -n remix 2 trim 20 30 spectrogram

              the spectrogram shows information only from the  second  (right)
              channel  of thirty seconds of audio starting from twenty seconds
              in.  To analyze a small portion of  the  frequency  domain,  the
              rate effect may be used, e.g.

                 sox_ng my.wav -n rate 6k spectrogram

              allows  detailed  analysis  of  frequencies up to 3kHz (half the
              sampling rate) i.e. where the human auditory system is most sen-
              sitive.  See also the -R option below. With

                 sox_ng my.wav -n trim 0 10 spectrogram -x 600 -y 200 -z 100

              the given options control the size of the spectrogram's X, Y & Z
              axes (in this case, the spectrogram area of the  produced  image
              will  be  600 by 200 pixels in size and the Z axis range will be
              100 dB).  Note that the produced  image  includes  axes  legends
              etc.  and so will be a little larger than the specified spectro-
              gram size unless the -r option is given.  In this example

                 sox_ng -n -n synth 6 tri 10k:14k spectrogram -z 100 -w kaiser

              an analysis window with high dynamic range is selected  to  best
              display the spectrogram of a swept triangular wave.  For a simi-
              lar example, append the following to the `chime' command in  the
              description of the delay effect (above):

                 rate 2k spectrogram -X 200 -Z -10 -w kaiser

              Options are also available to control the appearance (color set,
              brightness, contrast etc.) and filename of the spectrogram; e.g.
              with

                 sox_ng my.wav -n spectrogram -m -l -o print.png

              a  spectrogram  is  created suitable for printing on a black and
              white printer.

              Options

              -x num Change the (maximum) width (X axis)  of  the  spectrogram
                     from  its  default  value of 800 pixels to a given number
                     between 100 and a million.  See -X and -d.

              -X num X axis pixels per second; the default is  auto-calculated
                     to  fit  the  audio to the X axis size if its duration is
                     known or given with -d, or 100 otherwise.   If  given  in
                     conjunction with -d, this option affects the width of the
                     spectrogram; otherwise, it affects the  duration  of  the
                     spectrogram.   num can be from 1 (low time resolution) to
                     5000 (high time resolution) and need not be  an  integer.
                     SoX  may make a slight adjustment to the given number for
                     processing quantization reasons; if so, SoX  reports  the
                     actual  number  used (viewable when the SoX global option
                     -V is in effect).

              -y num Sets the size of the Y axis per channel in  pixels;  this
                     is  the  number  of  frequency `bins' used in the Fourier
                     analysis that produces the spectrogram.  By default the Y
                     axis  size is chosen automatically, depending on the num-
                     ber of channels.  See -Y for an alternative way  of  set-
                     ting the spectrogram height.

              -Y num Sets  the target total height of the spectrogram(s).  The
                     default value is 550 pixels and the maximum is a million.
                     Using  this  option, and by default, SoX chooses a height
                     for individual spectrogram channels that is one more than
                     a power of two, so the actual total height may fall short
                     of the given number or be larger.  However, there is also
                     a  minimum  height of 64 per channel so if there are many
                     channels, the number may be exceeded.  See -y for  alter-
                     native way of setting spectrogram height.

              -z num Z  axis  (color) range in dB, default 120.  This sets the
                     dynamic range of  the  spectrogram  to  be  -num dBFS  to
                     0 dBFS.   Num  may  range from 20 to 180.  Decreasing dy-
                     namic range effectively increases  the  contrast  of  the
                     spectrogram display and vice versa.

              -Z num Sets  the  upper limit of the Z axis in dBFS.  A negative
                     num effectively increases the brightness of the  spectro-
                     gram display and vice versa.

              -n     Normalizes  the  upper  limit  of  the Z axis so that the
                     loudest pixels are shown using the brightest color in the
                     palette - a kind of automatic -Z flag.

              -q num Sets  the Z axis quantization, i.e. the number of differ-
                     ent colors (or intensities) in which  to  render  Z  axis
                     values.   A small number (e.g. 4) gives a poster-like ef-
                     fect making it easier to discern magnitude bands of simi-
                     lar  level and results in a smaller PNG file.  The number
                     given specifies the number of colors to use in the Z axis
                     range;  two colors are reserved to represent out-of-range
                     values.

              -w name
                     Select a window function: Hann  (the  default),  Hamming,
                     Bartlett,  Rectangular, Kaiser or Dolph.  The spectrogram
                     is produced using the Discrete  Fourier  Transform  (DFT)
                     algorithm  and  a significant parameter of this algorithm
                     is the choice of window function.  By default,  SoX  uses
                     the  Hann window, which has good all-round properties for
                     frequency resolution and dynamic range.  For better  fre-
                     quency  resolution but lower dynamic range, select a Ham-
                     ming window; for higher dynamic  range  but  poorer  fre-
                     quency resolution, select a Dolph window.

              -W num Window  adjustment  parameter.   This can be used to make
                     small adjustments to the Kaiser  and  Dolph  windows.   A
                     positive  number (up to ten) increases its dynamic range,
                     a negative number decreases it.

              -s     Allow slack overlapping of DFT  windows.   This  can,  in
                     some cases, increase image sharpness and give greater ad-
                     herence to the -x value but at the expense  of  a  little
                     spectral loss.

              -m     Creates a monochrome spectrogram (the default is color).

              -h     Selects  a  high-color  palette  which  is  less visually
                     pleasing than the default color palette but it  may  make
                     it easier to differentiate different levels.  If this op-
                     tion is used in conjunction with -m, the result is hybrid
                     monochrome/color palette.

              -p num Permute the colors in a color or hybrid palette.  The num
                     parameter, from 1 (the default) to 6, selects the  permu-
                     tation.

              -l     Creates  a  `printer-friendly'  spectrogram  with a light
                     background (the default has a dark background).

              -a     Suppress the display of the axis lines.   This  is  some-
                     times useful in helping to discern artefacts at the spec-
                     trogram edges.

              -r     Raw spectrogram: suppress the display of  axes  and  leg-
                     ends.

              -A     Selects an alternative, fixed color set. This is provided
                     only for compatibility with spectrograms produced by  an-
                     other  package.  It should not normally be used as it has
                     some problems, not least, a lack  of  differentiation  at
                     the  bottom  end  which  results  in masking of low-level
                     artefacts.

              -t text
                     Set the image title, the text to display above the  spec-
                     trogram.  If you need it to be `chorus' or some other ef-
                     fect's name, surround it by spaces inside double quotes.

              -c text
                     Set (or clear) the image comment, the text to display be-
                     low and to the left of the spectrogram.

              -o file
                     The  name  of  the  spectrogram  output PNG file, default
                     `spectrogram.png'.  If `-' is given, the  spectrogram  is
                     sent to the `standard output' (stdout).

              -L     Plot the frequency on a logarithmic axis.

              -R L:H Specify  the frequency range (from L to H).  The frequen-
                     cies can have an optional suffix

                        sox_ng mymusic.mp3 -n spectrogram -L -R 100:8k

                     By default, the lowest frequency  is  0Hz  for  a  linear
                     graph  or  1Hz for a logarithmic graph and the highest is
                     the Nyquist frequency.

              Advanced Options
              In order to process a smaller section of audio without affecting
              other  effects or the output signal (unlike when the trim effect
              is used), the following options may be used:

              -d duration
                     This option sets the X axis resolution  such  that  audio
                     with  the  given duration (a time specification) fits the
                     selected (or default) X axis width.  For example,

                        sox_ng input.mp3 output.wav -n spectrogram -d 1:00 stats

                     creates a spectrogram showing the first minute of the au-
                     dio,  while the stats effect is applied to the entire au-
                     dio signal.

                     See -X for an alternative way of setting the X axis reso-
                     lution.

              -S position(=)
                     Start  the  spectrogram  at  the given point in the audio
                     stream.  For example

                        sox_ng input.aiff output.wav spectrogram -S 1:00

                     creates a spectrogram showing all but the first minute of
                     the  audio (the output file, however, receives the entire
                     audio stream).

              For the ability to perform off-line processing of spectral data,
              see stat -freq.

       speed factor[c]
              Adjust  the  audio  speed (pitch and tempo together).  factor is
              either the ratio of the new speed to the old speed (greater than
              1  speeds  it up, less than 1 slows it down) or, if the letter c
              is appended, it's the number of cents (100ths of a semitone)  by
              which  the  pitch (and tempo) should be adjusted: greater than 0
              increases, less than 0 decreases.

              Technically, the speed effect only changes the sample  rate  in-
              formation,  leaving  the  samples themselves untouched. The rate
              effect is invoked automatically to resample to the output sample
              rate,  using  its  default quality/speed.  For higher quality or
              higher speed resampling, in addition to the speed effect,  spec-
              ify the rate effect with the desired quality option.

              See the bend, pitch and tempo effects.

       speexdsp [-agc [target_level(100)]] [-denoise [max_db(15)]] [-dereverb]
              [-fps frames_per_second(20)] [-spf samples_per_frame]

              Use the Speex DSP library to improve perceived sound quality.

              If  no options are specified, the -agc and -denoise features are
              enabled.

              -agc [target_level]
                     Enable automatic gain control and  optionally  specify  a
                     target volume level from 1 to 100.

              -denoise [max_db]
                     Enable noise reduction and optionally specify the maximum
                     attenuation.

              -dereverb
                     Enable reverb reduction.

              -fps frames_per_second
                     Specify the number of frames per second from 1-100.

              -spf samples_per_frame
                     Specify the number of samples per frame.  The default  is
                     derived  from the -fps setting so that frames abut but do
                     not overlap.

       splice  [-h|-t|-q] {position(=)[,excess[,leeway]]}
              Splice audio sections together.  This effect provides two things
              over simple audio concatenation: a (usually short) cross-fade is
              applied at the join and a wave similarity comparison is made  to
              help determine the best place at which to make the join.

              One of the options -h, -t, or -q may be given to select the fade
              envelope as half cosine wave (the default),  triangular  (a.k.a.
              linear), or quarter cosine wave (e.g. for a cross-fade of corre-
              lated audio).

                           Audio          Fade level       Transitions
                      -h   correlated     constant gain    smooth
                      -t   correlated     constant gain    abrupt
                      -q   uncorrelated   constant power   smooth

              To perform a splice, first use the trim effect to select the au-
              dio  sections  to be joined together.  As when performing a tape
              splice, the end of the section to  be  spliced  onto  should  be
              trimmed  with  a  small excess (default 0.005 seconds) after the
              ideal joining point.  The beginning  of  the  audio  section  to
              splice  on  should  be  trimmed  with the same excess before the
              ideal joining point plus an  additional  leeway  (default  0.005
              seconds).   SoX  should  then be invoked with the two audio sec-
              tions as input files and the splice effect given with the  posi-
              tion  at  which  to  perform  the splice - this is length of the
              first audio section (including the excess).

              The following diagram uses the tape analogy  to  illustrate  the
              splice  operation.   The  effect simulates the diagonal cuts and
              joins the two pieces:

                    length1   excess
                  -----------><--->
                  _________   :   :  _________________
                           \  :   : :\     `
                            \ :   : : \     `
                             \:   : :  \     `
                              *   : :   * - - *
                               \  : :   :\     `
                                \ : :   : \     `
                  _______________\: :   :  \_____`____
                                    :   :   :     :
                                    <--->   <----->
                                    excess  leeway

              where * indicates the joining points.

              For example, a long song begins with two verses which start  (as
              determined  e.g.  by  using  the  play_ng  command with the trim
              (start) effect) at times 0:30.125 and 1:03.432.   The  following
              commands cut out the first verse:

                 sox_ng too-long.wav part1.wav trim 0 30.130

              (5 ms excess, after the first verse starts)

                 sox_ng too-long.wav part2.wav trim 1:03.422

              (5 ms excess plus 5 ms leeway, before the second verse starts)

                 sox_ng part1.wav part2.wav just-right.wav splice 30.130

              For another example, the SoX command

                 play_ng "|sox_ng -n -p synth 1 sin %1" "|sox_ng -n -p synth 1 sin %3"

              generates and plays two notes, but there is a nasty click at the
              transition; the click can be removed by splicing instead of con-
              catenating the audio, i.e. by appending splice 1 to the command.
              Clicks at the beginning and end of the audio can be  removed  by
              preceding the splice effect with fade q .01 2 .01.

              Provided your arithmetic is good enough, multiple splices can be
              performed with a single splice invocation.  For example, with  a
              Bourne shell script `acpo':

              #! /bin/sh
              # Audio Copy and Paste Over
              # acpo infile copy-start copy-stop paste-over-start outfile
              # No chained time specifications allowed for the parameters
              # (i.e. such that contain +/-).
              e=0.005                      # Using default excess
              l=$e                         # and leeway.
              sox_ng "$1" piece.wav trim $2-$e-$l =$3+$e
              sox_ng "$1" part1.wav trim 0 $4+$e
              sox_ng "$1" part2.wav trim $4+$3-$2-$e-$l
              sox_ng part1.wav piece.wav part2.wav "$5" \
                 splice $4+$e +$3-$2+$e+$l+$e

              two splices are used to `copy and paste' audio.

              It is also possible to use this effect to perform general cross-
              fades, e.g. to join two songs.  In this case, excess would typi-
              cally  be  a number of seconds, the -q option would typically be
              given to select an `equal power' cross-fade and leeway should be
              zero  (which  is  the  default if -q is given).  For example, if
              f1.wav and f2.wav are audio files to be cross-faded, then

                 sox_ng f1.wav f2.wav out.wav splice -q $(soxi_ng -D f1.wav),3

              cross-fades the files where the point of  equal  loudness  is  3
              seconds  before  the end of f1.wav, i.e. the total length of the
              cross-fade is 2 x 3 = 6 seconds ($(...) is POSIX shell  notation
              that is replaced by the output of the enclosed command).

       stat [-s scale] [-rms] [-freq] [-v] [-d]
              Display  time and frequency domain statistical information about
              the audio.  Audio is passed unmodified through the SoX  process-
              ing chain.

              The  information  is  output  to  the  `standard error' (stderr)
              stream and is calculated (where n is the duration of  the  audio
              in  samples,  c  is the number of audio channels, r is the audio
              sample rate and xk represents the value (in the range -1 to  +1)
              of each successive sample in the audio), as follows:

              Samples read        nxc
              Length (seconds)    n/r
              Scaled by           See -s below.
              Maximum amplitude   max(xk)  The maximum sample value in the au-
                                  dio; usually this will be a positive number.
              Minimum amplitude   min(xk) The minimum sample value in the  au-
                                  dio; usually this will be a negative number.
              Midline amplitude   1/2min(xk)+1/2max(xk)
              Mean norm           ^1/n<Sigma>|xk|  The average of the absolute
                                  value of each sample in the audio.
              Mean amplitude      ^1/n<Sigma>xk The average of each sample  in
                                  the audio.  If this figure is non-zero, then
                                  it indicates the presence of a  D.C.  offset
                                  which could be removed using the dcshift ef-
                                  fect.
              RMS amplitude       <sqrt>(^1/n<Sigma>xk^2) The level of a  D.C.
                                  signal that would have the same power as the
                                  audio's average power.
              Maximum delta       max(|xk-xk-1|)
              Minimum delta       min(|xk-xk-1|)
              Mean delta          ^1/n-1<Sigma>|xk-xk-1|
              RMS delta           <sqrt>(^1/n-1<Sigma>(xk-xk-1)^2)
              Rough frequency     In Hz.
              Volume Adjustment   The parameter to the vol effect which  would
                                  make  the  audio as loud as possible without
                                  clipping.  Note: See the discussion on Clip-
                                  ping  above  for  reasons why it is rarely a
                                  good idea actually to do this.

              Note that the delta measurements are not  applicable  to  multi-
              channel audio.

              The  -s  option  can  be used to scale the input data by a given
              factor.  The default value of scale is 2147483647 (i.e. the max-
              imum value of a 32-bit signed integer).  Internal effects always
              work with signed long PCM data and so the value should relate to
              this fact.

              The  -rms  option  converts  all  average  values  to `root mean
              square' format.

              The -v option displays only the `Volume Adjustment' value.

              The  -freq  option  outputs  the  input's  power   spectrum   (a
              4096-point  DFT)  instead  of the statistics listed above.  This
              should only be used with a single-channel audio file.

              The -d option displays a hex dump of the 32-bit signed PCM  data
              audio  in  SoX's  internal  buffer.  This is mainly used to help
              track down endian problems that sometimes occur  in  cross-plat-
              form versions of SoX.

              The  -a option outputs the average power spectrum instead of the
              power spectrum for each 4096-point DFT.

              See the stats effect.

       stats [-b bits|-x bits|-s scale] [-w window-time]
              Display time domain  statistical  information  about  the  audio
              channels;  audio is passed unmodified through the SoX processing
              chain.  Statistics are calculated and displayed for  each  audio
              channel and, where applicable, an overall figure is also given.

              For example, for a typical well-mastered stereo music file:

                                   Overall     Left      Right
                      DC offset   0.000803 -0.000391  0.000803
                      Min level  -0.750977 -0.750977 -0.653412
                      Max level   0.708801  0.708801  0.653534
                      Pk lev dB      -2.49     -2.49     -3.69
                      RMS lev dB    -19.41    -19.13    -19.71
                      RMS Pk dB     -13.82    -13.82    -14.38
                      RMS Tr dB     -85.25    -85.25    -82.66
                      Crest factor       -      6.79      6.32
                      Flat factor     0.00      0.00      0.00
                      Pk count           2         2         2
                      Bit-depth      16/16     16/16     16/16
                      Num samples    7.72M
                      Length s     174.973
                      Scale max   1.000000
                      Window s       0.050

              DC offset,  Min level,  and  Max level are shown, by default, in
              the range +-1.  If the -b (bits) options is given,  these  three
              measurements  are scaled to a signed integer with the given num-
              ber of bits from 2 to 32.  For example, for 16 bits,  the  scale
              would  be  -32768 to +32767.  The -x option behaves the same way
              as -b except that the signed integer  values  are  displayed  in
              hexadecimal.   The  -s option scales the three measurements by a
              given floating point number.

              Pk lev dB and RMS lev dB are the standard peak  and  RMS  levels
              measured  in  dBFS.  RMS Pk dB and RMS Tr dB are peak and trough
              values of the RMS level measured over a short  window  (default:
              50ms).   That  can be changed with the -w option in seconds from
              0.01 to 10.

              Crest factor is the ratio of peak to RMS  level  (note:  not  in
              dB).

              Flat factor  is a measure of the flatness (i.e. consecutive sam-
              ples with the same value) of the signal at its peak levels (i.e.
              either Min level or Max level).

              Pk count  is the number of occasions (not the number of samples)
              that the signal attained either Min level,  or  Max level.   The
              primary  goal  of the Peak Count value is to answer the question
              "has this audio been clipped?", quite possibly as  a  result  of
              the frowned-upon-by-some but common practice of 'brick wall lim-
              iting' in modern mastering. The closer the "Peak Count" is to 1,
              the higher the confidence that the audio has not been clipped.

              The  right-hand  Bit-depth  figure is the standard definition of
              bit-depth, i.e. that all bits other than this number of the most
              significant  bits  are always zero.  The left-hand figure is the
              number of bits at the least significant end of those  most  sig-
              nificant  bits  that would be sufficient to represent all sample
              values accurately (including the sign bit).

              In mathematical terms, the right-hand  figure  is  the  ordinal,
              counting from the most significant bit, of the least significant
              bit that is set to one in at least one  sample.   The  left-hand
              figure  is  the ordinal, counting from the least significant re-
              peated sign bit across all samples, of the least significant bit
              that is set to one in at least one sample.

              Bit-depths  are  not intended to be properties of the signal per
              se but properties of its 2's-complement PCM encoding.

              The primary use case of bit-depth measurement concerns manipula-
              tion  of  PCM  audio by simple bit shifting, to answer questions
              such as: "Is it likely that this 24-bit PCM file was created  by
              simply  converting a 16-bit PCM file to 24-bit?" or "Can I loss-
              lessly shift all the samples in this PCM audio file m-bits  left
              or n-bits right?"

              For  multichannel audio, an overall figure for each of the above
              measurements is given and derived from the  channel  figures  as
              follows:  DC offset:  maximum  magnitude;  Max level, Pk lev dB,
              RMS Pk dB, Bit-depth: maximum;  Min level,  RMS Tr dB:  minimum;
              RMS lev dB,  Flat factor,  Pk count:  average; Crest factor: not
              applicable.

              Length s is the duration in seconds of  the  audio  and,  unlike
              stat,  Num samples  is  equal  to  the sample rate multiplied by
              Length.  Scale max is the scaling applied  to  the  first  three
              measurements;  specifically,  it is the maximum value that could
              apply to Max level.  Window s is the length of the  window  used
              for the peak and trough RMS measurements.

              See the stat effect.

       stretch [factor [window [fade [shift [fading]]]]]
              Change  the audio duration but not its pitch by cross-fading be-
              tween short windows of samples.  This effect is broadly  equiva-
              lent  to the tempo effect with factor inverted and search set to
              zero so, in general, its results are comparatively poor;  it  is
              retained as it can sometimes outperform tempo for small factors.

              factor  determines  the  change  in  length: >1 lengthens and <1
              shortens.  By default, it is 1 (no change)

              window is the length of the cross-fading window in  milliseconds
              with a default of 20.

              The fade option can only be l for linear.

              The  shift  ratio  can be from 0 to 1 and its default depends on
              the stretch factor.  Its default is 1 when speeding up, 0.8 when
              slowing down.

              The  fading  ratio,  from 0 to 0.5, seems to be how much of each
              window is cross-faded with the adjacent ones.  The default value
              depends on 0t.

              The duration of stretch's output is slightly longer than the du-
              ration of the input multiplied by factor as it has to empty  the
              delay line it uses; tempo is more precise.

       swap   Swap  stereo  channels.   If  the  input is not stereo, pairs of
              channels are swapped and a possible odd last channel  is  passed
              through.   E.g., for seven channels, the output order will be 2,
              1, 4, 3, 6, 5, 7.

              See remix for an effect that allows arbitrary channel selection,
              ordering and mixing.

       synth [-j key] [-n] [length [offset [phase [p1 [p2 [p3]]]]]]
              {type [combine [fixed[,extra[,mix]]]] [freq[:|+|/|-freq2]]
              [offset [phase [p1 [p2 [p3]]]]]}

              synth generates fixed or swept frequency audio tones with  vari-
              ous wave shapes and wide-band noise of various colors.  Multiple
              synth effects can be cascaded to produce more complex  waveforms
              and at each stage it is possible to choose whether the generated
              waveform is mixed with or modulated onto the output of the  pre-
              vious  stage,  and  the audio for each channel in a multichannel
              audio file can be synthesized independently.

              It generates audio at maximum volume (0dBFS), which  means  that
              there  is  a high chance of clipping so, in many cases, you will
              want to follow it with the gain effect to prevent this from hap-
              pening. (See Clipping above.)

              Though this effect is used to generate audio, an input file must
              still be given, the characteristics of which are used to set the
              synthesized  audio  length,  the number of channels and the sam-
              pling rate.  However, since the input file's audio is  not  nor-
              mally needed, a `null file' (with the special input filename -n)
              is often given instead and the length specified as  a  parameter
              to synth or by some other effect that has an associated length.

              By default, the tuning used with note notations is equal temper-
              ament; the -j key option selects just intonation, where key is a
              whole number of semitones relative to A (so for example, -9 or 3
              selects the key of C) or a note in scientific notation.  ,SP  By
              default, the synth effect incorporates the functionality of gain
              -h (see the gain effect for details); synth's -n option  may  be
              given to disable this behaviour.

              length is the length of audio to synthesize.  A value of 0 indi-
              cated to use the input length, which is also the default.   Note
              that,  if the input is -n and the length is 0 or absent, it con-
              tinues generating audio until it is stopped in some other way.

              type is one of

              sine   A sinusoidal wave is the default type and ignores all the
                     p parameters.

              square A square wave.  p1 sets the percentage of each cycle that
                     is `on' with a default of 50.

                       |_______        | +1
                       |       |       |
                       |_______|_______|  0
                       |       |       |
                       |       |_______| -1
                       |               |
                       0       p1      1


              triangle
                     p1 sets the percentage of each  cycle  that  is  `rising'
                     with a default of 50.

                       |    .    | +1
                       |   / \   |
                       |__/___\__|  0
                       | /     \ |
                       |/       \| -1
                       |         |
                       0    p1   1


              sawtooth
                     A  sawtooth  wave.  With a phase of 0 it starts at -1 and
                     rises to 1, and of 10 it  starts  at  -0.9.   The  offset
                     makes no difference.

                       |           __| +1
                       |        __/  |
                       |_______/_____|  0
                       |  __/        |
                       |_/           | -1
                       |             |
                       0             1


              trapezium
                     The  trapezoidal  wave starts at -1, rises linearly to 1,
                     stays there, falls linearly to -1, stays  there  and  re-
                     peats.   p1 sets the percentage of the cycle in which the
                     wave is rising with a default of 10, p2 sets the percent-
                     age through each cycle at which falling begins with a de-
                     fault of 50 and p3 sets the percentage through each cycle
                     at which falling ends with a default of 60.

                       |    ______             |+1
                       |   /      \            |
                       |__/________\___________| 0
                       | /          \          |
                       |/            \_________|-1
                       |                       |
                       0   p1    p2   p3       1


              exp    The  exponential  wave  rises from -1 to 1 where it peaks
                     and immediately begins an exponential fall.  p1 sets  the
                     position  of  the  maximum with a default of 50.  p2 sets
                     the minimum amplitude in multiples of 2dB down  from  the
                     maximum  with  a  default  of 50 (100dB); values below 50
                     raise the shoulders of the wave and values above 50 lower
                     the shoulders, increasing the pointedness of the spike.

                       |             |              | +1
                       |            | |             |
                       |          _|   |_           | 0
                       |       __-       -__        |
                       |____---             ---____ | f(p2)
                       |                            |
                       0             p1             1


              whitenoise
                     Random  noise  with  equal power at every frequency.  All
                     noise generators ignore the frequency and  phase  parame-
                     ters  but if a DC offset is given, the signal's amplitude
                     is automatically adjusted to  prevent  clipping,  so  for
                     noise  in the range 0 to 1, an offset of 0.5.  noise is a
                     handy alias for whitenoise

              tpdfnoise
                     Noise with a Triangular Probability Density Function.

              pinknoise
                     Random noise with the power at each  frequency  inversely
                     proportional to the frequency.

              brownnoise
                     Random  noise  with the power at each frequency inversely
                     proportional to the frequency squared.

              pluck  A plucked string simulation in which an array  of  sample
                     values representing a taut string is set in motion with a
                     burst of noise and decayed over time.

                     A plucked note's frequency can be from 27.5 to 4220Hz and
                     the sampling rate must be between 44100 and 48000Hz.

                     If  a  DC  offset is used, the amplitude is automatically
                     adjusted to prevent clipping.

                     p1 affects the sustain with a default of 40 (2dB per sec-
                     ond);  higher values give a slower decay and lower values
                     a faster one.

                     p2 and p3 are tone controls for the  initial  excitation,
                     with a special case when p3 is exactly 100.  If the phase
                     is non-zero, it uses a different kind of random numbers.

              If the offset, phase and p parameters are given before the first
              type, they set the default values for all the following stages.

              combine is one of

              create Puts  each  stage's output in a new output channel and is
                     the default:

              mix    Mixes the generated audio 50:50 with the input signal.

              amod   Amplitude-modulates (multiplies) the input signal by  the
                     synthesized  one  considered  as  a value from 0 (for the
                     most negative value) to 1 (for the most positive value).

              fmod   Multiplies the input  signal  with  the  synthesized  one
                     (ring modulation).

              vdelay Mixes the input signal with a delayed version of it using
                     the synthesized signal to modulate the depth of  the  de-
                     lay.  The following three-part option specifies the fixed
                     and additional parts of the delay in milliseconds and the
                     percentage of the delayed signal in the output from 0 for
                     all input signal to 100 for all delayed signal with a de-
                     fault of half and half.

                     The  synthesized  signal's value from -1 to +1 varies the
                     delay from fixed seconds to fixed + (0 to extra) seconds.
                     depth  controls the proportion of the delayed signal that
                     is mixed with the original, ranging from 0 to  1  with  a
                     default of 1.

                     It  interpolates  linearly  between the input samples and
                     can be used to make precision phaser, flanger and chorus-
                     like  effects, vibrato and frequency modulation (FM) syn-
                     thesis (actually phase modulation, as used in the  Yamaha
                     DX7).

                     A chorus-like effect:

                        sox_ng solo.au -d synth sine vdelay -V 0.050 .25 0 75

                     A flanger:

                        sox_ng solo.au -d synth triangle vdelay -V 0,0.002,.71 0.5 0 0


              freq  and  freq2 are the frequencies at the beginning and end of
              the synthesis and the default frequency is 440Hz.

              If freq2 is given, length must also have been given and the gen-
              erated  tone  is  swept  between the given frequencies.  The two
              given frequencies must be separated by  one  of  the  characters
              `:',  `+', `/' and `-', which specify the sweep function as fol-
              lows:

              :      Linear: the tone changes by a fixed number of  hertz  per
                     second.

              +      Square:  a  second-order  function  is used to change the
                     tone.

              /      Exponential: the tone changes by a fixed number of  semi-
                     tones per second.

              -      Exponential:  as `/', but the initial phase is always ze-
                     ro, and with stepped (less smooth) frequency changes.

              The frequency or frequency range  is  not  used  for  the  noise
              types.

              offset  is  the  bias  (DC offset) of the signal in percent; de-
              fault=0.

              phase is the phase shift as a percentage of 1 cycle with  a  de-
              fault of 0 (not used for noise).

              For  example, the following produces a 3-second 48kHz audio file
              containing a sine wave swept from 300 to 3300Hz:

                 sox_ng -n output.wav synth 3 sine 300-3300

              Multiple channels can be synthesized by specifying  the  set  of
              parameters  shown  between curly braces multiple times; the fol-
              lowing puts the swept tone in the left channel and  brown  noise
              in the right:

                 sox_ng -n output.wav synth 3 sine 300-3300 brownnoise

              The following example shows how two synth effects can be cascad-
              ed to create a more complex waveform:

                 play_ng -n synth 0.5 sine 200-500 synth 0.5 sine fmod 700-100

              The following could be used to help tune a guitar:

                 for n in E2 A2 D3 G3 B3 E4; do
                   play_ng -n synth 4 pluck $n repeat 2; done


       tempo [-q] [-m|-s|-l] factor [segment [search [overlap]]]
              Change the audio playback speed but not its pitch.  This  effect
              uses  the WSOLA (Waveform Similarity OverLap and Add) algorithm.
              The audio is chopped up into segments which are then shifted  in
              the  time  domain  and  overlapped (cross-faded) at points where
              their waveforms are most similar as determined by  the  measure-
              ment of `least squares'.

              By  default,  linear searches are used to find the best overlap-
              ping points. If the optional -q parameter is given, tree search-
              es  are  used  instead. This makes the effect work more quickly,
              but the result may not sound as good. However, if you  must  im-
              prove  the  processing  speed,  this generally reduces the sound
              quality less than reducing the search or overlap values.

              The -m option is used to optimize the default values of segment,
              search and overlap for music processing.

              The  -s  option  is  used to optimize default values of segment,
              search and overlap for speech processing.

              The -l option is used to optimize  default  values  of  segment,
              search  and  overlap for `linear' processing that tends to cause
              more noticeable distortion but may  be  useful  when  factor  is
              close to 1.

              If  -m,  -s  or -l is specified, the default value of segment is
              based on factor, while default search  and  overlap  values  are
              based on segment.  Any values you provide override these default
              values.

              factor gives the ratio of new tempo to the  old  tempo,  so  1.1
              speeds the tempo up by 10% and 0.9 slows it down by 10%.

              The  optional  segment parameter selects the algorithm's segment
              size in milliseconds.  If no other flags are specified, the  de-
              fault value is 82, which is suited to small changes in the tempo
              of music. For larger changes (e.g. a factor of 2), 41 may give a
              better result.  The -m, -s, and -l flags cause segment's default
              value to be adjusted automatically based on factor.

              The optional search parameter gives the  audio  length  in  mil-
              liseconds  over  which  the  algorithm  searches for overlapping
              points.  If no other flags are specified, the default  value  is
              14.68.   Larger  values  use more processing time and may or may
              not produce better results.  A practical  maximum  is  half  the
              value  of  segment. Search can be reduced to cut processing time
              at the risk of degrading output quality. The -m, -s and -l flags
              cause  the  search default to be adjusted automatically based on
              segment.

              The optional overlap parameter gives the segment overlap  length
              in  milliseconds.  Its default value is 12 but the -m, -s and -l
              flags automatically adjust it based on the  segment  size.   In-
              creasing  overlap  increases  processing  time  but may increase
              quality.  A practical maximum for overlap is a little less  then
              search.

              See  speed  for an effect that changes tempo and pitch together,
              pitch and bend for effects that change pitch  only  and  stretch
              for  an  effect  that  changes the tempo using a different algo-
              rithm.

       treble gain [frequency [width[s|h|k|o|q]]]
              Apply a treble tone control effect.  See the description of  the
              bass effect for details.

       tremolo speed [depth]
              Apply  a tremolo (low frequency sinusoidal amplitude modulation)
              effect to the audio.  The frequency of the tremolo in Hz is giv-
              en by speed and its depth is a percentage with a default of 40.

       trim {position(+)}
              Cuts  out portions of the audio.  Any number of positions may be
              given; audio is not sent to the output until the first  position
              is reached.  The effect then alternates between copying and dis-
              carding audio at each position.  Using a  value  of  0  for  the
              first  position  parameter  allows copying from the beginning of
              the audio.

              For example,

                 sox_ng in.au out.au trim 0 10

              copies the first ten seconds, while

                 play_ng in.au trim 12:34 =15:00 -2:00

              and

                 play_ng in.au trim 12:34 2:26 -2:00

              both play from 12 minutes 34 seconds into the  audio  up  to  15
              minutes  in  (i.e.  2  minutes  and 26 seconds long) then resume
              playing two minutes before the end.

       upsample [factor]
              Upsample the signal by an integer factor:  factor-1  zero-valued
              samples  are  inserted between each pair of input samples.  As a
              result, the original spectrum is replicated into  the  new  fre-
              quency space and attenuated.  This attenuation can be compensat-
              ed for by adding vol factor.  The upsample effect  is  typically
              used in combination with filtering effects.

              For  a  general  resampling  effect with antialiasing, see rate.
              See downsample.

       vad [options]
              The Voice Activity Detector attempts to trim silence  and  quiet
              background  sounds from the ends of (fairly high resolution i.e.
              16-bit, 44-48kHz) recordings of speech.  The algorithm currently
              uses a simple cepstral power measurement to detect voice, so may
              be fooled by other things, especially  music.   The  effect  can
              trim  only from the front of the audio, so in order to trim from
              the back, the reverse effect must also be used.  E.g.

                 play_ng speech.wav norm vad

              to trim from the front,

                 play_ng speech.wav norm reverse vad reverse

              to trim from the back and

                 play_ng speech.wav norm vad reverse vad reverse

              to trim from both ends.  The use of the norm  effect  is  recom-
              mended,  but  remember that neither reverse nor norm is suitable
              for use with streamed audio.

              Options
              Default values are shown in parentheses, the  allowed  range  in
              square brackets.

              -t num (7) [0 - 20]
                     The measurement level used to trigger activity detection.
                     This might need to be changed depending on the noise lev-
                     el,  signal  level and other characteristics of the input
                     audio.

              -T num (0.25) [0.01 - 1]
                     The time constant (in seconds) used to help ignore  short
                     bursts of sound.

              -s num (1) [0.1 - 4]
                     The  amount  of  audio  (in  seconds)  to search for qui-
                     eter/shorter bursts of audio to include prior to the  de-
                     tected trigger point.

              -g num (0.25) [0.1 - 1]
                     Allowed  gap  (in seconds) between quieter/shorter bursts
                     of audio to include prior to the detected trigger point.

              -p num (0) [0 - 4]
                     The amount of audio (in seconds) to preserve  before  the
                     trigger point and any found quieter/shorter bursts.

              Advanced Options
              These allow fine tuning of the algorithm's internal parameters.

              -b num (0.35) [0.1 - 10]
                     The algorithm uses adaptive noise estimation/reduction in
                     order to detect the start of the wanted audio.  This  op-
                     tion sets the time in seconds for the initial noise esti-
                     mate.

              -N num (0.1) [0.1 - 10]
                     Time constant used by the adaptive noise  estimator  when
                     the noise level is increasing.

              -n num (0.01) [0.001 - 0.1]
                     Time  constant  used by the adaptive noise estimator when
                     the noise level is decreasing.

              -r num (1.35) [0 - 2]
                     Amount of noise reduction to use in the  detection  algo-
                     rithm.

              -f num (20) [5 - 50]
                     Frequency of the algorithm's processing/measurements.

              -m num (0.1) [0.01 - 1]
                     Measurement  duration.  By  default, it is twice the mea-
                     surement period; i.e. with 50% overlap, but  if  you  set
                     -f,  you also need to change -m to 2 divided by its value
                     to keep a 50% overlap.

              -M num (0.4) [0-1 - 1]
                     Time constant used to smooth spectral measurements.

              -h num (50) [10 -]
                     `Brick-wall' frequency of the high-pass filter applied at
                     the detector algorithm's input.

              -l num (6000) [1000 -]
                     `Brick-wall'  frequency of the low-pass filter applied at
                     the detector algorithm's input.

              -H num (150) [10 -]
                     `Brick-wall' frequency of the high-pass  lifter  used  in
                     the detector algorithm.

              -L num (2000) [1000 -]
                     `Brick-wall' frequency of the low-pass lifter used in the
                     detector algorithm.

              See the silence effect.

       vol gain [type [limiter-gain]]
              Apply amplification or attenuation to the audio signal.   Unlike
              -v, which is used for balancing multiple input files as they en-
              ter the SoX effects processing chain, vol is an effect like  any
              other  so  can  be  applied anywhere in the processing chain and
              several times if necessary.

              The amount to change the volume is given by gain which is inter-
              preted,  according to the given type, as follows: if type is am-
              plitude (or is omitted), gain is an amplitude ratio (voltage  or
              linear),  if  power,  a power ratio (wattage or voltage squared)
              and if dB, a power change in dB.

              When type is amplitude or power, a gain of 1 leaves  the  volume
              unchanged, less than 1 decreases it, and greater than 1 increas-
              es it; a negative gain inverts the audio signal in  addition  to
              adjusting its volume.

              When  type  is dB, a gain of 0 leaves the volume unchanged, less
              than 0 decreases it and greater than 0 increases it.

              See [4] for a detailed discussion on electrical (and hence audio
              signal) voltage and power ratios.

              Beware of Clipping when the increasing the volume.

              The gain and the type parameters can be concatenated if desired,
              e.g.  vol 10dB.

              An optional limiter-gain value can be specified and should be  a
              value  much  less than 1 (e.g. 0.05 or 0.02) and is used only on
              peaks to prevent clipping.  Not specifying this parameter causes
              no  limiter  to  be used.  In verbose mode, this effect displays
              the percentage of the audio that needed to be limited.

              See gain for a volume-changing effect with  different  capabili-
              ties  and compand for a dynamic range compression/expansion/lim-
              iting effect.

ENVIRONMENT
       SoX reacts to the following environment variables.  To set them on Unix
       with most shells, use, for example:

          AUDIODRIVER=oss
          export AUDIODRIVER
          play_ng ...

       with Unix csh:

          setenv AUDIODRIVER oss

       or, on Microsoft Windows:

          set AUDIODRIVER=waveaudio

       MS-Windows  GUI:  via  Control  Panel : System : Advanced : Environment
       Variables

       Mac OS X GUI: Refer to Apple's Technical Q&A QA1067 document.

       AUDIODRIVER
              On some systems, SoX may have more than one type of audio  driv-
              er,  e.g.  ALSA  and  OSS or SUNAU and AO and they can have more
              than one audio device (a.k.a. `sound card').  If more  than  one
              audio driver has been built into SoX and the default selected by
              SoX when recording or playing is not the one that is wanted, the
              AUDIODRIVER environment variable can be used to override the de-
              fault.  For example, on Unix systems:

                 AUDIODRIVER=oss
                 export AUDIODRIVER
                 play_ng ...

              If it is unset, SoX tries to use, in order, coreaudio,  pulseau-
              dio, alsa, waveaudio, sndio, oss, sunau and ao.  For further de-
              tails on these, see their entries in soxformat_ng(7).

       AUDIODEV
              Override the default audio device, e.g.

                 AUDIODEV=/dev/dsp2
                 export AUDIODEV
                 play_ng ...
                 sox_ng ... -t oss

              or

                 AUDIODEV=hw:soundwave,1,2
                 export AUDIODEV
                 play_ng ...
                 sox_ng ... -t alsa

              If AUDIODEV is unset and the audio driver is oss, SoX  also  re-
              sponds to the standard environment variable OSS_AUDIODEV.

       LADSPA_PATH
              A  colon-separated  list  of  directories in which to search for
              LADSPA plugins.  The default depends on how SoX was built and is
              typically /usr/lib/ladspa or /usr/local/lib/ladspa.

       LD_LIBRARY_PATH
              When  searching  for the dynamic libraries in which most effects
              and format handlers may be stored, according to how your SoX was
              built,  look  in this colon-separated list of directories before
              the default location.

       MIXERDEV
              When playing a file, use the specified mixer device for the  'v'
              and 'V' volume control keys.

       SOX_OPTS
              Provide  alternative  default  values  for SoX's global options.
              For example:

                 SOX_OPTS="--buffer 20000 --play-rate-arg -hs --temp /mnt/temp"
                 export SOX_OPTS

              Note that setting SOX_OPTS can create unwanted  changes  in  the
              behaviour   of  scripts  or  other  programs  that  invoke  SoX.
              SOX_OPTS might best be used for things that reflect the environ-
              ment  in  which  SoX  is  being run and enabling options such as
              --no-clobber by default might be handled better  using  a  shell
              alias  since  that will not affect SoX's operation in scripts or
              when it is used by other programs.

              One way to ensure that scripts and programs cannot  be  affected
              by SOX_OPTS is to clear SOX_OPTS at the start of the script, but
              this loses the benefit  of  SOX_OPTS  carrying  system-wide  de-
              faults.

       TEMP and TMP
              On  Windows,  tmpfile() is broken  -  it creates the file in the
              root directory of the current drive instead of in a valid tempo-
              rary  directory   -  but if TEMP or TMP are set, it creates them
              in the directory indicated, otherwise in the current  directory.
              To force use of tmpfile(), use --temp .

              Alternatively,  and  on  Unix,  use  --temp  (see Global Options
              above).

EXIT STATUS
       SoX exits 0 when there is no error, 1 if there is a  problem  with  the
       command-line  parameters  or 2 if an error occurs during audio process-
       ing.

BUGS
       Please report any bugs found in this version of SoX to the mailing list
       <sox-ng@groups.io>.

CITATION
       To cite SoX in publications please use:

       Lance Norskog, Chris Bagwell et al. (2015).
       SoX: Sound eXchange, the Swiss Army knife of audio manipulation.
       URL http://sox.sourceforge.net

       A BibTeX entry for SoX users is

       @manual{SoX2015,
         title = "SoX: Sound eXchange, the Swiss Army knife of audio manipulation",
         author = "Norskog, Lance and Bagwell, Chris and others",
         edition = "14.4.2",
         year = 2015,
         url = "http://sox.sourceforge.net",
       }


SEE ALSO
       soxi_ng(1),  soxformat_ng(7), libsox_ng(3) audacity(1), gnuplot(1), oc-
       tave(1).
       The sox_ng web site at https://codeberg.org/sox_ng/sox_ng
       SoX         scripting         examples         at         https://code-
       berg.org/sox_ng/sox_ng/src/branch/main/scripts

   References
       [1]    R. Bristow-Johnson, Cookbook formulae for audio EQ biquad filter
              coefficients,
              https://www.w3.org/TR/audio-eq-cookbook

       [2]    Wikipedia, Q-factor,
              http://en.wikipedia.org/wiki/Q_factor

       [3]    Scott Lehman, Effects Explained,
              https://codeberg.org/sox_ng/Effects-Explained

       [4]    Wikipedia, Decibel,
              http://en.wikipedia.org/wiki/Decibel

       [5]    Richard Furse, Linux Audio Developer's Simple Plugin API,
              http://www.ladspa.org

       [6]    Richard Furse, Computer Music Toolkit,
              http://www.ladspa.org/cmt/overview.html

       [7]    Steve Harris, LADSPA plugins,
              http://plugin.org.uk

LICENSE
       Copyright 1998-2013 Chris Bagwell and SoX Contributors.
       Copyright 1991 Lance Norskog and Sundry Contributors.

       This program is free software; you can redistribute it and/or modify it
       under  the  terms of the GNU General Public License as published by the
       Free Software Foundation, version 2.

       This program is distributed in the hope that it  will  be  useful,  but
       WITHOUT  ANY  WARRANTY;  without  even  the  implied  warranty  of MER-
       CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  General
       Public License for more details.

AUTHORS
       Lance Norskog, Chris Bagwell and many others listed in the AUTHORS file
       that is distributed with the source code.



sox_ng                         December 05, 2024                        SoX(1)
