id3: fix COMM frame handling
[sox.git] / sox.1
blob8aa2b371823f1cc640d446bf694d31135f88c017
1 '\" t
2 '\" The line above instructs most `man' programs to invoke tbl
3 '\"
4 '\" Separate paragraphs; not the same as PP which resets indent level.
5 .de SP
6 .if t .sp .5
7 .if n .sp
8 ..
9 '\"
10 '\" Replacement em-dash for nroff (default is too short).
11 .ie n .ds m " - 
12 .el .ds m \(em
13 '\"
14 '\" Placeholder macro for if longer nroff arrow is needed.
15 .ds RA \(->
16 '\"
17 '\" Decimal point set slightly raised
18 .if t .ds d \v'-.15m'.\v'+.15m'
19 .if n .ds d .
20 '\"
21 '\" Enclosure macro for examples
22 .de EX
23 .SP
24 .nf
25 .ft CW
27 .de EE
28 .ft R
29 .SP
30 .fi
32 .TH SoX 1 "December 31, 2014" "sox" "Sound eXchange"
33 .SH NAME
34 SoX \- Sound eXchange, the Swiss Army knife of audio manipulation
35 .SH SYNOPSIS
36 .nf
37 \fBsox\fR [\fIglobal-options\fR] [\fIformat-options\fR] \fIinfile1\fR
38         [[\fIformat-options\fR] \fIinfile2\fR] ... [\fIformat-options\fR] \fIoutfile\fR
39         [\fIeffect\fR [\fIeffect-options\fR]] ...
40 .SP
41 \fBplay\fR [\fIglobal-options\fR] [\fIformat-options\fR] \fIinfile1\fR
42         [[\fIformat-options\fR] \fIinfile2\fR] ... [\fIformat-options\fR]
43         [\fIeffect\fR [\fIeffect-options\fR]] ...
44 .SP
45 \fBrec\fR [\fIglobal-options\fR] [\fIformat-options\fR] \fIoutfile\fR
46         [\fIeffect\fR [\fIeffect-options\fR]] ...
47 .fi
48 .SH DESCRIPTION
49 .SS Introduction
50 SoX reads and writes audio files in most popular formats and can
51 optionally apply effects to them. It can combine multiple input
52 sources, synthesise audio, and, on many systems, act as a general
53 purpose audio player or a multi-track audio recorder. It also has
54 limited ability to split the input into multiple output files.
55 .SP
56 All SoX functionality is available using just the \fBsox\fR command.
57 To simplify playing and recording audio, if SoX is invoked as
58 \fBplay\fR, the output file is automatically set to be the default sound
59 device, and if invoked as \fBrec\fR, the default sound device is used as an
60 input source.
61 Additionally, the
62 .BR soxi (1)
63 command provides a convenient way to just query audio file header information.
64 .SP
65 The heart of SoX is a library called libSoX.  Those interested in
66 extending SoX or using it in other programs should refer to the libSoX
67 manual page:
68 .BR libsox (3).
69 .SP
70 SoX is a command-line audio processing tool, particularly suited to making
71 quick, simple edits and to batch processing.
72 If you need an interactive, graphical audio editor, use
73 .BR audacity (1).
74 .TS
75 center;
76 c8 c8 c.
77 *       *       *
78 .TE
79 .DT
80 .SP
81 The overall SoX processing chain can be summarised as follows:
82 .TS
83 center;
85 Input(s) \*(RA Combiner \*(RA Effects \*(RA Output(s)
86 .TE
87 .DT
88 .SP
89 Note however, that on the SoX command line, the positions of the
90 Output(s) and the Effects are swapped w.r.t. the logical flow just
91 shown.  Note also that whilst options pertaining to files are placed
92 before their respective file name, the opposite is true for effects.
93 To show how this works in practice, here is a selection of examples of
94 how SoX might be used.  The simple
95 .EX
96    sox recital.au recital.wav
97 .EE
98 translates an audio file in Sun AU format to a Microsoft WAV file, whilst
99 .EX
100    sox recital.au \-b 16 recital.wav channels 1 rate 16k fade 3 norm
102 performs the same format translation, but also applies four effects
103 (down-mix to one channel, sample rate change, fade-in, nomalize),
104 and stores the result at a bit-depth of 16.
106    sox \-r 16k \-e signed \-b 8 \-c 1 voice-memo.raw voice-memo.wav
108 converts `raw' (a.k.a. `headerless') audio to a self-describing file format,
110    sox slow.aiff fixed.aiff speed 1.027
112 adjusts audio speed,
114    sox short.wav long.wav longer.wav
116 concatenates two audio files, and
118    sox \-m music.mp3 voice.wav mixed.flac
120 mixes together two audio files.
122    play \(dqThe Moonbeams/Greatest/*.ogg\(dq bass +3
124 plays a collection of audio files whilst applying a bass boosting effect,
126    play \-n \-c1 synth sin %\-12 sin %\-9 sin %\-5 sin %\-2 fade h 0.1 1 0.1
128 plays a synthesised `A minor seventh' chord with a pipe-organ sound,
130    rec \-c 2 radio.aiff trim 0 30:00
132 records half an hour of stereo audio, and
134    play \-q take1.aiff & rec \-M take1.aiff take1\-dub.aiff
136 (with POSIX shell and where supported by hardware)
137 records a new track in a multi-track recording.  Finally,
139 .ne 3
140    rec \-r 44100 \-b 16 \-e signed-integer \-p \\
141         silence 1 0.50 0.1% 1 10:00 0.1% | \\
142         sox \-p song.ogg silence 1 0.50 0.1% 1 2.0 0.1% : \\
143         newfile : restart
145 records a stream of audio such as LP/cassette and splits in to multiple
146 audio files at points with 2 seconds of silence.  Also, it does not start
147 recording until it detects audio is playing and stops after it sees
148 10 minutes of silence.
150 N.B.  The above is just an overview of SoX's capabilities; detailed
151 explanations of how to use \fIall\fR SoX parameters, file formats, and
152 effects can be found below in this manual, in
153 .BR soxformat (7),
154 and in
155 .BR soxi (1).
156 .SS File Format Types
157 SoX can work with `self-describing' and `raw' audio files.
158 `self-describing' formats (e.g. WAV, FLAC, MP3) have a header that
159 completely describes the signal and encoding attributes of the audio
160 data that follows. `raw' or `headerless' formats do not contain this
161 information, so the audio characteristics of these must be described
162 on the SoX command line or inferred from those of the input file.
164 The following four characteristics are used to describe the format of
165 audio data such that it can be processed with SoX:
167 sample rate
168 The sample rate in samples per second (`Hertz' or `Hz').
169 Digital telephony traditionally uses a sample rate of 8000\ Hz (8\ kHz),
170 though these days, 16 and even 32\ kHz are becoming more common. Audio
171 Compact Discs use 44100\ Hz (44\*d1\ kHz). Digital Audio Tape and many
172 computer systems use 48\ kHz. Professional audio systems often use 96
173 kHz.
175 sample size
176 The number of bits used to store each sample.  Today, 16-bit is
177 commonly used. 8-bit was popular in the early days of computer
178 audio. 24-bit is used in the professional audio arena. Other sizes are
179 also used.
181 data encoding
182 The way in which each audio sample is represented (or `encoded').  Some
183 encodings have variants with different byte-orderings or bit-orderings.
184 Some compress the audio data so that the stored audio data takes up less
185 space (i.e. disk space or transmission bandwidth) than the other format
186 parameters and the number of samples would imply.  Commonly-used
187 encoding types include floating-point, \(*m-law, ADPCM, signed-integer
188 PCM, MP3, and FLAC.
190 channels
191 The number of audio channels contained in the file.  One (`mono') and
192 two (`stereo') are widely used.  `Surround sound' audio typically
193 contains six or more channels.
195 The term `bit-rate' is a measure of the amount of storage occupied by an
196 encoded audio signal over a unit of time.  It can depend on all of the
197 above and is typically denoted as a number of kilo-bits per second
198 (kbps).  An A-law telephony signal has a bit-rate of 64 kbps. MP3-encoded
199 stereo music typically has a bit-rate of 128\-196 kbps. FLAC-encoded
200 stereo music typically has a bit-rate of 550\-760 kbps.
202 Most self-describing formats also allow textual `comments' to be
203 embedded in the file that can be used to describe the audio in some way,
204 e.g. for music, the title, the author, etc.
206 One important use of audio file comments is to convey `Replay Gain'
207 information.  SoX supports applying Replay Gain information (for certain
208 input file formats only; currently, at least FLAC and Ogg Vorbis), but not
209 generating it.  Note that by default, SoX copies input file comments
210 to output files that support comments, so output files may contain
211 Replay Gain information if some was present in the input file.  In this
212 case, if anything other than a simple format conversion was performed
213 then the output file Replay Gain information is likely to be incorrect
214 and so should be recalculated using a tool that supports this (not SoX).
217 .BR soxi (1)
218 command can be used to display information from audio file headers.
219 .SS Determining & Setting The File Format
220 There are several mechanisms available for SoX to use to determine or set the
221 format characteristics of an audio file.  Depending on the circumstances,
222 individual characteristics may be determined or set using different mechanisms.
224 To determine the format of an input file, SoX will use, in order of
225 precedence and as given or available:
226 .IP 1. 4
227 Command-line format options.
228 .IP 2. 4
229 The contents of the file header.
230 .IP 3. 4
231 The filename extension.
233 To set the output file format, SoX will use, in order of
234 precedence and as given or available:
235 .IP 1. 4
236 Command-line format options.
237 .IP 2. 4
238 The filename extension.
239 .IP 3. 4
240 The input file format characteristics, or the closest
241 that is supported by the output file type.
243 For all files, SoX will exit with an error
244 if the file type cannot be determined. Command-line format options may
245 need to be added or changed to resolve the problem.
246 .SS Playing & Recording Audio
248 .B play
250 .B rec
251 commands are provided so that basic playing and
252 recording is as simple as
254    play existing-file.wav
258    rec new-file.wav
260 These two commands are functionally equivalent to
262    sox existing-file.wav \-d
266    sox \-d new-file.wav
268 Of course, further options and effects (as described below) can be
269 added to the commands in either form.
271 center;
272 c8 c8 c.
273 *       *       *
277 Some systems provide more than one type of (SoX-compatible) audio
278 driver, e.g. ALSA & OSS, or SUNAU & AO.
279 Systems can also have more than one audio device (a.k.a. `sound card').
280 If more than one audio driver has been
281 built-in to SoX, and the default selected by SoX when recording or playing
282 is not the one that is wanted, then the
283 .B AUDIODRIVER
284 environment variable can be used to override the default.  For example
285 (on many systems):
287    set AUDIODRIVER=oss
288    play ...
291 .B AUDIODEV
292 environment variable can be used to override the default audio device,
293 e.g.
295    set AUDIODEV=/dev/dsp2
296    play ...
297    sox ... \-t oss
301    set AUDIODEV=hw:soundwave,1,2
302    play ...
303    sox ... \-t alsa
305 Note that the way of setting environment variables varies from system
306 to system\*mfor some specific examples, see `SOX_OPTS' below.
308 When playing a file with a sample rate that is not supported by the
309 audio output device, SoX will automatically invoke the \fBrate\fR effect
310 to perform the necessary sample rate conversion.  For
311 compatibility with old hardware, the
312 default \fBrate\fR quality level is set to `low'. This
313 can be changed by explicitly specifying the \fBrate\fR
314 effect with a different quality level, e.g.
316    play ... rate \-m
318 or by using the
319 .B \-\-play\-rate\-arg
320 option (see below).
322 center;
323 c8 c8 c.
324 *       *       *
328 To help with setting a suitable recording level, SoX includes a peak-level
329 meter which can be invoked (before making the actual recording) as follows:
331    rec \-n
333 The recording level should be adjusted (using the system-provided mixer
334 program, not SoX) so that the meter is \fIat most occasionally\fR full
335 scale, and never `in the red' (an exclamation mark is shown).
336 See also \fB\-S\fR below.
337 .SS Accuracy
338 Many file formats that compress audio discard some of the audio signal
339 information whilst doing so. Converting to such a format and then converting
340 back again will not produce an exact copy of the original audio.  This
341 is the case for many formats used in telephony (e.g. A-law, GSM) where
342 low signal bandwidth is more important than high audio fidelity, and for
343 many formats used in portable music players (e.g. MP3, Vorbis) where
344 adequate fidelity can be retained even with the large compression ratios
345 that are needed to make portable players practical.
347 Formats that discard audio signal information are called `lossy'.
348 Formats that do not are called `lossless'.  The term `quality' is used as a
349 measure of how closely the original audio signal can be reproduced when
350 using a lossy format.
352 Audio file conversion with SoX is lossless when it can be, i.e. when not
353 using lossy compression, when not reducing the sampling rate or number
354 of channels, and when the number of bits used in the destination format
355 is not less than in the source format.  E.g.  converting from an 8-bit
356 PCM format to a 16-bit PCM format is lossless but converting from an
357 8-bit PCM format to (8-bit) A-law isn't.
359 .B N.B.
360 SoX converts all audio files to an internal uncompressed
361 format before performing any audio processing. This means that
362 manipulating a file that is stored in a lossy format can cause further
363 losses in audio fidelity.  E.g. with
365    sox long.mp3 short.mp3 trim 10
367 SoX first decompresses the input MP3 file, then applies the
368 .B trim
369 effect, and finally creates the output MP3 file by re-compressing the
370 audio\*mwith a possible reduction in fidelity above that which
371 occurred when the input file was created.
372 Hence, if what is ultimately desired is lossily compressed audio, it is
373 highly recommended to perform all audio processing using lossless file
374 formats and then convert to the lossy format only at the final stage.
376 .B N.B.
377 Applying multiple effects with a single SoX invocation will,
378 in general, produce more accurate results than those produced using
379 multiple SoX invocations.
380 .SS Dithering
381 Dithering is a technique used to maximise the dynamic range of audio
382 stored at a particular bit-depth. Any distortion introduced by
383 quantisation is decorrelated by adding a small amount of white noise
384 to the signal.  In most cases, SoX can determine whether the selected
385 processing requires dither and will add it during output formatting if
386 appropriate.
388 Specifically, by default, SoX automatically adds TPDF dither
389 when the output bit-depth is less than 24 and any
390 of the following are true:
391 .IP \(bu 4
392 bit-depth reduction has been specified explicitly using a command-line
393 option
394 .IP \(bu 4
395 the output file format supports only bit-depths lower than that of the
396 input file format
397 .IP \(bu 4
398 an effect has increased effective bit-depth within the internal
399 processing chain
401 For example, adjusting volume with
402 .B vol 0.25
403 requires two additional bits in which to losslessly store its results
404 (since 0\*d25 decimal equals 0\*d01 binary).  So if the input file
405 bit-depth is 16, then SoX's internal representation will utilise 18
406 bits after processing this volume change.  In order to store the
407 output at the same depth as the input, dithering is used to remove the
408 additional bits.
410 Use the
411 .B \-V
412 option to see what processing SoX has automatically added. The
413 .B \-D
414 option may be given to override automatic dithering.  To invoke
415 dithering manually (e.g. to select a noise-shaping curve), see the
416 .B dither
417 effect.
418 .SS Clipping
419 Clipping is distortion that occurs when an audio signal level (or
420 `volume') exceeds the range of the chosen representation.  In most
421 cases, clipping is undesirable and so should be corrected by adjusting
422 the level prior to the point (in the processing chain) at which it
423 occurs.
425 In SoX, clipping could occur, as you might expect, when using the
426 .B vol
428 .B gain
429 effects to increase the audio volume. Clipping could also occur with many
430 other effects, when converting one format to another, and even when
431 simply playing the audio.
433 Playing an audio file often involves resampling, and processing by
434 analogue components can introduce a small DC offset and/or
435 amplification, all of which can produce distortion if the audio signal
436 level was initially too close to the clipping point.
438 For these reasons, it is usual to make sure that an audio
439 file's signal level has some `headroom', i.e. it does not exceed a particular
440 level below the maximum possible level for the given representation.
441 Some standards bodies recommend as much as 9dB headroom, but in most cases,
442 3dB (\(~~ 70% linear) is enough.  Note that this wisdom
443 seems to have been lost in modern music production; in fact, many CDs,
444 MP3s, etc.  are now mastered at levels \fIabove\fR 0dBFS i.e. the
445 audio is clipped as delivered.
447 SoX's
448 .B stat
450 .B stats
451 effects can assist in determining the signal level in an audio file. The
452 .B gain
454 .B vol
455 effect can be used to prevent clipping, e.g.
457    sox dull.wav bright.wav gain \-6 treble +6
459 guarantees that the treble boost will not clip.
461 If clipping occurs at any point during processing,
462 SoX will display a warning message to that effect.
464 See also
465 .B \-G
466 and the
467 .B gain
469 .B norm
470 effects.
471 .SS Input File Combining
472 SoX's input combiner can be configured (see OPTIONS below) to
473 combine multiple files using any of the
474 following methods: `concatenate', `sequence', `mix', `mix-power',
475 `merge', or `multiply'.
476 The default method is `sequence' for
477 .BR play ,
478 and `concatenate' for
479 .B rec
481 .BR sox .
483 For all methods other than `sequence', multiple input files must have
484 the same sampling rate. If necessary, separate SoX invocations can be
485 used to make sampling rate adjustments prior to combining.
487 If the `concatenate' combining method is selected (usually, this will be
488 by default) then the input files must also have the same number of
489 channels.  The audio from each input will be concatenated in the order
490 given to form the output file.
492 The `sequence' combining method is selected automatically for
493 .BR play .
494 It is similar to `concatenate' in that the audio from each input file is
495 sent serially to the output file. However, here the output file may be
496 closed and reopened at the corresponding transition between input
497 files. This may be just what is needed when sending different types of
498 audio to an output device, but is not generally useful when the output is a
499 normal file.
501 If either the `mix' or `mix-power' combining method is selected then two or
502 more input files must be given and will be mixed together to form the
503 output file.  The number of channels in each input file need not be the
504 same, but SoX will issue a warning if they are not and some
505 channels in the output file will not contain audio from every input
506 file.  A mixed audio file cannot be un-mixed without reference to the
507 original input files.
509 If the `merge' combining method is selected then two or
510 more input files must be given and will be merged together to form the
511 output file.  The number of channels in each input file need not be the
512 same.  A merged audio file comprises all of the channels from all of the
513 input files. Un-merging is possible using multiple
514 invocations of SoX with the
515 .B remix
516 effect.
517 For example, two mono files could be merged to form one stereo file. The
518 first and second mono files would become the left and right channels of
519 the stereo file.
521 The `multiply' combining method multiplies the sample values of
522 corresponding channels (treated as numbers in the interval \-1 to +1).
523 If the number of channels in the input files is not the same, the
524 missing channels are considered to contain all zero.
526 When combining input files, SoX applies any specified effects
527 (including, for example, the
528 .B vol
529 volume adjustment effect) after the audio has been combined. However, it
530 is often useful to be able to set the volume of (i.e. `balance') the
531 inputs individually, before combining takes place.
533 For all combining methods, input
534 file volume adjustments can be made manually using the
535 .B \-v
536 option (below) which can be given for one or more input files. If it is
537 given for only some of the input files then the others receive no volume
538 adjustment.  In some circumstances, automatic volume
539 adjustments may be applied (see below).
541 The \fB\-V\fR option (below) can be used to show the input file volume
542 adjustments that have been selected (either manually or automatically).
544 There are some special considerations that need to made when mixing
545 input files:
547 Unlike the other methods, `mix' combining has the
548 potential to cause clipping in the combiner if no balancing is
549 performed.  In this case, if manual volume adjustments are not given,
550 SoX will try to ensure that clipping does not occur by automatically
551 adjusting the
552 volume (amplitude) of each input signal by a factor of \(S1/\s-2n\s+2,
553 where n is the number of input files.  If this results in audio that is
554 too quiet or otherwise unbalanced then the input file volumes can be
555 set manually as described above. Using the
556 .B norm
557 effect on the mix is another alternative.
559 If mixed audio seems loud enough at some points but
560 too quiet in others then dynamic range compression should be applied to
561 correct this\*msee the
562 .B compand
563 effect.
565 With the `mix-power' combine method, the
566 mixed volume is approximately equal to that of one of the input signals.
567 This is achieved by balancing using a factor of
568 \(S1/\s-2\(srn\s+2 instead of \(S1/\s-2n\s+2.
569 Note that this balancing factor does not guarantee that clipping will not occur,
570 but the number of clips will usually be low and the resultant
571 distortion is generally imperceptible.
572 .SS Output Files
573 SoX's default behaviour is to take one or more input files and
574 write them to a single output file.
576 This behaviour can be changed by specifying the pseudo-effect `newfile'
577 within the effects list.  SoX will then enter multiple output mode.
579 In multiple output mode, a new file is created when the effects
580 prior to the `newfile' indicate they are done.
581 The effects chain listed after `newfile'
582 is then started up and its output is saved to the new file.
584 In multiple output mode, a unique number will automatically be appended
585 to the end of all filenames.  If the filename has an extension
586 then the number is inserted before the extension.  This behaviour can
587 be customized by placing a %n anywhere in the filename where the
588 number should be substituted.  An optional number can be placed after
589 the % to indicate a minimum fixed width for the number.
591 Multiple output mode is not very useful unless an effect that will
592 stop the effects chain early is
593 specified before the `newfile'. If end of file is
594 reached before the effects chain stops itself then no new file
595 will be created as it would be empty.
597 The following is an example of splitting the first 60 seconds of an input
598 file into two 30 second files and ignoring the rest.
600    sox song.wav ringtone%1n.wav trim 0 30 : newfile : trim 0 30
601 .SS Stopping SoX
602 Usually SoX will complete its processing and exit automatically once
603 it has read all available audio data from the input files.
605 If desired, it can be terminated earlier by sending an
606 interrupt signal to the process (usually by pressing the
607 keyboard interrupt key which is normally Ctrl-C).  This is a natural requirement
608 in some circumstances, e.g. when using SoX to make a recording.  Note
609 that when using SoX to play multiple files, Ctrl-C behaves slightly
610 differently: pressing it once causes SoX to skip to the next file;
611 pressing it twice in quick succession causes SoX to exit.
613 Another option to stop processing early is to use an effect that
614 has a time period or sample count to determine the stopping
615 point. The trim effect is an example of this.  Once all
616 effects chains have stopped then SoX will also stop.
617 .SH FILENAMES
618 Filenames can be simple file names, absolute or relative path names,
619 or URLs (input files only).  Note that URL support requires that
620 .BR wget (1)
621 is available.
623 Note:
624 Giving SoX an input or output filename that is the same as a SoX
625 effect-name will not work since SoX will treat it as an effect
626 specification.  The only work-around to this is to avoid such
627 filenames. This is generally not difficult since most audio
628 filenames have a filename `extension', whilst effect-names do not.
629 .SS Special Filenames
630 The following special filenames may be used in certain circumstances
631 in place of a normal filename on the command line:
633 \fB\-\fR
634 SoX can be used in simple pipeline operations by using the special
635 filename `\-' which,
636 if used as an input filename, will cause
637 SoX will read audio data from `standard input' (stdin),
638 and which,
639 if used as the output filename, will cause
640 SoX will send audio data to `standard output' (stdout).
641 Note that when using this option for the output file, and sometimes
642 when using it for an input file, the file-type (see
643 .B \-t
644 below) must also be given.
646 \fB\(dq\^|\^\fIprogram \fR[\fIoptions\fR] ...\fB\(dq\fR
647 This can be used in place of an input filename to specify the
648 the given program's standard output (stdout) be used as an input file.
649 Unlike
650 .B \-
651 (above), this can be used for several inputs to one SoX command.  For
652 example, if `genw' generates mono WAV formatted signals to its
653 standard output, then the following command makes a stereo file
654 from two generated signals:
656    sox \-M "|genw \-\-imd \-" "|genw \-\-thd \-" out.wav
658 For headerless (raw) audio,
659 .B \-t
660 (and perhaps other format options) will need to be given, preceding the input
661 command.
663 \fB\(dq\fIwildcard-filename\fB\(dq\fR
664 Specifies that filename `globbing' (wild-card matching) should be performed
665 by SoX instead of by the shell.  This allows a single set of file options to be
666 applied to a group of files.  For example, if the current directory contains
667 three `vox' files, file1.vox, file2.vox, and file3.vox, then
669    play \-\-rate 6k *.vox
671 will be expanded by the `shell' (in most environments) to
673    play \-\-rate 6k file1.vox file2.vox file3.vox
675 which will treat only the first vox file as having a sample rate of 6k.
676 With
678    play \-\-rate 6k "*.vox"
680 the given sample rate option will be applied to all three vox files.
682 \fB\-p\fR, \fB\-\-sox\-pipe\fR
683 This can be used in place of an output filename to specify that
684 the SoX command should be used as in input pipe to another SoX command.
685 For example, the command:
687    play "|sox \-n \-p synth 2" "|sox \-n \-p synth 2 tremolo 10" stat
689 plays two `files' in succession, each with different effects.
691 .B \-p
692 is in fact an alias for `\fB\-t sox \-\fR'.
694 \fB\-d\fR, \fB\-\-default\-device\fR
695 This can be used in place of an input or output filename to specify that
696 the default audio device (if one has been built into SoX) is to be used.
697 This is akin to invoking
698 .B rec
700 .B play
701 (as described above).
703 \fB\-n\fR, \fB\-\-null\fR
704 This can be used in place of an input or output filename to specify that
705 a `null file' is to be used.  Note that here, `null file' refers to a
706 SoX-specific mechanism and is not related to any operating-system
707 mechanism with a similar name.
709 Using a null file to input audio is equivalent to
710 using a normal audio file that contains an infinite amount
711 of silence, and as such is not generally useful unless used
712 with an effect that specifies a finite time length
713 (such as \fBtrim\fR or \fBsynth\fR).
715 Using a null file to output audio amounts to discarding the audio
716 and is useful mainly with effects that produce information about the
717 audio instead of affecting it (such as \fBnoiseprof\fR or \fBstat\fR).
719 The sampling rate associated with a null file
720 is by default 48\ kHz, but, as with a normal
721 file, this can be overridden if desired using command-line format
722 options (see below).
723 .SS Supported File & Audio Device Types
725 .BR soxformat (7)
726 for a list and description of the supported file formats and audio device
727 drivers.
728 .SH OPTIONS
729 .SS Global Options
730 These options can be specified on the command line at any point
731 before the first effect name.
734 .B SOX_OPTS
735 environment variable can be used to provide alternative default values for
736 SoX's global options.
737 For example:
739    SOX_OPTS="\-\-buffer 20000 \-\-play\-rate\-arg \-hs \-\-temp /mnt/temp"
741 Note that setting SOX_OPTS can potentially create unwanted changes in
742 the behaviour of scripts or other programs that invoke SoX.  SOX_OPTS
743 might best be used for things (such as in the given example) that reflect the
744 environment in which SoX is being run.  Enabling options such as
745 .B \-\-no\-clobber
746 as default might be handled better using a shell alias
747 since a shell alias will not affect operation in scripts etc.
749 One way to ensure that a script cannot be affected by SOX_OPTS is to
750 clear SOX_OPTS at the start of the script, but this of course loses
751 the benefit of SOX_OPTS carrying some system-wide default options.  An
752 alternative approach is to explicitly invoke SoX with default
753 option values, e.g.
755    SOX_OPTS="\-V \-\-no-clobber"
756    ...
757    sox \-V2 \-\-clobber $input $output ...
759 Note that the way to set environment variables varies from system
760 to system. Here are some examples:
762 Unix bash:
764    export SOX_OPTS="\-V \-\-no-clobber"
766 Unix csh:
768    setenv SOX_OPTS "\-V \-\-no-clobber"
770 MS-DOS/MS-Windows:
772    set SOX_OPTS=\-V \-\-no-clobber
774 MS-Windows GUI: via Control Panel : System : Advanced : Environment
775 Variables
777 Mac OS X GUI: Refer to Apple's Technical Q&A QA1067 document.
779 \fB\-\-buffer\fR \fBBYTES\fR, \fB\-\-input\-buffer\fR \fBBYTES\fR
780 Set the size in bytes of the buffers used for processing audio (default 8192).
781 .B \-\-buffer
782 applies to input, effects, and output processing;
783 .B \-\-input\-buffer
784 applies only to input processing (for which it overrides
785 .B \-\-buffer
786 if both are given).
788 Be aware that large values for
789 .B \-\-buffer
790 will cause SoX to be become slow to respond to requests to terminate or to skip
791 the current input file.
793 \fB\-\-clobber\fR
794 Don't prompt before overwriting an existing file with the same name as that
795 given for the output file.  This is the default behaviour.
797 \fB\-\-combine concatenate\fR\^|\^\fBmerge\fR\^|\^\fBmix\fR\^|\^\fBmix\-power\fR\^|\^\fBmultiply\fR\^|\^\fBsequence\fR
798 Select the input file combining method;
799 for some of these, short options are available:
800 .B \-m
801 selects `mix',
802 .B \-M
803 selects `merge', and
804 .B \-T
805 selects `multiply'.
807 See \fBInput File Combining\fR above for a description of the different
808 combining methods.
810 \fB\-D\fR, \fB\-\-no\-dither\fR
811 Disable automatic dither\*msee `Dithering' above.  An example of why this
812 might occasionally be useful is if a file has been converted from 16 to
813 24 bit with the intention of doing some processing on it, but in fact
814 no processing is needed after all and the original 16 bit file has
815 been lost, then, strictly speaking, no dither is needed if converting the
816 file back to 16 bit.  See also the
817 .B stats
818 effect for how to determine the actual bit depth of the audio within a
819 file.
821 \fB\-\-effects\-file \fIFILENAME\fR
822 Use FILENAME to obtain all effects and their arguments.
823 The file is parsed as if the values were specified on the
824 command line.  A new line can be used in place of the special \fB:\fR
825 marker to separate effect chains.  For convenience, such markers at the
826 end of the file are normally ignored; if you want to specify an empty
827 last effects chain, use an explicit \fB:\fR by itself on the last line
828 of the file.  This option causes any effects specified on the command
829 line to be discarded.
831 \fB\-G\fR, \fB\-\-guard\fR
832 Automatically invoke the
833 .B gain
834 effect to guard against clipping. E.g.
836    sox \-G infile \-b 16 outfile rate 44100 dither \-s
838 is shorthand for
840    sox infile \-b 16 outfile gain \-h rate 44100 gain \-rh dither \-s
842 See also
843 .BR \-V,
844 .BR \-\-norm,
845 and the
846 .B gain
847 effect.
849 \fB\-h\fR, \fB\-\-help\fR
850 Show version number and usage information.
852 \fB\-\-help\-effect \fINAME\fR
853 Show usage information on the specified effect.  The name
854 \fBall\fR can be used to show usage on all effects.
856 \fB\-\-help\-format \fINAME\fR
857 Show information about the specified file format.  The name
858 \fBall\fR can be used to show information on all formats.
860 \fB\-\-i\fR, \fB\-\-info\fR
861 Only if given as the first parameter to
862 .BR sox ,
863 behave as
864 .BR soxi (1).
866 \fB\-m\fR\^|\^\fB\-M\fR
867 Equivalent to \fB\-\-combine mix\fR and \fB\-\-combine merge\fR, respectively.
869 .B \-\-magic
870 If SoX has been built with the optional `libmagic' library then this
871 option can be given to enable its use in helping to detect audio file types.
873 \fB\-\-multi\-threaded\fR | \fB\-\-single\-threaded\fR
874 By default, SoX is `single threaded'.
875 If the \fB\-\-multi\-threaded\fR option is given however then SoX
876 will process audio channels for most multi-channel
877 effects in parallel on hyper-threading/multi-core architectures. This
878 may reduce processing time, though sometimes it may be necessary to use
879 this option in conjunction with a larger buffer size than is the default
880 to gain any benefit from multi-threaded processing
881 (e.g. 131072; see \fB\-\-buffer\fR above).
883 \fB\-\-no\-clobber\fR
884 Prompt before overwriting an existing file with the same name as that
885 given for the output file.
887 .B N.B.
888 Unintentionally overwriting a file is easier than you might think, for
889 example, if you accidentally enter
891    sox file1 file2 effect1 effect2 ...
893 when what you really meant was
895    play file1 file2 effect1 effect2 ...
897 then, without this option, file2 will be overwritten.  Hence, using
898 this option is recommended. SOX_OPTS (above), a `shell'
899 alias, script, or batch file may be an appropriate way of permanently
900 enabling it.
902 \fB\-\-norm\fR[\fB=\fIdB-level\fR]
903 Automatically invoke the
904 .B gain
905 effect to guard against clipping and to normalise the audio. E.g.
907    sox \-\-norm infile \-b 16 outfile rate 44100 dither \-s
909 is shorthand for
911    sox infile \-b 16 outfile gain \-h rate 44100 gain \-nh dither \-s
913 Optionally, the audio can be normalized to a given level (usually)
914 below 0 dBFS:
916    sox \-\-norm=\-3 infile outfile
919 See also
920 .BR \-V,
921 .BR \-G,
922 and the
923 .B gain
924 effect.
926 \fB\-\-play\-rate\-arg ARG\fR
927 Selects a quality option to be used when the `rate' effect is automatically
928 invoked whilst playing audio.  This option is typically set via the
929 .B SOX_OPTS
930 environment variable (see above).
932 \fB\-\-plot gnuplot\fR\^|\^\fBoctave\fR\^|\^\fBoff\fR
933 If not set to
934 .B off
935 (the default if
936 .B \-\-plot
937 is not given), run in a mode that can be used, in conjunction with the
938 gnuplot program or the GNU Octave program, to assist with the selection
939 and configuration of many of the transfer-function based effects.
940 For the first given effect that supports the selected plotting program,
941 SoX will output commands to plot the effect's transfer function, and
942 then exit without actually processing any audio.  E.g.
944    sox \-\-plot octave input-file \-n highpass 1320 > highpass.plt
945    octave highpass.plt
948 \fB\-q\fR, \fB\-\-no\-show\-progress\fR
949 Run in quiet mode when SoX wouldn't otherwise do so.
950 This is the opposite of the \fB\-S\fR option.
952 \fB\-R\fR
953 Run in `repeatable' mode.  When this option is given, where
954 applicable, SoX will embed a fixed time-stamp in the output file (e.g.
955 \fBAIFF\fR) and will `seed' pseudo random number generators (e.g.
956 \fBdither\fR) with a fixed number, thus ensuring that successive SoX
957 invocations with the same inputs and the same parameters yield the
958 same output.
960 \fB\-\-replay\-gain track\fR\^|\^\fBalbum\fR\^|\^\fBoff\fR
961 Select whether or not to apply replay-gain adjustment to input files.
962 The default is
963 .B off
965 .B sox
967 .BR rec ,
968 .B album
970 .B play
971 where (at least) the first two input files are tagged with the same Artist and
972 Album names, and
973 .B track
975 .B play
976 otherwise.
978 \fB\-S\fR, \fB\-\-show\-progress\fR
979 Display input file format/header information, and processing progress as
980 input file(s) percentage complete, elapsed time, and remaining time (if
981 known; shown in brackets), and the number of samples written to the
982 output file.  Also shown is a peak-level meter, and an indication if
983 clipping has occurred.  The peak-level meter shows up to two channels
984 and is calibrated for digital audio as follows (right channel shown):
985 .ne 8
987 center;
988 cI lI cI lI
989 c l c l.
990 dB FSD  Display dB FSD  Display
991 \-25    \-      \-11    ====
992 \-23    T{
994 T}      \-9     ====\-
995 \-21    =\-     \-7     =====
996 \-19    ==      \-5     =====\-
997 \-17    ==\-    \-3     ======
998 \-15    ===     \-1     =====!
999 \-13    ===\-
1003 A three-second peak-held value of headroom in dBs will be shown to the right
1004 of the meter if this is below 6dB.
1006 This option is enabled by default when using
1007 SoX to play or record audio.
1009 \fB\-T\fR\fR
1010 Equivalent to \fB\-\-combine multiply\fR.
1012 \fB\-\-temp\fI DIRECTORY\fR
1013 Specify that any temporary files should be created in the given
1014 .IR DIRECTORY .
1015 This can be useful if there are permission or free-space problems with the
1016 default location. In this case, using `\fB\-\-temp .\fR' (to use the
1017 current directory) is often a good solution.
1019 \fB\-\-version\fR
1020 Show SoX's version number and exit.
1021 .IP \fB\-V\fR[\fIlevel\fR]
1022 Set verbosity. This is particularly useful for seeing how any automatic
1023 effects have been invoked by SoX.
1025 SoX displays messages on the console (stderr) according to the following
1026 verbosity levels:
1029 .IP 0
1030 No messages are shown at all; use the exit status to determine
1031 if an error has occurred.
1032 .IP 1
1033 Only error messages are shown.  These are generated if
1034 SoX cannot complete the requested commands.
1035 .IP 2
1036 Warning messages are also shown.  These are generated if
1037 SoX can complete the requested commands,
1038 but not exactly according to the requested command parameters,
1039 or if clipping occurs.
1040 .IP 3
1041 Descriptions of
1042 SoX's processing phases are also shown.
1043 Useful for seeing exactly how
1044 SoX is processing your audio.
1045 .IP "4 and above"
1046 Messages to help with debugging
1047 SoX are also shown.
1050 By default, the verbosity level is set to 2 (shows errors and
1051 warnings). Each occurrence of the \fB\-V\fR option increases the
1052 verbosity level by 1.  Alternatively, the verbosity level can be set
1053 to an absolute number by specifying it immediately after the
1054 .BR \-V ,
1055 e.g.
1056 .B \-V0
1057 sets it to 0.
1059 .SS Input File Options
1060 These options apply only to input files and may precede only input
1061 filenames on the command line.
1063 \fB\-\-ignore\-length\fR
1064 Override an (incorrect) audio length given in an audio file's header. If
1065 this option is given then SoX will keep reading audio until it reaches
1066 the end of the input file.
1068 \fB\-v\fR, \fB\-\-volume\fR \fIFACTOR\fR
1069 Intended for use when combining multiple input files, this option
1070 adjusts the volume of the file that follows it on the command line by a
1071 factor of \fIFACTOR\fR. This allows it to be `balanced' w.r.t. the other
1072 input files.  This is a linear (amplitude) adjustment, so a number less
1073 than 1 decreases the volume and a number greater than 1 increases it.  If a
1074 negative number is given then in addition to the volume adjustment,
1075 the audio signal will be inverted.
1077 See also the
1078 .BR norm ,
1079 .BR vol ,
1081 .B gain
1082 effects, and see \fBInput File Combining\fR above.
1083 .SS Input & Output File Format Options
1084 These options apply to the input or output file whose name they
1085 immediately precede on the command line and are used mainly when
1086 working with headerless file formats or when specifying a format
1087 for the output file that is different to that of the input file.
1089 \fB\-b\fR \fIBITS\fR, \fB\-\-bits\fR \fIBITS\fR
1090 The number of bits (a.k.a. bit-depth or sometimes word-length) in each
1091 encoded sample.  Not applicable to complex encodings such as MP3 or GSM.
1092 Not necessary with encodings that have a fixed number of bits, e.g.
1093 A/\(*m-law, ADPCM.
1095 For an input file, the most common use for this option is to inform
1096 SoX of the number of bits per sample in a `raw' (`headerless') audio
1097 file.  For example
1099    sox \-r 16k \-e signed \-b 8 input.raw output.wav
1101 converts a particular `raw' file to a self-describing `WAV' file.
1103 For an output file, this option can be used (perhaps along with
1104 .BR \-e )
1105 to set the output encoding size.  By default (i.e. if this option is
1106 not given), the output encoding size will (providing it is supported
1107 by the output file type) be set to the input encoding size.  For
1108 example
1110    sox input.cdda \-b 24 output.wav
1112 converts raw CD digital audio (16-bit, signed-integer) to a
1113 24-bit (signed-integer) `WAV' file.
1115 \fB\-c\fR \fICHANNELS\fR, \fB\-\-channels\fR \fICHANNELS\fR
1116 The number of audio channels in the audio file. This can be any number
1117 greater than zero.
1119 For an input file, the most common use for this option is to inform
1120 SoX of the number of channels in a `raw' (`headerless') audio file.
1121 Occasionally, it may be useful to use this option with a `headered'
1122 file, in order to override the (presumably incorrect) value in the
1123 header\*mnote that this is only supported with certain file types.
1124 Examples:
1126    sox \-r 48k \-e float \-b 32 \-c 2 input.raw output.wav
1128 converts a particular `raw' file to a self-describing `WAV' file.
1130    play \-c 1 music.wav
1132 interprets the file data as belonging to a single channel regardless
1133 of what is indicated in the file header.  Note that if the file does
1134 in fact have two channels, this will result in the file playing at
1135 half speed.
1137 For an output file, this option provides a shorthand for specifying
1138 that the
1139 .B channels
1140 effect should be invoked in order to change (if necessary) the number
1141 of channels in the audio signal to the number given.  For
1142 example, the following two commands are equivalent:
1144 .ne 2
1145    sox input.wav \-c 1 output.wav bass \-b 24
1146    sox input.wav      output.wav bass \-b 24 channels 1
1148 though the second form is more flexible as it allows the effects to
1149 be ordered arbitrarily.
1151 \fB\-e \fIENCODING\fR, \fB\-\-encoding\fR \fIENCODING\fR
1152 The audio encoding type.  Sometimes needed with file-types that
1153 support more than one encoding type. For example, with raw, WAV, or
1154 AU (but not, for example, with MP3 or FLAC).
1155 The available encoding types are as follows:
1157 .IP \fBsigned-integer\fR
1158 PCM data stored as signed (`two's complement') integers.  Commonly used
1159 with a 16 or 24 \-bit encoding size.
1160 A value of 0 represents minimum signal power.
1161 .IP \fBunsigned-integer\fR
1162 PCM data stored as unsigned integers.  Commonly used
1163 with an 8-bit encoding size.  A value of 0 represents maximum signal
1164 power.
1165 .IP \fBfloating-point\fR
1166 PCM data stored as IEEE 753 single precision (32-bit) or double
1167 precision (64-bit) floating-point (`real') numbers.
1168 A value of 0 represents minimum signal power.
1169 .IP \fBa-law\fR
1170 International telephony standard for logarithmic encoding to 8 bits per
1171 sample.  It has a precision equivalent to roughly 13-bit PCM and is
1172 sometimes encoded with reversed bit-ordering (see the
1173 .B \-X
1174 option).
1175 .IP \fBu-law,\ mu-law\fR
1176 North American telephony standard for logarithmic encoding to 8 bits per
1177 sample.  A.k.a. \(*m-law.  It has a precision equivalent to roughly
1178 14-bit PCM and is
1179 sometimes encoded with reversed bit-ordering (see the
1180 .B \-X
1181 option).
1182 .IP \fBoki-adpcm\fR
1183 OKI (a.k.a. VOX, Dialogic, or Intel) 4-bit ADPCM;
1184 it has a precision equivalent to roughly 12-bit PCM.
1185 ADPCM is a form of audio compression that has a good
1186 compromise between audio quality and encoding/decoding speed.
1187 .IP \fBima-adpcm\fR
1188 IMA (a.k.a. DVI) 4-bit ADPCM;
1189 it has a precision equivalent to roughly 13-bit PCM.
1190 .IP \fBms-adpcm\fR
1191 Microsoft 4-bit ADPCM; it has a precision equivalent to roughly 14-bit
1192 PCM.
1193 .IP \fBgsm-full-rate\fR
1194 GSM is currently used for the vast majority of the world's digital
1195 wireless telephone calls.  It utilises several audio
1196 formats with different bit-rates and associated speech quality.
1197 SoX has support for GSM's original 13kbps `Full Rate' audio format.
1198 It is usually CPU-intensive to work with GSM audio.
1202 Encoding names can be abbreviated where this would not be ambiguous;
1203 e.g. `unsigned-integer' can be given as `un', but not `u' (ambiguous
1204 with `u-law').
1206 For an input file, the most common use for this option is to inform
1207 SoX of the encoding of a `raw' (`headerless') audio
1208 file (see the examples in
1209 .B \-b
1211 .B \-c
1212 above).
1214 For an output file, this option can be used (perhaps along with
1215 .BR \-b )
1216 to set the output encoding type  For example
1218    sox input.cdda \-e float output1.wav
1220    sox input.cdda \-b 64 \-e float output2.wav
1222 convert raw CD digital audio (16-bit, signed-integer) to
1223 floating-point `WAV' files (single & double precision respectively).
1225 By default (i.e. if this option is not given), the output encoding
1226 type will (providing it is supported by the output file type) be set
1227 to the input encoding type.
1229 \fB\-\-no\-glob\fR
1230 Specifies that filename `globbing' (wild-card matching) should not be
1231 performed by SoX on the following filename.  For example, if the current
1232 directory contains the two files `five-seconds.wav' and `five*.wav', then
1234    play \-\-no\-glob "five*.wav"
1236 can be used to play just the single file `five*.wav'.
1238 \fB\-r, \fB\-\-rate\fR \fIRATE\fR[\fBk\fR]
1239 Gives the sample rate in Hz (or kHz if appended with `k') of the file.
1241 For an input file, the most common use for this option is to inform
1242 SoX of the sample rate of a `raw' (`headerless') audio file (see the
1243 examples in
1244 .B \-b
1246 .B \-c
1247 above).
1248 Occasionally it may be useful to use this option with a `headered'
1249 file, in order to override the (presumably incorrect) value in the
1250 header\*mnote that this is only supported with certain file types.
1251 For example, if audio was recorded with a sample-rate of say 48k from
1252 a source that played back a little, say 1\*d5%, too slowly, then
1254    sox \-r 48720 input.wav output.wav
1256 effectively corrects the speed by changing only the file header (but see
1257 also the
1258 .B speed
1259 effect for the more usual solution to this problem).
1261 For an output file, this option provides a shorthand for specifying
1262 that the
1263 .B rate
1264 effect should be invoked in order to change (if necessary) the sample
1265 rate of the audio signal to the given value.  For example, the
1266 following two commands are equivalent:
1268 .ne 2
1269    sox input.wav \-r 48k output.wav bass \-b 24
1270    sox input.wav        output.wav bass \-b 24 rate 48k
1272 though the second form is more flexible as it allows
1273 .B rate
1274 options to be given, and allows the effects to be ordered arbitrarily.
1276 \fB\-t\fR, \fB\-\-type\fR \fIFILE-TYPE\fR
1277 Gives the type of the audio file.  For both input and output files,
1278 this option is commonly used to inform SoX of the type a `headerless'
1279 audio file (e.g. raw, mp3) where the actual/desired type cannot be
1280 determined from a given filename extension.  For example:
1282    another-command | sox \-t mp3 \- output.wav
1284    sox input.wav \-t raw output.bin
1286 It can also be used to override the type implied by an input filename
1287 extension, but if overriding with a type that has a header, SoX will
1288 exit with an appropriate error message if such a header is not
1289 actually present.
1292 .BR soxformat (7)
1293 for a list of supported file types.
1295 \fB\-L\fR, \fB\-\-endian little\fR
1297 \fB\-B\fR, \fB\-\-endian big\fR
1299 \fB\-x\fR, \fB\-\-endian swap\fR
1300 .if t .sp -.5
1301 .if n .sp -1
1304 These options specify whether the byte-order of the audio data is,
1305 respectively, `little endian', `big endian', or the opposite to that of
1306 the system on which SoX is being used.  Endianness applies only to data
1307 encoded as floating-point, or as signed or unsigned integers of 16 or
1308 more bits.  It is often necessary to specify one of these options for
1309 headerless files, and sometimes necessary for (otherwise)
1310 self-describing files.  A given endian-setting option may be ignored
1311 for an input file whose header contains a specific endianness
1312 identifier, or for an output file that is actually an audio device.
1314 .B N.B.
1315 Unlike other format characteristics, the endianness (byte, nibble, &
1316 bit ordering) of the input file is not automatically used for the output
1317 file; so, for example, when the following is run on a little-endian system:
1319    sox \-B audio.s16 trimmed.s16 trim 2
1321 trimmed.s16 will be created as little-endian;
1323    sox \-B audio.s16 \-B trimmed.s16 trim 2
1325 must be used to preserve big-endianness in the output file.
1328 .B \-V
1329 option can be used to check the selected orderings.
1331 \fB\-N\fR, \fB\-\-reverse\-nibbles\fR
1332 Specifies that the nibble ordering (i.e. the 2 halves of a byte) of the samples should be reversed;
1333 sometimes useful with ADPCM-based formats.
1335 .B N.B.
1336 See also N.B. in section on
1337 .B \-x
1338 above.
1340 \fB\-X\fR, \fB\-\-reverse\-bits\fR
1341 Specifies that the bit ordering of the samples should be reversed;
1342 sometimes useful with a few (mostly headerless) formats.
1344 .B N.B.
1345 See also N.B. in section on
1346 .B \-x
1347 above.
1348 .SS Output File Format Options
1349 These options apply only to the output file and may precede only the output
1350 filename on the command line.
1352 \fB\-\-add\-comment \fITEXT\fR
1353 Append a comment in the output file header (where applicable).
1355 \fB\-\-comment \fITEXT\fR
1356 Specify the comment text to store in the output file header (where
1357 applicable).
1359 SoX will provide a default comment if this option (or
1360 .BR \-\-comment\-file )
1361 is not given. To specify that no comment should be stored in the output file,
1363 .B "\-\-comment \(dq\(dq" .
1365 \fB\-\-comment\-file \fIFILENAME\fR
1366 Specify a file containing the comment text to store in the output
1367 file header (where applicable).
1369 \fB\-C\fR, \fB\-\-compression\fR \fIFACTOR\fR
1370 The compression factor for variably compressing output file formats.  If
1371 this option is not given then a default compression factor will apply.
1372 The compression factor is interpreted differently for different
1373 compressing file formats.  See the description of the file formats that
1374 use this option in
1375 .BR soxformat (7)
1376 for more information.
1377 .SH EFFECTS
1378 In addition to converting, playing and recording audio files, SoX can
1379 be used to invoke a number of audio `effects'.  Multiple effects may
1380 be applied by specifying them one after another at the end of the SoX
1381 command line, forming an `effects chain'.
1382 Note that applying multiple effects in real-time (i.e. when playing audio)
1383 is likely to require a high performance computer. Stopping other applications
1384 may alleviate performance issues should they occur.
1386 Some of the SoX effects are primarily intended to be applied to a single
1387 instrument or `voice'.  To facilitate this, the \fBremix\fR effect and
1388 the global SoX option \fB\-M\fR can be used to isolate then recombine
1389 tracks from a multi-track recording.
1390 .SS Multiple Effects Chains
1391 A single effects chain is made up of one or more effects.  Audio from
1392 the input runs through the chain until either the end of the input file
1393 is reached or an effect in the chain requests to terminate the chain.
1395 SoX supports running multiple effects chains over the input audio.
1396 In this case, when one chain indicates it is done processing audio,
1397 the audio data is then sent through the next effects chain.  This
1398 continues until either no more effects chains exist or the input has
1399 reached the end of the file.
1401 An effects chain is terminated by placing a
1402 .B :
1403 (colon) after an effect.  Any following effects are a part of a new effects chain.
1405 It is important to place the effect that will stop the chain
1406 as the first effect in the chain.  This is because any samples
1407 that are buffered by effects to the left of the terminating effect
1408 will be discarded.  The amount of samples discarded is related to the
1409 .B \-\-buffer
1410 option and it should be kept small, relative to the sample rate, if
1411 the terminating effect cannot be first.  Further information on
1412 stopping effects can be found in the
1413 .B Stopping SoX
1414 section.
1416 There are a few pseudo-effects that aid using multiple effects chains.
1417 These include
1418 .B newfile
1419 which will start writing to a new output file before moving to the
1420 next effects chain and
1421 .B restart
1422 which will move back to the first effects chain.  Pseudo-effects
1423 must be specified as the first effect in a chain and as the only
1424 effect in a chain (they must have a
1425 .B :
1426 before and after they are specified).
1428 The following is an example of multiple effects chains.  It will split the
1429 input file into multiple files of 30 seconds in length.  Each output filename
1430 will have unique number in its name as documented in the
1431 .B Output Files
1432 section.
1434    sox infile.wav output.wav trim 0 30 : newfile : restart
1436 .SS Common Notation And Parameters
1437 In the descriptions that follow,
1438 brackets [ ] are used to denote parameters that are optional, braces
1439 { } to denote those that are both optional and repeatable,
1440 and angle brackets < > to denote those that are repeatable but not
1441 optional.
1442 Where applicable, default values for optional parameters are shown in parenthesis ( ).
1444 The following parameters are used with, and have the same meaning for,
1445 several effects:
1447 \fIcenter\fR[\fBk\fR]
1449 .IR frequency .
1451 \fIfrequency\fR[\fBk\fR]
1452 A frequency in Hz, or, if appended with `k', kHz.
1454 \fIgain\fR
1455 A power gain in dB.
1456 Zero gives no gain; less than zero gives an attenuation.
1458 \fIposition\fR
1459 A position within the audio stream; the syntax is
1460 [\fB=\fR\^|\^\fB+\fR\^|\^\fB\-\fR]\fItimespec\fR, where \fItimespec\fR is a
1461 time specification (see below).  The optional first character indicates
1462 whether the \fItimespec\fR is to be interpreted relative to the start
1463 (\fB=\fR) or end (\fB\-\fR) of audio, or to the previous \fIposition\fR if
1464 the effect accepts multiple position arguments (\fB+\fR).  The audio length
1465 must be known for end-relative locations to work; some effects do accept
1466 \fB\-0\fR for end-of-audio, though, even if the length is unknown.  Which of
1467 \fB=\fR, \fB+\fR, \fB\-\fR is the default depends on the effect and is shown
1468 in its syntax as, e.g., \fIposition(+)\fR.
1470 Examples: \fB=2:00\fR (two minutes into the audio stream), \fB\-100s\fR (one
1471 hundred samples before the end of audio), \fB+0:12+10s\fR (twelve seconds
1472 and ten samples after the previous position), \fB\-0.5+1s\fR (one sample less
1473 than half a second before the end of audio).
1475 \fIwidth\fR[\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]
1476 Used to specify the band-width of a filter.  A number of different
1477 methods to specify the width are available (though not all for every effect).
1478 One of the characters shown may be appended to select the desired method
1479 as follows:
1480 .ne 5
1482 center;
1483 cI cI lI
1484 cB c l.
1485 \       Method  Notes
1486 h       Hz      \ 
1487 k       kHz     \ 
1488 o       Octaves \ 
1489 q       Q-factor        See [2]
1493 For each effect that uses this parameter, the default method (i.e. if no
1494 character is appended) is the one that it listed first in the first line of
1495 the effect's description.
1497 Most effects that expect an audio position or duration in a parameter,
1498 i.e. a \fBtime specification\fR, accept either of the following two forms:
1500 [[\fIhours\fB:\fR]\fIminutes\fB:\fR]\fIseconds\fR[\fB.\fIfrac\fR][\fBt\fR]
1501 A specification of `1:30\*d5' corresponds to one minute, thirty and
1502 \(12 seconds.  The \fBt\fR suffix is entirely optional (however, see the
1503 \fBsilence\fR effect for an exception).
1504 Note that the component values do not have to be normalized; e.g.,
1505 `1:23:45', `83:45', `79:0285', `1:0:1425', `1::1425' and `5025' all are
1506 legal and equivalent to each other.
1508 \fIsamples\fBs\fR
1509 Specifies the number of samples directly, as in `8000s'.  For large sample
1510 counts, \fIe notation\fR is supported: `1.7e6s' is the same as `1700000s'.
1512 Time specifications can also be chained with \fB+\fR or \fB\-\fR into a new
1513 time specification where the right part is added to or subtracted from the
1514 left, respectively: `3:00\-200s' means two hundred samples less than three
1515 minutes.
1517 To see if SoX has support for an optional effect, enter
1518 .B sox \-h
1519 and look for its name under the list: `EFFECTS'.
1520 .SS Supported Effects
1521 Note: a categorised list of the effects can be found in the
1522 accompanying `README' file.
1524 \fBallpass\fR \fIfrequency\fR[\fBk\fR]\fI width\fR[\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]
1525 Apply a two-pole all-pass filter with central frequency (in Hz)
1526 \fIfrequency\fR, and filter-width \fIwidth\fR.
1527 An all-pass filter changes the
1528 audio's frequency to phase relationship without changing its frequency
1529 to amplitude relationship.  The filter is described in detail in [1].
1531 This effect supports the \fB\-\-plot\fR global option.
1533 \fBband\fR [\fB\-n\fR] \fIcenter\fR[\fBk\fR]\fR [\fIwidth\fR[\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]]
1534 Apply a band-pass filter.
1535 The frequency response drops logarithmically
1536 around the
1537 .I center
1538 frequency.
1540 .I width
1541 parameter gives the slope of the drop.
1542 The frequencies at
1543 .I center
1545 .I width
1547 .I center
1549 .I width
1550 will be half of their original amplitudes.
1551 .B band
1552 defaults to a mode oriented to pitched audio,
1553 i.e. voice, singing, or instrumental music.
1554 The \fB\-n\fR (for noise) option uses the alternate mode
1555 for un-pitched audio (e.g. percussion).
1556 .B Warning:
1557 \fB\-n\fR introduces a power-gain of about 11dB in the filter, so beware
1558 of output clipping.
1559 .B band
1560 introduces noise in the shape of the filter,
1561 i.e. peaking at the
1562 .I center
1563 frequency and settling around it.
1565 This effect supports the \fB\-\-plot\fR global option.
1567 See also \fBsinc\fR for a bandpass filter with steeper shoulders.
1569 \fBbandpass\fR\^|\^\fBbandreject\fR [\fB\-c\fR] \fIfrequency\fR[\fBk\fR]\fI width\fR[\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]
1570 Apply a two-pole Butterworth band-pass or band-reject filter with
1571 central frequency \fIfrequency\fR, and (3dB-point) band-width
1572 \fIwidth\fR.  The
1573 .B \-c
1574 option applies only to
1575 .B bandpass
1576 and selects a constant skirt gain (peak gain = Q) instead of the
1577 default: constant 0dB peak gain.
1578 The filters roll off at 6dB per octave (20dB per decade)
1579 and are described in detail in [1].
1581 These effects support the \fB\-\-plot\fR global option.
1583 See also \fBsinc\fR for a bandpass filter with steeper shoulders.
1585 \fBbandreject \fIfrequency\fR[\fBk\fR]\fI width\fR[\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]
1586 Apply a band-reject filter.
1587 See the description of the \fBbandpass\fR effect for details.
1589 \fBbass\fR\^|\^\fBtreble \fIgain\fR [\fIfrequency\fR[\fBk\fR]\fR [\fIwidth\fR[\fBs\fR\^|\^\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]]]
1590 Boost or cut the bass (lower) or treble (upper) frequencies of the audio
1591 using a two-pole shelving filter with a response similar to that
1592 of a standard hi-fi's tone-controls.  This is also
1593 known as shelving equalisation (EQ).
1595 \fIgain\fR gives the gain at 0\ Hz (for \fBbass\fR), or whichever is
1596 the lower of \(ap22\ kHz and the Nyquist frequency (for \fBtreble\fR).  Its
1597 useful range is about \-20 (for a large cut) to +20 (for a large
1598 boost).
1599 Beware of
1600 .B Clipping
1601 when using a positive \fIgain\fR.
1603 If desired, the filter can be fine-tuned using the following
1604 optional parameters:
1606 \fIfrequency\fR sets the filter's central frequency and so can be
1607 used to extend or reduce the frequency range to be boosted or
1608 cut.  The default value is 100\ Hz (for \fBbass\fR) or 3\ kHz (for
1609 \fBtreble\fR).
1611 \fIwidth\fR
1612 determines how
1613 steep is the filter's shelf transition.  In addition to the common
1614 width specification methods described above,
1615 `slope' (the default, or if appended with `\fBs\fR') may be used.
1616 The useful range of `slope' is
1617 about 0\*d3, for a gentle slope, to 1 (the maximum), for a steep slope; the
1618 default value is 0\*d5.
1620 The filters are described in detail in [1].
1622 These effects support the \fB\-\-plot\fR global option.
1624 See also \fBequalizer\fR for a peaking equalisation effect.
1626 \fBbend\fR [\fB\-f \fIframe-rate\fR(25)] [\fB\-o \fIover-sample\fR(16)] { \fIstart-position(+)\fB,\fIcents\fB,\fIend-position(+)\fR }
1627 Changes pitch by specified amounts at specified times.
1628 Each given triple: \fIstart-position\fB,\fIcents\fB,\fIend-position\fR
1629 specifies one bend.
1630 \fIcents\fR is the number of cents (100 cents = 1 semitone) by which to
1631 bend the pitch. The other values specify the points in time at which to start
1632 and end bending the pitch, respectively.
1634 The pitch-bending algorithm utilises the Discrete Fourier Transform (DFT)
1635 at a particular frame rate and over-sampling rate.
1637 .B \-f
1639 .B \-o
1640 parameters may be used to adjust these parameters and thus control the
1641 smoothness of the changes in pitch.
1643 For example, an initial tone is generated, then bent three times, yielding
1644 four different notes in total:
1646 .ne 2
1647    play \-n synth 2.5 sin 667 gain 1 \\
1648         bend .35,180,.25  .15,740,.53  0,\-520,.3
1650 Here, the first bend runs from 0.35 to 0.6, and the second one from 0.75
1651 to 1.28 seconds.
1652 Note that the clipping that is produced in this example is deliberate;
1653 to remove it, use
1654 .B gain\ \-5
1655 in place of
1656 .BR gain\ 1 .
1658 See also \fBpitch\fR.
1660 \fBbiquad \fIb0 b1 b2 a0 a1 a2\fR
1661 Apply a biquad IIR filter with the given coefficients. Where b* and a* are
1662 the numerator and denominator coefficients respectively.
1664 See http://en.wikipedia.org/wiki/Digital_biquad_filter (where a0 = 1).
1666 This effect supports the \fB\-\-plot\fR global option.
1668 \fBchannels \fICHANNELS\fR
1669 Invoke a simple algorithm to change the number of channels in
1670 the audio signal to the given number
1671 .IR CHANNELS :
1672 mixing if decreasing the number of channels or duplicating if
1673 increasing the number of channels.
1676 .B channels
1677 effect is invoked automatically if SoX's \fB\-c\fR option specifies a
1678 number of channels that is different to that of the input file(s).
1679 Alternatively, if this effect is given explicitly, then SoX's
1680 .B \-c
1681 option need not be given.  For example, the following two commands are
1682 equivalent:
1684 .ne 2
1685    sox input.wav \-c 1 output.wav bass \-b 24
1686    sox input.wav      output.wav bass \-b 24 channels 1
1688 though the second form is more flexible as it allows the effects to
1689 be ordered arbitrarily.
1691 See also
1692 .B remix
1693 for an effect that allows channels to be mixed/selected arbitrarily.
1695 \fBchorus \fIgain-in gain-out\fR <\fIdelay decay speed depth \fB\-s\fR\^|\^\fB\-t\fR>
1696 Add a chorus effect to the audio.  This can make a single vocal sound
1697 like a chorus, but can also be applied to instrumentation.
1699 Chorus resembles an echo effect with a short delay, but
1700 whereas with echo the delay is constant, with chorus, it
1701 is varied using sinusoidal or triangular modulation.  The modulation
1702 depth defines the range the modulated delay is played before or after the
1703 delay. Hence the delayed sound will sound slower or faster, that is the delayed
1704 sound tuned around the original one, like in a chorus where some vocals are
1705 slightly off key.
1706 See [3] for more discussion of the chorus effect.
1708 Each four-tuple parameter
1709 delay/decay/speed/depth gives the delay in milliseconds
1710 and the decay (relative to gain-in) with a modulation
1711 speed in Hz using depth in milliseconds.
1712 The modulation is either sinusoidal (\fB\-s\fR) or triangular
1713 (\fB\-t\fR).  Gain-out is the volume of the output.
1715 A typical delay is around 40ms to 60ms; the modulation speed is best
1716 near 0\*d25Hz and the modulation depth around 2ms.
1717 For example, a single delay:
1719    play guitar1.wav chorus 0.7 0.9 55 0.4 0.25 2 \-t
1721 Two delays of the original samples:
1723 .ne 2
1724    play guitar1.wav chorus 0.6 0.9 50 0.4 0.25 2 \-t \\
1725          60 0.32 0.4 1.3 \-s
1727 A fuller sounding chorus (with three additional delays):
1729 .ne 2
1730    play guitar1.wav chorus 0.5 0.9 50 0.4 0.25 2 \-t \\
1731          60 0.32 0.4 2.3 \-t 40 0.3 0.3 1.3 \-s
1734 \fBcompand \fIattack1\fB,\fIdecay1\fR{\fB,\fIattack2\fB,\fIdecay2\fR}
1735 [\fIsoft-knee-dB\fB:\fR]\fIin-dB1\fR[\fB,\fIout-dB1\fR]{\fB,\fIin-dB2\fB,\fIout-dB2\fR}
1737 [\fIgain\fR [\fIinitial-volume-dB\fR [\fIdelay\fR]]]
1739 Compand (compress or expand) the dynamic range of the audio.
1742 .I attack
1744 .I decay
1745 parameters (in seconds) determine the time over which the
1746 instantaneous level of the input signal is averaged to determine its
1747 volume; attacks refer to increases in volume and decays refer to
1748 decreases.
1749 For most situations, the attack time (response to the music getting
1750 louder) should be shorter than the decay time because the human ear is more
1751 sensitive to sudden loud music than sudden soft music.
1752 Where more than one pair of attack/decay parameters are
1753 specified, each input channel is companded separately and the number of
1754 pairs must agree with the number of input channels.
1755 Typical values are
1756 .B 0\*d3,0\*d8
1757 seconds.
1759 The second parameter is a list of points on the compander's transfer
1760 function specified in dB relative to the maximum possible signal
1761 amplitude.  The input values must be in a strictly increasing order but
1762 the transfer function does not have to be monotonically rising.  If
1763 omitted, the value of
1764 .I out-dB1
1765 defaults to the same value as
1766 .IR in-dB1 ;
1767 levels below
1768 .I in-dB1
1769 are not companded (but may have gain applied to them).
1770 The point \fB0,0\fR is assumed but may be overridden (by
1771 \fB0,\fIout-dBn\fR).
1772 If the list is preceded by a
1773 .I soft-knee-dB
1774 value, then the points at where adjacent line segments on the
1775 transfer function meet will be rounded by the amount given.
1776 Typical values for the transfer function are
1777 .BR 6:\-70,\-60,\-20 .
1779 The third (optional) parameter is an additional gain in dB to be applied
1780 at all points on the transfer function and allows easy adjustment
1781 of the overall gain.
1783 The fourth (optional) parameter is an initial level to be assumed for
1784 each channel when companding starts.  This permits the user to supply a
1785 nominal level initially, so that, for example, a very large gain is not
1786 applied to initial signal levels before the companding action has begun
1787 to operate: it is quite probable that in such an event, the output would
1788 be severely clipped while the compander gain properly adjusts itself.
1789 A typical value (for audio which is initially quiet) is
1790 .B \-90
1793 The fifth (optional) parameter is a delay in seconds.  The input signal
1794 is analysed immediately to control the compander, but it is delayed
1795 before being fed to the volume adjuster.  Specifying a delay
1796 approximately equal to the attack/decay times allows the compander to
1797 effectively operate in a `predictive' rather than a reactive mode.
1798 A typical value is
1799 .B 0\*d2
1800 seconds.
1802 center;
1803 c8 c8 c.
1804 *       *       *
1808 The following example might be used to make a piece of music with both
1809 quiet and loud passages suitable for listening to in a noisy environment
1810 such as a moving vehicle:
1812    sox asz.wav asz-car.wav compand 0.3,1 6:\-70,\-60,\-20 \-5 \-90 0.2
1814 The transfer function (`6:\-70,...') says that very soft sounds (below
1815 \-70dB) will remain unchanged.  This will stop the compander from
1816 boosting the volume on `silent' passages such as between movements.
1817 However, sounds in the range \-60dB to 0dB (maximum
1818 volume) will be boosted so that the 60dB dynamic range of the
1819 original music will be compressed 3-to-1 into a 20dB range, which is
1820 wide enough to enjoy the music but narrow enough to get around the
1821 road noise.  The `6:' selects 6dB soft-knee companding.
1822 The \-5 (dB) output gain is needed to avoid clipping (the number is
1823 inexact, and was derived by experimentation).
1824 The \-90 (dB) for the initial volume will work fine for a clip that starts
1825 with near silence, and the delay of 0\*d2 (seconds) has the effect of causing
1826 the compander to react a bit more quickly to sudden volume changes.
1828 In the next example, compand is being used as a noise-gate for when the
1829 noise is at a lower level than the signal:
1831    play infile compand .1,.2 \-inf,\-50.1,\-inf,\-50,\-50 0 \-90 .1
1833 Here is another noise-gate, this time for when the
1834 noise is at a higher level than the signal (making it, in some ways,
1835 similar to squelch):
1837    play infile compand .1,.1 \-45.1,\-45,\-inf,0,\-inf 45 \-90 .1
1839 This effect supports the \fB\-\-plot\fR global option (for the transfer function).
1841 See also
1842 .B mcompand
1843 for a multiple-band companding effect.
1845 \fBcontrast \fR[\fIenhancement-amount\fR(75)]
1846 Comparable with compression, this effect modifies an audio signal to
1847 make it sound louder.
1848 .I enhancement-amount
1849 controls the amount of the enhancement and is a number in the range 0\-100.
1850 Note that
1851 .I enhancement-amount
1852 = 0 still gives a significant contrast enhancement.
1854 See also the
1855 .B compand
1857 .B mcompand
1858 effects.
1860 \fBdcshift \fIshift\fR [\fIlimitergain\fR]
1861 Apply a DC shift to the audio.  This can be useful to remove a DC
1862 offset (caused perhaps by a hardware problem in the recording chain)
1863 from the audio.  The effect of a DC offset is reduced headroom and
1864 hence volume.
1866 .B stat
1868 .B stats
1869 effect can be used to determine if a signal has a DC offset.
1871 The given \fIdcshift\fR value is a floating point number in the range
1872 of \(+-2 that indicates the amount to shift the audio (which is in the
1873 range of \(+-1).
1875 An optional
1876 .I limitergain
1877 can be specified as well.  It should have a value much less than 1
1878 (e.g. 0\*d05 or 0\*d02) and is used only on peaks to prevent clipping.
1880 center;
1881 c8 c8 c.
1882 *       *       *
1886 An alternative approach to removing a DC offset (albeit with a short delay)
1887 is to use the
1888 .B highpass
1889 filter effect at a frequency of say 10Hz, as illustrated in the following
1890 example:
1892    sox \-n dc.wav synth 5 sin %0 50
1893    sox dc.wav fixed.wav highpass 10
1896 \fBdeemph\fR
1897 Apply Compact Disc (IEC 60908) de-emphasis (a treble attenuation shelving
1898 filter).
1900 Pre-emphasis was applied in the mastering of some CDs issued in the early
1901 1980s.  These included many classical music albums, as well as now
1902 sought-after issues of albums by The Beatles, Pink Floyd and others.
1903 Pre-emphasis should be removed at playback time by a de-emphasis
1904 filter in the playback device.  However, not all modern CD players have
1905 this filter, and very few PC CD drives have it; playing pre-emphasised
1906 audio without the correct de-emphasis filter results in audio that sounds harsh
1907 and is far from what its creators intended.
1909 With the
1910 .B deemph
1911 effect, it is possible to apply the necessary de-emphasis to audio that
1912 has been extracted from a pre-emphasised CD, and then either burn the
1913 de-emphasised audio to a new CD (which will then play correctly on any
1914 CD player), or simply play the correctly de-emphasised audio files on the
1915 PC.  For example:
1917    sox track1.wav track1\-deemph.wav deemph
1919 and then burn track1-deemph.wav to CD, or
1921    play track1\-deemph.wav
1923 or simply
1925    play track1.wav deemph
1927 The de-emphasis filter is implemented as a biquad and requires the input
1928 audio sample rate to be either 44.1kHz or 48kHz.  Maximum deviation
1929 from the ideal response is only 0\*d06dB (up to 20kHz).
1931 This effect supports the \fB\-\-plot\fR global option.
1933 See also the \fBbass\fR and \fBtreble\fR shelving equalisation effects.
1935 \fBdelay\fR {\fIposition(=)\fR}
1936 Delay one or more audio channels such that they start at the given
1937 \fIposition\fR.
1938 For example,
1939 .B delay 1\*d5 +1 3000s
1940 delays the first channel by 1\*d5 seconds, the second channel by 2\*d5
1941 seconds (one second more than the previous channel), the third channel
1942 by 3000 samples, and leaves any other channels that may be
1943 present un-delayed.
1944 The following (one long) command plays a chime sound:
1946 .ne 3
1947    play \-n synth \-j 3 sin %3 sin %\-2 sin %\-5 sin %\-9 \\
1948         sin %\-14 sin %\-21 fade h .01 2 1.5 delay \\
1949         1.3 1 .76 .54 .27 remix \- fade h 0 2.7 2.5 norm \-1
1951 and this plays a guitar chord:
1953 .ne 2
1954    play \-n synth pl G2 pl B2 pl D3 pl G3 pl D4 pl G4 \\
1955         delay 0 .05 .1 .15 .2 .25 remix \- fade 0 4 .1 norm \-1
1958 \fBdither\fR [\fB\-S\fR\^|\^\fB\-s\fR\^|\^\fB\-f \fIfilter\fR] [\fB\-a\fR] [\fB\-p \fIprecision\fR]
1959 Apply dithering to the audio.
1960 Dithering deliberately adds a small amount of noise to the signal in
1961 order to mask audible quantization effects that can occur if the output
1962 sample size is less than 24 bits.  With no options, this effect will
1963 add triangular (TPDF) white noise.  Noise-shaping (only for certain
1964 sample rates) can be selected with
1965 .BR \-s .
1966 With the
1967 .B \-f
1968 option, it is possible to select a particular noise-shaping filter from
1969 the following list: lipshitz, f-weighted, modified-e-weighted,
1970 improved-e-weighted, gesemann, shibata, low-shibata, high-shibata.  Note
1971 that most filter types are available only with 44100Hz sample rate.  The
1972 filter types are distinguished by the following properties: audibility
1973 of noise, level of (inaudible, but in some circumstances, otherwise
1974 problematic) shaped high frequency noise, and processing speed.
1976 See http://sox.sourceforge.net/SoX/NoiseShaping for graphs of the different
1977 noise-shaping curves.
1980 .B \-S
1981 option selects a slightly `sloped' TPDF, biased towards higher
1982 frequencies.  It can be used at any sampling rate but below \(~~22k,
1983 plain TPDF is probably better, and above \(~~ 37k, noise-shaping
1984 (if available) is probably better.
1987 .B \-a
1988 option enables a mode where dithering (and noise-shaping if applicable)
1989 are automatically enabled only when needed.  The most likely use for
1990 this is when applying fade in or out to an already dithered file, so
1991 that the redithering applies only to the faded portions.  However, auto
1992 dithering is not fool-proof, so the fades should be carefully checked
1993 for any noise modulation; if this occurs, then either re-dither the whole
1994 file, or use
1995 .BR trim ,
1996 .BR fade ,
1997 and concatencate.
2000 .B \-p
2001 option allows overriding the target precision.
2003 If the SoX global option
2004 .B \-R
2005 option is not given, then the pseudo-random number generator used to
2006 generate the white noise will be `reseeded', i.e. the generated noise
2007 will be different between invocations.
2009 This effect should not be followed by any other effect that
2010 affects the audio.
2012 See also the `Dithering' section above.
2014 \fBdownsample\fR [\fIfactor\fR(2)]
2015 Downsample the signal by an integer factor: Only the first out of
2016 each \fIfactor\fR samples is retained, the others are discarded.
2018 No decimation filter is applied.  If the input is not a properly
2019 bandlimited baseband signal, aliasing will occur.  This may be
2020 desirable, e.g., for frequency translation.
2022 For a general resampling effect with anti-aliasing, see \fBrate\fR.  See
2023 also \fBupsample\fR.
2025 \fBearwax\fR
2026 Makes audio easier to listen to on headphones.
2027 Adds `cues' to 44\*d1kHz stereo (i.e. audio CD format) audio so that
2028 when listened to on headphones the stereo image is
2029 moved from inside
2030 your head (standard for headphones) to outside and in front of the
2031 listener (standard for speakers).
2033 \fBecho \fIgain-in gain-out\fR <\fIdelay decay\fR>
2034 Add echoing to the audio.
2035 Echoes are reflected sound and can occur naturally amongst mountains
2036 (and sometimes large buildings) when talking or shouting; digital echo
2037 effects emulate this behaviour and are often used to help fill
2038 out the sound of a single instrument or vocal.  The time difference
2039 between the original signal and the reflection is the `delay' (time),
2040 and the loudness of the reflected signal is the `decay'.  Multiple echoes
2041 can have different delays and decays.
2043 Each given
2044 .I "delay decay"
2045 pair gives the delay in milliseconds
2046 and the decay (relative to gain-in) of that echo.
2047 Gain-out is the volume of the output.
2048 For example:
2049 This will make it sound as if there are twice as many instruments as are
2050 actually playing:
2052    play lead.aiff echo 0.8 0.88 60 0.4
2054 If the delay is very short, then it sound like a (metallic) robot playing
2055 music:
2057    play lead.aiff echo 0.8 0.88 6 0.4
2059 A longer delay will sound like an open air concert in the mountains:
2061    play lead.aiff echo 0.8 0.9 1000 0.3
2063 One mountain more, and:
2065    play lead.aiff echo 0.8 0.9 1000 0.3 1800 0.25
2068 \fBechos \fIgain-in gain-out\fR <\fIdelay decay\fR>
2069 Add a sequence of echoes to the audio.
2070 Each
2071 .I "delay decay"
2072 pair gives the delay in milliseconds
2073 and the decay (relative to gain-in) of that echo.
2074 Gain-out is the volume of the output.
2076 Like the echo effect, echos stand for `ECHO in Sequel', that is the first echos
2077 takes the input, the second the input and the first echos, the third the input
2078 and the first and the second echos, ... and so on.
2079 Care should be taken using many echos; a single echos
2080 has the same effect as a single echo.
2082 The sample will be bounced twice in symmetric echos:
2084    play lead.aiff echos 0.8 0.7 700 0.25 700 0.3
2086 The sample will be bounced twice in asymmetric echos:
2088    play lead.aiff echos 0.8 0.7 700 0.25 900 0.3
2090 The sample will sound as if played in a garage:
2092    play lead.aiff echos 0.8 0.7 40 0.25 63 0.3
2095 \fBequalizer \fIfrequency\fR[\fBk\fR]\fI width\fR[\fBq\fR\^|\^\fBo\fR\^|\^\fBh\fR\^|\^\fBk\fR] \fIgain\fR
2096 Apply a two-pole peaking equalisation (EQ) filter.
2097 With this filter, the signal-level at and around a selected frequency
2098 can be increased or decreased, whilst (unlike band-pass and band-reject
2099 filters) that at all other frequencies is unchanged.
2101 \fIfrequency\fR gives the filter's central frequency in Hz,
2102 \fIwidth\fR, the band-width,
2103 and \fIgain\fR the required gain
2104 or attenuation in dB.
2105 Beware of
2106 .B Clipping
2107 when using a positive \fIgain\fR.
2109 In order to produce complex equalisation curves, this effect
2110 can be given several times, each with a different central frequency.
2112 The filter is described in detail in [1].
2114 This effect supports the \fB\-\-plot\fR global option.
2116 See also \fBbass\fR and \fBtreble\fR for shelving equalisation effects.
2118 \fBfade\fR [\fItype\fR] \fIfade-in-length\fR [\fIstop-position(=)\fR [\fIfade-out-length\fR]]
2119 Apply a fade effect to the beginning, end, or both of the audio.
2121 An optional \fItype\fR can be specified to select the shape of the fade
2122 curve:
2123 \fBq\fR for quarter of a sine wave, \fBh\fR for half a sine
2124 wave, \fBt\fR for linear (`triangular') slope, \fBl\fR for logarithmic,
2125 and \fBp\fR for inverted parabola.  The default is logarithmic.
2127 A fade-in starts from the first sample and ramps the signal level from 0
2128 to full volume over the time given as \fIfade-in-length\fR.  Specify 0 if
2129 no fade-in is wanted.
2131 For fade-outs, the audio will be truncated at
2132 .I stop-position
2133 and the signal level will be ramped from full volume down to 0 over an
2134 interval of \fIfade-out-length\fR before the \fIstop-position\fR.  If
2135 .I fade-out-length
2136 is not specified, it defaults to the same value as
2137 \fIfade-in-length\fR.
2138 No fade-out is performed if
2139 .I stop-position
2140 is not specified.
2141 If the audio length can be determined from the input file header and any
2142 previous effects, then \fB\-0\fR (or, for historical reasons, \fB0\fR) may
2143 be specified for
2144 .I stop-position
2145 to indicate the usual case of a fade-out that ends at the end of the input
2146 audio stream.
2148 Any time specification may be used for \fIfade-in-length\fR and
2149 \fIfade-out-length\fR.
2151 See also the
2152 .B splice
2153 effect.
2155 \fBfir\fR [\fIcoefs-file\fR\^|\^\fIcoefs\fR]
2156 Use SoX's FFT convolution engine with given FIR filter
2157 coefficients.
2158 If a single argument is given then this is treated as the name of a file
2159 containing the filter coefficients (white-space separated; may contain
2160 `#' comments).  If the given filename is `\-', or if no argument is
2161 given, then the coefficients are read from the `standard input' (stdin);
2162 otherwise, coefficients may be given on the command line.
2163 Examples:
2165    sox infile outfile fir 0.0195 \-0.082 0.234 0.891 \-0.145 0.043
2168    sox infile outfile fir coefs.txt
2170 with coefs.txt containing
2172    # HP filter
2173    # freq=10000
2174      1.2311233052619888e\-01
2175     \-4.4777096106211783e\-01
2176      5.1031563346705155e\-01
2177     \-6.6502926320995331e\-02
2178    ...
2181 This effect supports the \fB\-\-plot\fR global option.
2183 \fBflanger\fR [\fIdelay depth regen width speed shape phase interp\fR]
2184 Apply a flanging effect to the audio.
2185 See [3] for a detailed description of flanging.
2187 All parameters are optional (right to left).
2188 .ne 15
2190 center;
2191 cI cI cI lI
2192 cI c c l.
2193 \       Range   Default Description
2194 delay   0 \- 30 0       Base delay in milliseconds.
2195 depth   0 \- 10 2       Added swept delay in milliseconds.
2196 regen   \-95 \- 95      0       T{
2198 Percentage regeneration (delayed signal feedback).
2200 width   0 \- 100        71      T{
2202 Percentage of delayed signal mixed with original.
2204 speed   0\*d1 \- 10     0\*d5   Sweeps per second (Hz).
2205 shape   \       sin     Swept wave shape: \fBsine\fR\^|\^\fBtriangle\fR.
2206 phase   0 \- 100        25      T{
2208 Swept wave percentage phase-shift for multi-channel (e.g. stereo) flange;
2209 0 = 100 = same phase on each channel.
2211 interp  \       lin     T{
2213 Digital delay-line interpolation: \fBlinear\fR\^|\^\fBquadratic\fR.
2218 \fBgain \fR[\fB\-e\fR\^|\^\fB\-B\fR\^|\^\fB\-b\fR\^|\^\fB\-r\fR] [\fB\-n\fR] [\fB\-l\fR\^|\^\fB\-h\fR] [\fIgain-dB\fR]
2219 Apply amplification or attenuation to the audio signal, or, in some
2220 cases, to some of its channels.
2221 Note that use of any of
2222 .BR \-e ,
2223 .BR \-B ,
2224 .BR \-b ,
2225 .BR \-r ,
2227 .B \-n
2228 requires temporary file space to store the audio to be processed, so may
2229 be unsuitable for use with `streamed' audio.
2231 Without other options,
2232 .I gain-dB
2233 is used to adjust the signal power level by the given number of dB:
2234 positive amplifies (beware of Clipping), negative attenuates.  With
2235 other options, the
2236 .I gain-dB
2237 amplification or attenuation is (logically) applied after the processing due to those options.
2239 Given the
2240 .B \-e
2241 option, the levels of the audio channels of a multi-channel file are `equalised', i.e.
2242 gain is applied to all channels other than that with the highest peak
2243 level, such that all channels attain the same peak level
2244 (but, without also giving
2245 .BR \-n ,
2246 the audio is not `normalised').
2249 .B \-B
2250 (balance) option is similar to
2251 .BR \-e ,
2252 but with
2253 .BR \-B,
2254 the RMS level is used instead of the peak level.
2255 .B \-B
2256 might be used to correct stereo imbalance caused by an imperfect record
2257 turntable cartridge.   Note
2258 that unlike
2259 .BR \-e ,
2260 .B \-B
2261 might cause some clipping.
2263 .B \-b
2264 is similar to
2265 .B \-B
2266 but has clipping protection, i.e.  if necessary to prevent clipping
2267 whilst balancing, attenuation is applied to all channels.
2268 Note, however, that in conjunction with
2269 .BR \-n ,
2270 .B \-B
2272 .B \-b
2273 are synonymous.
2276 .B \-r
2277 option is used in conjunction with a prior invocation of
2278 .B gain
2279 with the
2280 .B \-h
2281 option\*msee below for details.
2284 .B \-n
2285 option normalises the audio to 0dB FSD; it is often used in conjunction with a negative
2286 .I gain-dB
2287 to the effect that the audio is normalised to a given level below 0dB.
2288 For example,
2290    sox infile outfile gain \-n
2292 normalises to 0dB, and
2294    sox infile outfile gain \-n \-3
2296 normalises to \-3dB.
2299 .B \-l
2300 option invokes a simple limiter, e.g.
2302    sox infile outfile gain \-l 6
2304 will apply 6dB of gain but never clip.  Note that limiting more than a
2305 few dBs more than occasionally (in a piece of audio) is not recommended
2306 as it can cause audible distortion.
2307 See the
2308 .B compand
2309 effect for a more capable limiter.
2312 .B \-h
2313 option is used to apply gain to provide head-room for subsequent
2314 processing.  For example, with
2316    sox infile outfile gain \-h bass +6
2318 6dB of attenuation will be applied prior to the bass boosting effect
2319 thus ensuring that it will not clip.  Of course, with bass, it is
2320 obvious how much headroom will be needed, but with other effects (e.g.
2321 rate, dither) it is not always as clear.  Another advantage of using
2322 \fBgain \-h\fR rather than an explicit attenuation, is that if the
2323 headroom is not used by subsequent effects, it can be reclaimed with
2324 \fBgain \-r\fR, for example:
2326    sox infile outfile gain \-h bass +6 rate 44100 gain \-r
2328 The above effects chain guarantees never to clip nor amplify;
2329 it attenuates if necessary to prevent clipping, but by only as
2330 much as is needed to do so.
2332 Output formatting (dithering and bit-depth reduction) also requires
2333 headroom (which cannot be `reclaimed'), e.g.
2335    sox infile outfile gain \-h bass +6 rate 44100 gain \-rh dither
2337 Here, the second
2338 .B gain
2339 invocation, reclaims as much of the headroom as it can from the
2340 preceding effects, but retains as much headroom as is needed for
2341 subsequent processing.
2342 The SoX global option
2343 .B \-G
2344 can be given to automatically invoke \fBgain \-h\fR and \fBgain \-r\fR.
2346 See also the
2347 .B norm
2349 .B vol
2350 effects.
2352 \fBhighpass\fR\^|\^\fBlowpass\fR [\fB\-1\fR|\fB\-2\fR] \fIfrequency\fR[\fBk\fR]\fR [\fRwidth\fR[\fBq\fR\^|\^\fBo\fR\^|\^\fBh\fR\^|\^\fBk\fR]]
2353 Apply a high-pass or low-pass filter with 3dB point \fIfrequency\fR.
2354 The filter can be either single-pole (with
2355 .BR \-1 ),
2356 or double-pole (the default, or with
2357 .BR \-2 ).
2358 .I width
2359 applies only to double-pole filters;
2360 the default is Q = 0\*d707 and gives a Butterworth response.  The filters
2361 roll off at 6dB per pole per octave (20dB per pole per decade).  The
2362 double-pole filters are described in detail in [1].
2364 These effects support the \fB\-\-plot\fR global option.
2366 See also \fBsinc\fR for filters with a steeper roll-off.
2368 \fBhilbert\fR [\fB\-n \fItaps\fR]
2369 Apply an odd-tap Hilbert transform filter, phase-shifting the signal
2370 by 90 degrees.
2372 This is used in many matrix coding schemes and for analytic signal
2373 generation.  The process is often written as a multiplication by \fIi\fR
2374 (or \fIj\fR), the imaginary unit.
2376 An odd-tap Hilbert transform filter has a bandpass characteristic,
2377 attenuating the lowest and highest frequencies.  Its bandwidth can be
2378 controlled by the number of filter taps, which can be specified with
2379 \fB\-n\fR.  By default, the number of taps is chosen for a cutoff
2380 frequency of about 75 Hz.
2382 This effect supports the \fB\-\-plot\fR global option.
2384 \fBladspa\fR [\fB-l\fR\^|\^\fB-r\fR] \fImodule\fR [\fIplugin\fR] [\fIargument\fR ...]
2385 Apply a LADSPA [5] (Linux Audio Developer's Simple Plugin API) plugin.
2386 Despite the name, LADSPA is not Linux-specific, and a wide range of
2387 effects is available as LADSPA plugins, such as cmt [6] (the Computer
2388 Music Toolkit) and Steve Harris's plugin collection [7]. The first
2389 argument is the plugin module, the second the name of the plugin (a
2390 module can contain more than one plugin), and any other arguments are
2391 for the control ports of the plugin. Missing arguments are supplied by
2392 default values if possible.
2394 Normally, the number of input ports of the plugin must match the number
2395 of input channels, and the number of output ports determines the output
2396 channel count.  However, the
2397 .B \-r
2398 (replicate) option allows cloning a mono plugin to handle multi-channel
2399 input.
2401 Some plugins introduce latency which SoX may optionally compensate for.
2403 .B \-l
2404 (latency compensation) option automatically compensates for latency
2405 as reported by the plugin via an output control port named "latency".
2407 If found, the environment variable LADSPA_PATH will be used as search
2408 path for plugins.
2410 \fBloudness\fR [\fIgain\fR [\fIreference\fR]]
2411 Loudness control\*msimilar to the
2412 .B gain
2413 effect, but provides equalisation for the human auditory system.  See
2414 http://en.wikipedia.org/wiki/Loudness for a detailed description of
2415 loudness.  The gain is adjusted by the given
2416 .I gain
2417 parameter (usually negative) and the signal equalised according to ISO
2418 226 w.r.t. a reference level of 65dB, though an alternative
2419 .I reference
2420 level may be given if the original audio has been equalised for some
2421 other optimal level.
2422 A default gain of \-10dB is used if a
2423 .I gain
2424 value is not given.
2426 See also the
2427 .B gain
2428 effect.
2430 \fBlowpass\fR [\fB\-1\fR|\fB\-2\fR] \fIfrequency\fR[\fBk\fR]\fR [\fRwidth\fR[\fBq\fR\^|\^\fBo\fR\^|\^\fBh\fR\^|\^\fBk\fR]]
2431 Apply a low-pass filter.
2432 See the description of the \fBhighpass\fR effect for details.
2434 \fBmcompand\fR \(dq\fIattack1\fB,\fIdecay1\fR{\fB,\fIattack2\fB,\fIdecay2\fR}
2435 [\fIsoft-knee-dB\fB:\fR]\fIin-dB1\fR[\fB,\fIout-dB1\fR]{\fB,\fIin-dB2\fB,\fIout-dB2\fR}
2437 [\fIgain\fR [\fIinitial-volume-dB\fR [\fIdelay\fR]]]\(dq {\fIcrossover-freq\fR[\fBk\fR] \(dqattack1,...\(dq}
2439 The multi-band compander is similar to the single-band compander but the
2440 audio is first divided into bands using Linkwitz-Riley cross-over filters
2441 and a separately specifiable compander run on each band.  See the
2442 \fBcompand\fR effect for the definition of its parameters.  Compand
2443 parameters are specified between double quotes and the crossover
2444 frequency for that band is given by \fIcrossover-freq\fR; these can be
2445 repeated to create multiple bands.
2447 For example, the following (one long) command shows how multi-band
2448 companding is typically used in FM radio:
2450 .ne 8
2451    play track1.wav gain \-3 sinc 8000\- 29 100 mcompand \\
2452         \(dq0.005,0.1 \-47,\-40,\-34,\-34,\-17,\-33\(dq 100 \\
2453         \(dq0.003,0.05 \-47,\-40,\-34,\-34,\-17,\-33\(dq 400 \\
2454         \(dq0.000625,0.0125 \-47,\-40,\-34,\-34,\-15,\-33\(dq 1600 \\
2455         \(dq0.0001,0.025 \-47,\-40,\-34,\-34,\-31,\-31,\-0,\-30\(dq 6400 \\
2456         \(dq0,0.025 \-38,\-31,\-28,\-28,\-0,\-25\(dq \\
2457         gain 15 highpass 22 highpass 22 sinc \-n 255 \-b 16 \-17500 \\
2458         gain 9 lowpass \-1 17801
2460 The audio file is played with a simulated FM radio sound (or broadcast
2461 signal condition if the lowpass filter at the end is skipped).
2462 Note that the pipeline is set up with US-style 75us pre-emphasis.
2464 See also
2465 .B compand
2466 for a single-band companding effect.
2468 \fBnoiseprof\fR [\fIprofile-file\fR]
2469 Calculate a profile of the audio for use in noise reduction.  See the
2470 description of the \fBnoisered\fR effect for details.
2472 \fBnoisered\fR [\fIprofile-file\fR [\fIamount\fR]]
2473 Reduce noise in the audio signal by profiling and filtering.  This
2474 effect is moderately effective at removing consistent background noise
2475 such as hiss or hum.  To use it, first run SoX with the \fBnoiseprof\fR
2476 effect on a section of audio that ideally would contain silence but in
2477 fact contains noise\*msuch sections are typically found at the beginning
2478 or the end of a recording.  \fBnoiseprof\fR will write out a noise
2479 profile to \fIprofile-file\fR, or to stdout if no \fIprofile-file\fR or
2480 if `\-' is given.  E.g.
2482    sox speech.wav \-n trim 0 1.5 noiseprof speech.noise-profile
2484 To actually remove the noise, run SoX again, this time with the \fBnoisered\fR
2485 effect;
2486 .B noisered
2487 will reduce noise according to a noise profile (which was generated by
2488 .BR noiseprof ),
2489 from
2490 .IR profile-file ,
2491 or from stdin if no \fIprofile-file\fR or if `\-' is given.  E.g.
2493    sox speech.wav cleaned.wav noisered speech.noise-profile 0.3
2495 How much noise should be removed is specified by
2496 .IR amount \*ma
2497 number between 0 and 1 with a default of 0\*d5.  Higher numbers will
2498 remove more noise but present a greater likelihood of removing wanted
2499 components of the audio signal.  Before replacing an original recording
2500 with a noise-reduced version, experiment with different
2501 .I amount
2502 values to find the optimal one for your audio; use headphones to check
2503 that you are happy with the results, paying particular attention to quieter
2504 sections of the audio.
2506 On most systems, the two stages\*mprofiling and reduction\*mcan be combined
2507 using a pipe, e.g.
2509    sox noisy.wav \-n trim 0 1 noiseprof | play noisy.wav noisered
2512 \fBnorm\fR [\fIdB-level\fR]
2513 Normalise the audio.
2514 .B norm
2515 is just an alias for \fBgain \-n\fR; see the
2516 .B gain
2517 effect for details.
2519 \fBoops\fR
2520 Out Of Phase Stereo effect.
2521 Mixes stereo to twin-mono where each mono channel contains the
2522 difference between the left and right stereo channels.
2523 This is sometimes known as the `karaoke' effect as it often has the effect
2524 of removing most or all of the vocals from a recording.
2525 It is equivalent to \fBremix 1,2i 1,2i\fR.
2527 \fBoverdrive\fR [\fIgain\fR(20) [\fIcolour\fR(20)]]
2528 Non linear distortion.
2529 The \fIcolour\fR parameter controls the amount of even harmonic content
2530 in the over-driven output.
2532 \fBpad\fR { \fIlength\fR[\fB@\fIposition(=)\fR] }
2533 Pad the audio with silence, at the beginning, the end, or any
2534 specified points through the audio.
2535 .I length
2536 is the amount of silence to insert and
2537 .I position
2538 the position in the input audio stream at which to insert it.
2539 Any number of lengths and positions may be specified, provided that
2540 a specified position is not less that the previous one, and any time
2541 specification may be used for them.
2542 .I position
2543 is optional for the first and last lengths specified and
2544 if omitted correspond to the beginning and the end of the audio respectively.
2545 For example,
2546 .B pad 1\*d5 1\*d5
2547 adds 1\*d5 seconds of silence padding at each end of the audio, whilst
2548 .B pad 4000s@3:00
2549 inserts 4000 samples of silence 3 minutes into the audio.
2550 If silence is wanted only at the end of the audio, specify either the end
2551 position or specify a zero-length pad at the start.
2553 See also
2554 .B delay
2555 for an effect that can add silence at the beginning of
2556 the audio on a channel-by-channel basis.
2558 \fBphaser \fIgain-in gain-out delay decay speed\fR [\fB\-s\fR\^|\^\fB\-t\fR]
2559 Add a phasing effect to the audio.
2560 See [3] for a detailed description of phasing.
2562 delay/decay/speed gives the delay in milliseconds
2563 and the decay (relative to gain-in) with a modulation
2564 speed in Hz.
2565 The modulation is either sinusoidal (\fB\-s\fR) \*mpreferable for multiple
2566 instruments, or triangular
2567 (\fB\-t\fR) \*mgives single instruments a sharper phasing effect.
2568 The decay should be less than 0\*d5 to avoid
2569 feedback, and usually no less than 0\*d1.  Gain-out is the volume of the output.
2571 For example:
2573    play snare.flac phaser 0.8 0.74 3 0.4 0.5 \-t
2575 Gentler:
2577    play snare.flac phaser 0.9 0.85 4 0.23 1.3 \-s
2579 A popular sound:
2581    play snare.flac phaser 0.89 0.85 1 0.24 2 \-t
2583 More severe:
2585    play snare.flac phaser 0.6 0.66 3 0.6 2 \-t
2588 \fBpitch \fR[\fB\-q\fR] \fIshift\fR [\fIsegment\fR [\fIsearch\fR [\fIoverlap\fR]]]
2589 Change the audio pitch (but not tempo).
2591 .I shift
2592 gives the pitch shift as positive or negative `cents' (i.e. 100ths of a
2593 semitone).  See the
2594 .B tempo
2595 effect for a description of the other parameters.
2597 See also the \fBbend\fR, \fBspeed\fR,
2599 .B tempo
2600 effects.
2602 \fBrate\fR [\fB\-q\fR\^|\^\fB\-l\fR\^|\^\fB\-m\fR\^|\^\fB\-h\fR\^|\^\fB\-v\fR] [override-options] \fIRATE\fR[\fBk\fR]
2603 Change the audio sampling rate (i.e. resample the audio) to any given
2604 .I RATE
2605 (even non-integer if this is supported by the output file format)
2606 using a quality level defined as follows:
2607 .ne 10
2609 center;
2610 cI cI2w9 cI2w6 cIw6 lIw17
2611 cB c c c l.
2612 \       Quality T{
2614 Band-width
2615 T}      Rej dB  T{
2617 Typical Use
2619 \-q     T{
2621 quick
2622 T}      n/a     T{
2624 \(~=30 @ \ Fs/4
2625 T}      T{
2627 playback on ancient hardware
2629 \-l     low     80%     100     T{
2631 playback on old hardware
2633 \-m     medium  95%     100     T{
2635 audio playback
2637 \-h     high    95%     125     T{
2639 16-bit mastering (use with dither)
2641 \-v     T{
2643 very high
2644 T}      95%     175     24-bit mastering
2648 where
2649 .I Band-width
2650 is the percentage of the audio frequency band that is preserved and
2651 .I Rej dB
2652 is the level of noise rejection.  Increasing levels of resampling
2653 quality come at the expense of increasing amounts of time to process the
2654 audio.  If no quality option is given, the quality level used is `high'
2655 (but see `Playing & Recording Audio' above regarding playback).
2657 The `quick' algorithm uses cubic interpolation; all others use
2658 band-limited interpolation.  By default, all algorithms have
2659 a `linear' phase response; for `medium', `high' and
2660 `very high', the phase response is configurable (see below).
2663 .B rate
2664 effect is invoked automatically if SoX's \fB\-r\fR option specifies a
2665 rate that is different to that of the input file(s).  Alternatively, if
2666 this effect is given explicitly, then SoX's
2667 .B \-r
2668 option need not be given.  For example, the following two commands are
2669 equivalent:
2671 .ne 2
2672    sox input.wav \-r 48k output.wav bass \-b 24
2673    sox input.wav        output.wav bass \-b 24 rate 48k
2675 though the second command is more flexible as it allows
2676 .B rate
2677 options to be given, and allows the effects to be ordered arbitrarily.
2679 center;
2680 c8 c8 c.
2681 *       *       *
2685 Warning: technically detailed discussion follows.
2687 The simple quality selection described above provides settings that
2688 satisfy the needs of the vast majority of resampling tasks.
2689 Occasionally, however, it may be desirable to fine-tune the resampler's
2690 filter response; this can be achieved using
2691 .IR override\ options ,
2692 as detailed in the following table:
2693 .ne 6
2695 center;
2696 lB lw51.
2697 \-M/\-I/\-L     Phase response = minimum/intermediate/linear
2698 \-s     Steep filter (band-width = 99%)
2699 \-a     Allow aliasing/imaging above the pass-band
2700 \-b\ 74\-99\*d7 Any band-width %
2701 \-p\ 0\-100     T{
2703 Any phase response (0 = minimum, 25 = intermediate, 50 = linear, 100 = maximum)
2708 N.B.  Override options cannot be used with the `quick' or `low'
2709 quality algorithms.
2711 All resamplers use filters that can sometimes create `echo' (a.k.a.
2712 `ringing') artefacts with transient signals such as those that occur
2713 with `finger snaps' or other highly percussive sounds.  Such artefacts are
2714 much more noticeable to the human ear if they occur before the transient
2715 (`pre-echo') than if they occur after it (`post-echo').  Note that
2716 frequency of any such artefacts is related to the smaller of the
2717 original and new sampling rates but that if this is at least 44\*d1kHz,
2718 then the artefacts will lie outside the range of human hearing.
2720 A phase response setting may be used to control the distribution of any
2721 transient echo between
2722 `pre' and `post': with minimum phase, there is no pre-echo but the
2723 longest post-echo; with linear phase, pre and post echo are in equal
2724 amounts (in signal terms, but not audibility terms); the intermediate
2725 phase setting attempts to find the best compromise by selecting a small
2726 length (and level) of pre-echo and a medium lengthed post-echo.
2728 Minimum, intermediate, or linear phase response is selected using the
2729 .BR \-M ,
2730 .BR \-I ,
2732 .B \-L
2733 option; a custom phase response can be created with the
2734 .B \-p
2735 option.  Note that phase responses between `linear' and `maximum'
2736 (greater than 50) are rarely useful.
2738 A resampler's band-width setting determines how much of the frequency
2739 content of the original signal (w.r.t. the original sample rate when
2740 up-sampling, or the new sample rate when down-sampling) is preserved
2741 during conversion.  The term `pass-band' is used to refer to all frequencies
2742 up to the band-width point (e.g. for 44\*d1kHz sampling rate, and a
2743 resampling band-width of 95%, the pass-band represents frequencies from
2744 0Hz (D.C.) to circa 21kHz).  Increasing the resampler's band-width
2745 results in a slower conversion and can increase transient echo
2746 artefacts (and vice versa).
2749 .B \-s
2750 `steep filter' option changes resampling band-width from the default 95%
2751 (based on the 3dB point), to 99%.  The
2752 .B \-b
2753 option allows the band-width to be set to any value in the range
2754 74\-99\*d7 %, but note that band-width values greater than 99% are not
2755 recommended for normal use as they can cause excessive transient echo.
2757 If the
2758 .B \-a
2759 option is given, then aliasing/imaging above the pass-band is allowed.  For
2760 example, with 44\*d1kHz sampling rate, and a
2761 resampling band-width of 95%, this means that frequency content above
2762 21kHz can be distorted; however, since this is above the pass-band (i.e.
2763 above the highest frequency of interest/audibility), this may not be a
2764 problem.  The benefits of allowing aliasing/imaging are reduced processing time,
2765 and reduced (by almost half) transient echo artefacts.
2766 Note that if this option is given, then
2767 the minimum band-width allowable with
2768 .B \-b
2769 increases to 85%.
2771 Examples:
2773    sox input.wav \-b 16 output.wav rate \-s \-a 44100 dither \-s
2775 default (high) quality resampling; overrides: steep filter, allow
2776 aliasing; to 44\*d1kHz sample rate; noise-shaped dither to 16-bit WAV
2777 file.
2779    sox input.wav \-b 24 output.aiff rate \-v \-I \-b 90 48k
2781 very high quality resampling; overrides: intermediate phase, band-width 90%;
2782 to 48k sample rate; store output to 24-bit AIFF file.
2784 center;
2785 c8 c8 c.
2786 *       *       *
2791 .B pitch
2793 .B speed
2794 effects use the
2795 .B rate
2796 effect at their core.
2798 \fBremix\fR [\fB\-a\fR\^|\^\fB\-m\fR\^|\^\fB\-p\fR] <\fIout-spec\fR>
2799 \fIout-spec\fR  = \fIin-spec\fR{\fB,\fIin-spec\fR} | \fB0\fR
2801 \fIin-spec\fR   = [\fIin-chan\fR]\^[\fB\-\fR[\fIin-chan2\fR]]\^[\fIvol-spec\fR]
2803 \fIvol-spec\fR  = \fBp\fR\^|\^\fBi\fR\^|\^\fBv\^\fR[\fIvolume\fR]
2806 Select and mix input audio channels into output audio channels.  Each output
2807 channel is specified, in turn, by a given \fIout-spec\fR: a list of
2808 contributing input channels and volume specifications.
2810 Note that this effect operates on the audio
2811 .I channels
2812 within the SoX effects processing chain; it should not be confused with the
2813 .B \-m
2814 global option (where multiple
2815 .I files
2816 are mix-combined before entering the effects chain).
2819 .I out-spec
2820 contains comma-separated input channel-numbers and hyphen-delimited
2821 channel-number ranges; alternatively,
2822 .B 0
2823 may be given to create a silent output channel.  For example,
2825    sox input.wav output.wav remix 6 7 8 0
2827 creates an output file with four channels, where channels 1, 2, and 3 are
2828 copies of channels 6, 7, and 8 in the input file, and channel 4 is silent.
2829 Whereas
2831    sox input.wav output.wav remix 1\-3,7 3
2833 creates a (somewhat bizarre) stereo output file where the left channel
2834 is a mix-down of input channels 1, 2, 3, and 7, and the right channel is
2835 a copy of input channel 3.
2837 Where a range of channels is specified, the channel numbers to the left and
2838 right of the hyphen are optional and default to 1 and to the number of input
2839 channels respectively. Thus
2841    sox input.wav output.wav remix \-
2843 performs a mix-down of all input channels to mono.
2845 By default, where an output channel is mixed from multiple (n) input
2846 channels, each input channel will be scaled by a factor of \(S1/\s-2n\s+2.
2847 Custom mixing volumes can be set by following a given input channel or range
2848 of input channels with a \fIvol-spec\fR (volume specification).
2849 This is one of the letters \fBp\fR, \fBi\fR, or \fBv\fR,
2850 followed by a volume number, the meaning of which depends on the given
2851 letter and is defined as follows:
2853 center;
2854 lI lI lI
2855 c l l.
2856 Letter  Volume number   Notes
2857 p       power adjust in dB      0 = no change
2858 i       power adjust in dB      T{
2860 As `p', but invert the audio
2862 v       voltage multiplier      T{
2864 1 = no change, 0\*d5 \(~= 6dB attenuation, 2 \(~= 6dB gain, \-1 = invert
2869 If an
2870 .I out-spec
2871 includes at least one
2872 .I vol-spec
2873 then, by default, \(S1/\s-2n\s+2 scaling is not applied to any other channels in the
2874 same out-spec (though may be in other out-specs).
2875 The \-a (automatic)
2876 option however, can be given to retain the automatic scaling in this
2877 case.  For example,
2879    sox input.wav output.wav remix 1,2 3,4v0.8
2881 results in channel level multipliers of 0\*d5,0\*d5 1,0\*d8, whereas
2883    sox input.wav output.wav remix \-a 1,2 3,4v0.8
2885 results in channel level multipliers of 0\*d5,0\*d5 0\*d5,0\*d8.
2887 The \-m (manual) option disables all automatic volume adjustments, so
2889    sox input.wav output.wav remix \-m 1,2 3,4v0.8
2891 results in channel level multipliers of 1,1 1,0\*d8.
2893 The volume number is optional and omitting it corresponds to no volume
2894 change; however, the only case in which this is useful is in conjunction
2895 with
2896 .BR i .
2897 For example, if
2898 .I input.wav
2899 is stereo, then
2901    sox input.wav output.wav remix 1,2i
2903 is a mono equivalent of the
2904 .B oops
2905 effect.
2907 If the \fB\-p\fR option is given, then any automatic \(S1/\s-2n\s+2 scaling
2908 is replaced by \(S1/\s-2\(srn\s+2 (`power') scaling; this gives a louder mix
2909 but one that might occasionally clip.
2911 center;
2912 c8 c8 c.
2913 *       *       *
2917 One use of the
2918 .B remix
2919 effect is to split an audio file into a set of files, each containing
2920 one of the constituent channels (in order to perform subsequent
2921 processing on individual audio channels).  Where more than a few
2922 channels are involved, a script such as the following (Bourne shell
2923 script) is useful:
2925 #!/bin/sh
2926 chans=\`soxi \-c "$1"\`
2927 while [ $chans \-ge 1 ]; do
2928    chans0=\`printf %02i $chans\`   # 2 digits hence up to 99 chans
2929    out=\`echo "$1"|sed "s/\\(.*\\)\\.\\(.*\\)/\\1\-$chans0.\\2/"\`
2930    sox "$1" "$out" remix $chans
2931    chans=\`expr $chans \- 1\`
2932 done
2934 If a file
2935 .I input.wav
2936 containing six audio channels were given, the script would produce six
2937 output files:
2938 .IR input-01.wav ,
2939 \fIinput-02.wav\fR, ...,
2940 .IR input-06.wav .
2942 See also the \fBswap\fR effect.
2944 \fBrepeat\fR [\fIcount\fR(1)|\fB\-\fR]
2945 Repeat the entire audio \fIcount\fR times, or once if \fIcount\fR is not given.
2946 The special value \fB\-\fR requests infinite repetition.
2947 Requires temporary file space to store the audio to be repeated.
2948 Note that repeating once yields two copies: the original audio and the
2949 repeated audio.
2951 \fBreverb\fR [\fB\-w\fR|\fB\-\-wet-only\fR] [\fIreverberance\fR (50%) [\fIHF-damping\fR (50%)
2952 [\fIroom-scale\fR (100%) [\fIstereo-depth\fR (100%)
2954 [\fIpre-delay\fR (0ms) [\fIwet-gain\fR (0dB)]]]]]]
2956 Add reverberation to the audio using the `freeverb' algorithm.  A
2957 reverberation effect is sometimes desirable for concert halls that are too
2958 small or contain so many people that the hall's natural reverberance is
2959 diminished.  Applying a small amount of stereo reverb to a (dry) mono signal
2960 will usually make it sound more natural.  See [3] for a detailed description
2961 of reverberation.
2963 Note that this effect
2964 increases both the volume and the length of the audio, so to prevent clipping
2965 in these domains, a typical invocation might be:
2967    play dry.wav gain \-3 pad 0 3 reverb
2970 .B \-w
2971 option can be given to select only the `wet' signal, thus allowing it to be
2972 processed further, independently of the `dry' signal.  E.g.
2974    play \-m voice.wav "|sox voice.wav \-p reverse reverb \-w reverse"
2976 for a reverse reverb effect.
2978 \fBreverse\fR
2979 Reverse the audio completely.
2980 Requires temporary file space to store the audio to be reversed.
2982 \fBriaa\fR
2983 Apply RIAA vinyl playback equalisation.
2984 The sampling rate must be one of: 44\*d1, 48, 88\*d2, 96 kHz.
2986 This effect supports the \fB\-\-plot\fR global option.
2988 \fBsilence \fR[\fB\-l\fR] \fIabove-periods\fR [\fIduration threshold\fR[\fBd\fR\^|\^\fB%\fR]
2989 [\fIbelow-periods duration threshold\fR[\fBd\fR\^|\^\fB%\fR]]
2991 Removes silence from the beginning, middle, or end of the audio.
2992 `Silence' is determined by a specified threshold.
2994 The \fIabove-periods\fR value is used to indicate if audio should be
2995 trimmed at the beginning of the audio. A value of zero indicates no
2996 silence should be trimmed from the beginning. When specifying a
2997 non-zero \fIabove-periods\fR, it trims audio up until it finds
2998 non-silence. Normally, when trimming silence from beginning of audio
2999 the \fIabove-periods\fR will be 1 but it can be increased to higher
3000 values to trim all audio up to a specific count of non-silence
3001 periods. For example, if you had an audio file with two songs that
3002 each contained 2 seconds of silence before the song, you could specify
3003 an \fIabove-period\fR of 2 to strip out both silence periods and the
3004 first song.
3006 When \fIabove-periods\fR is non-zero, you must also specify a
3007 \fIduration\fR and \fIthreshold\fR. \fIduration\fR indicates the
3008 amount of time that non-silence must be detected before it stops
3009 trimming audio. By increasing the duration, burst of noise can be
3010 treated as silence and trimmed off.
3012 \fIthreshold\fR is used to indicate what sample value you should treat as
3013 silence.  For digital audio, a value of 0 may be fine but for audio
3014 recorded from analog, you may wish to increase the value to account
3015 for background noise.
3017 When optionally trimming silence from the end of the audio, you specify
3018 a \fIbelow-periods\fR count.  In this case, \fIbelow-period\fR means
3019 to remove all audio after silence is detected.
3020 Normally, this will be a value 1 of but it can
3021 be increased to skip over periods of silence that are wanted.  For example,
3022 if you have a song with 2 seconds of silence in the middle and 2 second
3023 at the end, you could set below-period to a value of 2 to skip over the
3024 silence in the middle of the audio.
3026 For \fIbelow-periods\fR, \fIduration\fR specifies a period of silence
3027 that must exist before audio is not copied any more.  By specifying
3028 a higher duration, silence that is wanted can be left in the audio.
3029 For example, if you have a song with an expected 1 second of silence
3030 in the middle and 2 seconds of silence at the end, a duration of 2
3031 seconds could be used to skip over the middle silence.
3033 Unfortunately, you must know the length of the silence at the
3034 end of your audio file to trim off silence reliably.  A workaround is
3035 to use the \fBsilence\fR effect in combination with the \fBreverse\fR effect.
3036 By first reversing the audio, you can use the \fIabove-periods\fR
3037 to reliably trim all audio from what looks like the front of the file.
3038 Then reverse the file again to get back to normal.
3040 To remove silence from the middle of a file, specify a
3041 \fIbelow-periods\fR that is negative.  This value is then
3042 treated as a positive value and is also used to indicate that the
3043 effect should restart processing as specified by the
3044 \fIabove-periods\fR, making it suitable for removing periods of
3045 silence in the middle of the audio.
3047 The option
3048 .B \-l
3049 indicates that \fIbelow-periods\fR \fIduration\fR length of audio
3050 should be left intact at the beginning of each period of silence.
3051 For example, if you want to remove long pauses between words
3052 but do not want to remove the pauses completely.
3054 \fIduration\fR is a time specification with the peculiarity that a bare
3055 number is interpreted as a sample count, not as a number of seconds.
3056 For specifying seconds, either use the \fBt\fR suffix (as in `2t') or
3057 specify minutes, too (as in `0:02').
3059 \fIthreshold\fR numbers may be suffixed with
3060 .B d
3061 to indicate the value is in decibels, or
3062 .B %
3063 to indicate a percentage of maximum value of the sample value
3064 (\fB0%\fR specifies pure digital silence).
3066 The following example shows how this effect can be used to start a recording
3067 that does not contain the delay at the start which usually occurs between
3068 `pressing the record button' and the start of the performance:
3070    rec \fIparameters filename other-effects\fR silence 1 5 2%
3074 \fBsinc\fR [\fB\-a\fI att\fR\^|\^\fB\-b\fI beta\fR] [\fB\-p\fI phase\fR\^|\^\fB\-M\fR\^|\^\fB\-I\fR\^|\^\fB\-L\fR] \:[\fB\-t\fI tbw\fR\^|\^\fB\-n\fI taps\fR] [\fIfreqHP\fR]\:[\fB\-\fIfreqLP\fR [\fB\-t\fR tbw\^|\^\fB\-n\fR taps]]
3076 Apply a sinc kaiser-windowed low-pass, high-pass, band-pass, or band-reject filter
3077 to the signal.
3078 The \fIfreqHP\fR and \fIfreqLP\fR parameters give the frequencies of the
3079 6dB points of a high-pass and low-pass filter that may be invoked
3080 individually, or together.  If both are
3081 given, then \fIfreqHP\fR less than \fIfreqLP\fR creates a band-pass filter,
3082 \fIfreqHP\fR greater than \fIfreqLP\fR creates a band-reject filter.
3083 For example, the invocations
3085    sinc 3k
3086    sinc -4k
3087    sinc 3k-4k
3088    sinc 4k-3k
3090 create a high-pass, low-pass, band-pass, and band-reject filter
3091 respectively.
3093 The default stop-band attenuation of 120dB can be overridden with
3094 \fB\-a\fR; alternatively, the kaiser-window `beta' parameter can be
3095 given directly with \fB\-b\fR.
3097 The default transition band-width of 5% of the total band can be
3098 overridden with \fB\-t\fR (and \fItbw\fR in Hertz); alternatively, the
3099 number of filter taps can be given directly with \fB\-n\fR.
3101 If both \fIfreqHP\fR and \fIfreqLP\fR are given, then a \fB\-t\fR or
3102 \fB\-n\fR option given to the left of the frequencies applies to both
3103 frequencies; one of these options given to the right of the frequencies
3104 applies only to \fIfreqLP\fR.
3107 .BR \-p ,
3108 .BR \-M ,
3109 .BR \-I ,
3111 .B \-L
3112 options control the filter's phase response; see the \fBrate\fR effect
3113 for details.
3115 This effect supports the \fB\-\-plot\fR global option.
3117 \fBspectrogram \fR[\fIoptions\fR]
3118 Create a spectrogram of the audio; the audio is passed unmodified
3119 through the SoX processing chain.  This effect is optional\*mtype
3120 \fBsox \-\-help\fR and check the list of supported effects to see if
3121 it has been included.
3123 The spectrogram is rendered in a Portable Network Graphic (PNG) file,
3124 and shows time in the X-axis, frequency in the Y-axis, and audio
3125 signal magnitude in the Z-axis.  Z-axis values are represented by the
3126 colour (or optionally the intensity) of the pixels in the X-Y plane.
3127 If the audio signal contains multiple channels then these are shown
3128 from top to bottom starting from channel 1 (which is the left channel
3129 for stereo audio).
3131 For example, if `my.wav' is a stereo file, then with
3133    sox my.wav \-n spectrogram
3135 a spectrogram of the entire file will be created in the file
3136 `spectrogram.png'.  More often though, analysis of a smaller portion
3137 of the audio is required; e.g. with
3139    sox my.wav \-n remix 2 trim 20 30 spectrogram
3141 the spectrogram shows information only from the second (right)
3142 channel, and of thirty seconds of audio starting from twenty seconds
3143 in.  To analyse a small portion of the frequency domain, the
3144 .B rate
3145 effect may be used, e.g.
3147    sox my.wav \-n rate 6k spectrogram
3149 allows detailed analysis of frequencies up to 3kHz (half the sampling
3150 rate) i.e. where the human auditory system is most sensitive.
3151 With
3153    sox my.wav \-n trim 0 10 spectrogram \-x 600 \-y 200 \-z 100
3155 the given options control the size of the spectrogram's X, Y & Z axes
3156 (in this case, the spectrogram area of the produced image will be 600
3157 by 200 pixels in size and the Z-axis range will be 100 dB).  Note that
3158 the produced image includes axes legends etc. and so will be a little
3159 larger than the specified spectrogram size.  In this example:
3161    sox \-n \-n synth 6 tri 10k:14k spectrogram \-z 100 \-w kaiser
3163 an analysis `window' with high dynamic range is selected to best
3164 display the spectrogram of a swept triangular wave.  For a smilar
3165 example, append the following to the `chime' command in the
3166 description of the
3167 .B delay
3168 effect (above):
3170    rate 2k spectrogram \-X 200 \-Z \-10 \-w kaiser
3172 Options are also available to control the appearance (colour-set,
3173 brightness, contrast, etc.) and filename of the spectrogram; e.g. with
3175    sox my.wav \-n spectrogram \-m \-l \-o print.png
3177 a spectrogram is created suitable for printing on a `black and white'
3178 printer.
3180 .I Options:
3182 .IP \fB\-x\ \fInum\fR
3183 Change the (maximum) width (X-axis) of the spectrogram from its default
3184 value of 800 pixels to a given number between 100 and 200000.
3185 See also \fB\-X\fR and \fB\-d\fR.
3186 .IP \fB\-X\ \fInum\fR
3187 X-axis pixels/second; the default is auto-calculated to fit the given
3188 or known audio duration to the X-axis size, or 100 otherwise.  If
3189 given in conjunction with \fB\-d\fR, this option affects the width of
3190 the spectrogram; otherwise, it affects the duration of the
3191 spectrogram.
3192 .I num
3193 can be from 1 (low time resolution) to 5000 (high time resolution)
3194 and need not be an integer.  SoX
3195 may make a slight adjustment to the given number for processing
3196 quantisation reasons; if so, SoX will report the actual number used
3197 (viewable when the SoX global option
3198 .B \-V
3199 is in effect).
3200 See also \fB\-x\fR and \fB\-d\fR.
3201 .IP \fB\-y\ \fInum\fR
3202 Sets the Y-axis size in pixels (per channel); this is the number of
3203 frequency `bins' used in the Fourier analysis that produces the
3204 spectrogram.  N.B. it can be slow to produce the spectrogram if this
3205 number is not one more than a power of two (e.g. 129).  By default the
3206 Y-axis size is chosen automatically (depending on the number of
3207 channels).  See
3208 .B \-Y
3209 for alternative way of setting spectrogram height.
3210 .IP \fB\-Y\ \fInum\fR
3211 Sets the target total height of the spectrogram(s).  The default value
3212 is 550 pixels.  Using this option (and by default), SoX will choose a
3213 height for individual spectrogram channels that is one more than a
3214 power of two, so the actual total height may fall short of the given
3215 number.  However, there is also a minimum height per channel so if
3216 there are many channels, the number may be exceeded.
3218 .B \-y
3219 for alternative way of setting spectrogram height.
3220 .IP \fB\-z\ \fInum\fR
3221 Z-axis (colour) range in dB, default 120.  This sets the dynamic-range
3222 of the spectrogram to be \-\fInum\fR\ dBFS to 0\ dBFS.
3223 .I Num
3224 may range from 20 to 180.  Decreasing dynamic-range effectively
3225 increases the `contrast' of the spectrogram display, and vice versa.
3226 .IP \fB\-Z\ \fInum\fR
3227 Sets the upper limit of the Z-axis in dBFS.
3228 A negative
3229 .I num
3230 effectively increases the `brightness' of the spectrogram display,
3231 and vice versa.
3232 .IP \fB\-n\fR
3233 Sets the upper limit of the Z axis so that the loudest pixels
3234 are shown using the brightest colour in the palette - a kind of
3235 automatic \fB\-Z\fR flag.
3236 .IP \fB\-q\ \fInum\fR
3237 Sets the Z-axis quantisation, i.e. the number of different colours (or
3238 intensities) in which to render Z-axis
3239 values.  A small number (e.g. 4) will give a `poster'-like effect making
3240 it easier to discern magnitude bands of similar level.  Small numbers
3241 also usually
3242 result in small PNG files.  The number given specifies the number of
3243 colours to use inside the Z-axis range; two colours are reserved to
3244 represent out-of-range values.
3245 .IP \fB\-w\ \fIname\fR
3246 Window: Hann (default), Hamming, Bartlett, Rectangular, Kaiser or Dolph.  The
3247 spectrogram is produced using the Discrete Fourier Transform (DFT)
3248 algorithm.  A significant parameter to this algorithm is the choice of
3249 `window function'.  By default, SoX uses the Hann window which has good
3250 all-round frequency-resolution and dynamic-range properties.  For better
3251 frequency resolution (but lower dynamic-range), select a Hamming window;
3252 for higher dynamic-range (but poorer frequency-resolution), select a
3253 Dolph window.  Kaiser, Bartlett and Rectangular windows are also available.
3254 .IP \fB\-W\ \fInum\fR
3255 Window adjustment parameter.  This can be used to make small
3256 adjustments to the Kaiser or Dolph window shape.  A positive number (up to
3257 ten) increases its dynamic range, a negative number decreases it.
3258 .IP \fB\-s\fR
3259 Allow slack overlapping of DFT windows.
3260 This can, in some cases, increase image sharpness and give greater adherence
3261 to the
3262 .B \-x
3263 value, but at the expense of a little spectral loss.
3264 .IP \fB\-m\fR
3265 Creates a monochrome spectrogram (the default is colour).
3266 .IP \fB\-h\fR
3267 Selects a high-colour palette\*mless visually pleasing than the default
3268 colour palette, but it may make it easier to differentiate different levels.
3269 If this option is used in conjunction with
3270 .BR \-m ,
3271 the result will be a hybrid monochrome/colour palette.
3272 .IP \fB\-p\ \fInum\fR
3273 Permute the colours in a colour or hybrid palette.
3275 .I num
3276 parameter, from 1 (the default) to 6, selects the permutation.
3277 .IP \fB\-l\fR
3278 Creates a `printer friendly' spectrogram with a light background (the
3279 default has a dark background).
3280 .IP \fB\-a\fR
3281 Suppress the display of the axis lines.  This is sometimes useful in
3282 helping to discern artefacts at the spectrogram edges.
3283 .IP \fB\-r\fR
3284 Raw spectrogram: suppress the display of axes and legends.
3285 .IP \fB\-A\fR
3286 Selects an alternative, fixed colour-set.  This is provided only for
3287 compatibility with spectrograms produced by another package.  It should
3288 not normally be used as it has some problems, not least, a lack of
3289 differentiation at the bottom end which results in masking of low-level
3290 artefacts.
3291 .IP \fB\-t\ \fItext\fR
3292 Set the image title\*mtext to display above the spectrogram.
3293 .IP \fB\-c\ \fItext\fR
3294 Set (or clear) the image comment\*mtext to display below and to the
3295 left of the spectrogram.
3296 .IP \fB\-o\ \fIfile\fR
3297 Name of the spectrogram output PNG file, default `spectrogram.png'.
3298 If `-' is given, the spectrogram will be sent to standard output
3299 (stdout).
3303 .I Advanced Options:
3305 In order to process a smaller section of audio without affecting other
3306 effects or the output signal (unlike when the
3307 .B trim
3308 effect is used), the following options may be used.
3310 .IP \fB\-d\ \fIduration\fR
3311 This option sets the X-axis resolution such that audio with the given
3312 .I duration
3313 (a time specification) fits the selected (or default) X-axis width.  For
3314 example,
3316    sox input.mp3 output.wav \-n spectrogram \-d 1:00 stats
3318 creates a spectrogram showing the first minute of the audio, whilst
3321 .B stats
3322 effect is applied to the entire audio signal.
3324 See also
3325 .B \-X
3326 for an alternative way of setting the X-axis resolution.
3327 .IP \fB\-S\ \fIposition(=)\fR
3328 Start the spectrogram at the given point in the audio stream.  For
3329 example
3331    sox input.aiff output.wav spectrogram \-S 1:00
3333 creates a spectrogram showing all but the first minute of the audio
3334 (the output file, however, receives the entire audio stream).
3338 For the ability to perform off-line processing of spectral data, see the
3339 .B stat
3340 effect.
3342 \fBspeed \fIfactor\fR[\fBc\fR]
3343 Adjust the audio speed (pitch and tempo together).  \fIfactor\fR
3344 is either the ratio of the new speed to the old speed: greater
3345 than 1 speeds up, less than 1 slows down, or, if appended with the
3346 letter
3347 `c', the number of cents (i.e. 100ths of a semitone) by
3348 which the pitch (and tempo) should be adjusted: greater than 0
3349 increases, less than 0 decreases.
3351 Technically, the speed effect only changes the sample rate information,
3352 leaving the samples themselves untouched.  The \fBrate\fR effect is invoked
3353 automatically to resample to the output sample rate, using its default
3354 quality/speed.  For higher quality or higher speed
3355 resampling, in addition to the \fBspeed\fR effect, specify
3356 the \fBrate\fR effect with the desired quality option.
3358 See also the \fBbend\fR, \fBpitch\fR,
3360 .B tempo
3361 effects.
3363 \fBsplice \fR [\fB\-h\fR\^|\^\fB\-t\fR\^|\^\fB\-q\fR] { \fIposition(=)\fR[\fB,\fIexcess\fR[\fB,\fIleeway\fR]] }
3364 Splice together audio sections.  This effect provides two things over
3365 simple audio concatenation: a (usually short) cross-fade is applied at
3366 the join, and a wave similarity comparison is made to help determine the
3367 best place at which to make the join.
3369 One of the options
3370 .BR \-h ,
3371 .BR \-t ,
3373 .B \-q
3374 may be given to select the fade envelope as half-cosine wave (the default),
3375 triangular (a.k.a. linear), or quarter-cosine wave respectively.
3377 center;
3378 cI lI lI lI
3379 cB l l l.
3380 Type    Audio   Fade level      Transitions
3381 t       correlated      constant gain   abrupt
3382 h       correlated      constant gain   smooth
3383 q       uncorrelated    constant power  smooth
3387 To perform a splice, first use the
3388 .B trim
3389 effect to select the audio sections to be joined together.  As when
3390 performing a tape splice, the end of the section to be spliced onto
3391 should be trimmed with a small
3392 .I excess
3393 (default 0\*d005 seconds) of audio after the ideal joining point.  The
3394 beginning of the audio section to splice on should be trimmed with the
3395 same
3396 .IR excess
3397 (before the ideal joining point), plus an additional
3398 .I leeway
3399 (default 0\*d005 seconds).  Any time specification may be used for these
3400 parameters.  SoX should then be invoked with the two
3401 audio sections as input files and the
3402 .B splice
3403 effect given with the position at which to perform the splice\*mthis is
3404 length of the first audio section (including the excess).
3406 The following diagram uses the tape analogy to illustrate the splice
3407 operation.  The effect simulates the diagonal cuts and joins the two pieces:
3410       length1   excess
3411     -----------><--->
3412     _________   :   :  _________________
3413              \\  :   : :\\     `         
3414               \\ :   : : \\     `        
3415                \\:   : :  \\     `       
3416                 *   : :   * - - *      
3417                  \\  : :   :\\     `     
3418                   \\ : :   : \\     `    
3419     _______________\\: :   :  \\_____`____
3420                       :   :   :     :
3421                       <--->   <----->
3422                       excess  leeway
3425 where * indicates the joining points.
3427 For example, a long song begins with two verses which start (as
3428 determined e.g. by using the
3429 .B play
3430 command with the
3431 .B trim
3432 (\fIstart\fR) effect) at times 0:30\*d125 and 1:03\*d432.
3433 The following commands cut out the first verse:
3435    sox too-long.wav part1.wav trim 0 30.130
3437 (5 ms excess, after the first verse starts)
3439    sox too-long.wav part2.wav trim 1:03.422
3441 (5 ms excess plus 5 ms leeway, before the second verse starts)
3443    sox part1.wav part2.wav just-right.wav splice 30.130
3445 For another example, the SoX command
3447    play "|sox \-n \-p synth 1 sin %1" "|sox \-n \-p synth 1 sin %3"
3449 generates and plays two notes, but there is a nasty click at the
3450 transition; the click can be removed by splicing instead of
3451 concatenating the audio, i.e. by appending \fBsplice 1\fR to the
3452 command. (Clicks at the beginning and end of the audio can be removed by
3453 \fIpreceding\fR the splice effect with \fBfade q .01 2 .01\fR).
3455 Provided your arithmetic is good enough, multiple splices can be
3456 performed with a single
3457 .B splice
3458 invocation.  For example:
3460 #!/bin/sh
3461 # Audio Copy and Paste Over
3462 # acpo infile copy-start copy-stop paste-over-start outfile
3463 # No chained time specifications allowed for the parameters
3464 # (i.e. such that contain +/\-).
3465 e=0.005                      # Using default excess
3466 l=$e                         # and leeway.
3467 sox "$1" piece.wav trim $2\-$e\-$l =$3+$e
3468 sox "$1" part1.wav trim 0 $4+$e
3469 sox "$1" part2.wav trim $4+$3\-$2\-$e\-$l
3470 sox part1.wav piece.wav part2.wav "$5" \\
3471    splice $4+$e +$3\-$2+$e+$l+$e
3473 In the above Bourne shell script,
3474 two splices are used to `copy and paste' audio.
3476 center;
3477 c8 c8 c.
3478 *       *       *
3482 It is also possible to use this effect to perform general cross-fades,
3483 e.g. to join two songs.  In this case,
3484 .I excess
3485 would typically be an number of seconds, the
3486 .B \-q
3487 option would typically be given (to select an `equal power' cross-fade), and
3488 .I leeway
3489 should be zero (which is the default if
3490 .B \-q
3491 is given).  For example, if f1.wav and f2.wav are audio files
3492 to be cross-faded, then
3494    sox f1.wav f2.wav out.wav splice \-q $(soxi \-D f1.wav),3
3496 cross-fades the files where the point of equal loudness is 3 seconds
3497 before the end of f1.wav, i.e. the total length of the cross-fade is
3498 2 \(mu 3 = 6 seconds (Note: the $(...) notation is POSIX shell).
3500 \fBstat\fR [\fB\-s \fIscale\fR] [\fB\-rms\fR] [\fB\-freq\fR] [\fB\-v\fR] [\fB\-d\fR]
3501 Display time and frequency domain statistical information about the audio.
3502 Audio is passed unmodified through the SoX processing chain.
3504 The information is output to the `standard error' (stderr) stream and is
3505 calculated, where
3506 .I n
3507 is the duration of the audio in samples,
3508 .I c
3509 is the number of audio channels,
3510 .I r
3511 is the audio sample rate, and
3512 .I x\s-2\dk\u\s0
3513 represents the PCM value (in the range \-1 to +1 by default) of each successive
3514 sample in the audio,
3515 as follows:
3517 center;
3518 lI l l.
3519 Samples read    \fIn\fR\^\(mu\^\fIc\fR  \ 
3520 Length (seconds)        \fIn\fR\^\(di\^\fIr\fR
3521 Scaled by       \       See \-s below.
3522 Maximum amplitude       max(\fIx\s-2\dk\u\s0\fR)        T{
3523 The maximum sample value in the audio; usually this will be a positive number.
3525 Minimum amplitude       min(\fIx\s-2\dk\u\s0\fR)        T{
3526 The minimum sample value in the audio; usually this will be a negative number.
3528 Midline amplitude       \(12\^min(\fIx\s-2\dk\u\s0\fR)\^+\^\(12\^max(\fIx\s-2\dk\u\s0\fR)
3529 Mean norm       \(S1/\s-2n\s+2\^\(*S\^\^\(br\^\fIx\s-2\dk\u\s0\fR\^\(br\^       T{
3530 The average of the absolute value of each sample in the audio.
3532 Mean amplitude  \(S1/\s-2n\s+2\^\(*S\^\fIx\s-2\dk\u\s0\fR       T{
3533 The average of each sample in the audio.  If this figure is non-zero, then it indicates the
3534 presence of a D.C. offset (which could be removed using the
3535 .B dcshift
3536 effect).
3538 RMS amplitude   \(sr(\(S1/\s-2n\s+2\^\(*S\^\fIx\s-2\dk\u\s0\fR\(S2)     T{
3539 The level of a D.C. signal that would have the same power
3540 as the audio's average power.
3542 Maximum delta   max(\^\(br\^\fIx\s-2\dk\u\s0\fR\^\-\^\fIx\s-2\dk\-1\u\s0\fR\^\(br\^)
3543 Minimum delta   min(\^\(br\^\fIx\s-2\dk\u\s0\fR\^\-\^\fIx\s-2\dk\-1\u\s0\fR\^\(br\^)
3544 Mean delta      \(S1/\s-2n\-1\s+2\^\(*S\^\^\(br\^\fIx\s-2\dk\u\s0\fR\^\-\^\fIx\s-2\dk\-1\u\s0\fR\^\(br\^
3545 RMS delta       \(sr(\(S1/\s-2n\-1\s+2\^\(*S\^(\fIx\s-2\dk\u\s0\fR\^\-\^\fIx\s-2\dk\-1\u\s0\fR)\(S2)
3546 Rough frequency \       In Hz.
3547 Volume Adjustment       \       T{
3548 The parameter to the
3549 .B vol
3550 effect which would make the audio as loud as possible without clipping.
3551 Note: See the discussion on
3552 .B Clipping
3553 above for reasons why it is rarely a good idea actually to do this.
3558 Note that the delta measurements are not applicable for multi-channel audio.
3561 .B \-s
3562 option can be used to scale the input data by a given factor.
3563 The default value of
3564 .I scale
3565 is 2147483647 (i.e. the maximum value of a 32-bit signed integer).
3566 Internal effects
3567 always work with signed long PCM data and so the value should relate to this
3568 fact.
3571 .B \-rms
3572 option will convert all output average values to `root mean square'
3573 format.
3576 .B \-v
3577 option displays only the `Volume Adjustment' value.
3580 .B \-freq
3581 option calculates the input's power spectrum (4096 point DFT) instead of the
3582 statistics listed above.  This should only be used with a single channel
3583 audio file.
3586 .B \-d
3587 option
3588 displays a hex dump of the 32-bit signed PCM data
3589 audio in SoX's internal buffer.
3590 This is mainly used to help track down endian problems that
3591 sometimes occur in cross-platform versions of SoX.
3593 See also the
3594 .B stats
3595 effect.
3597 \fBstats\fR [\fB\-b \fIbits\fR\^|\^\fB\-x \fIbits\fR\^|\^\fB\-s \fIscale\fR] [\fB\-w \fIwindow-time\fR]
3598 Display time domain statistical information about the audio channels;
3599 audio is passed unmodified through the SoX processing chain.
3600 Statistics are calculated and displayed for each audio channel and,
3601 where applicable, an overall figure is also given.
3603 For example, for a typical well-mastered stereo music file:
3605 center;
3607 .ft CW
3608              Overall     Left      Right
3609 DC offset   0.000803 \-0.000391  0.000803
3610 Min level  \-0.750977 \-0.750977 \-0.653412
3611 Max level   0.708801  0.708801  0.653534
3612 Pk lev dB      \-2.49     \-2.49     \-3.69
3613 RMS lev dB    \-19.41    \-19.13    \-19.71
3614 RMS Pk dB     \-13.82    \-13.82    \-14.38
3615 RMS Tr dB     \-85.25    \-85.25    \-82.66
3616 Crest factor       \-      6.79      6.32
3617 Flat factor     0.00      0.00      0.00
3618 Pk count           2         2         2
3619 Bit-depth      16/16     16/16     16/16
3620 Num samples    7.72M
3621 Length s     174.973
3622 Scale max   1.000000
3623 Window s       0.050
3624 .ft R
3628 .IR DC\ offset ,
3629 .IR Min\ level ,
3631 .I Max\ level
3632 are shown, by default, in the range \(+-1.
3633 If the
3634 .B \-b
3635 (bits) options is given, then these three measurements will be scaled to a signed integer
3636 with the given number of bits; for example, for 16 bits, the scale would be \-32768 to +32767.
3638 .B \-x
3639 option behaves the same way as
3640 .B \-b
3641 except that the signed integer values are displayed in hexadecimal.
3643 .B \-s
3644 option scales the three measurements by a given floating-point number.
3646 .I Pk\ lev\ dB
3648 .I RMS\ lev\ dB
3649 are standard peak and RMS level measured in dBFS.
3650 .I RMS\ Pk\ dB
3652 .I RMS\ Tr\ dB
3653 are peak and trough values for RMS level measured over a short window (default 50ms).
3655 .I Crest\ factor
3656 is the standard ratio of peak to RMS level (note: not in dB).
3658 .I Flat\ factor
3659 is a measure of the flatness (i.e. consecutive samples with the same value) of the signal at
3660 its peak levels (i.e. either
3661 .IR Min\ level ,
3663 .IR Max\ level ).
3664 .I Pk\ count
3665 is the number of occasions (not the number of samples) that the signal attained either
3666 .IR Min\ level ,
3668 .IR Max\ level .
3670 The right-hand
3671 .I Bit-depth
3672 figure is the standard definition of bit-depth i.e. bits less
3673 significant than the given number are fixed at zero.  The left-hand
3674 figure is the number of most significant bits that are fixed at zero (or
3675 one for negative numbers) subtracted from the right-hand figure (the
3676 number subtracted is directly related to
3677 .IR Pk\ lev\ dB ).
3679 For multi-channel audio, an overall figure for each of the above
3680 measurements is given and derived from the channel figures as follows:
3681 .IR DC\ offset :
3682 maximum magnitude;
3683 .IR Max\ level ,
3684 .IR Pk\ lev\ dB ,
3685 .IR RMS\ Pk\ dB ,
3686 .IR Bit-depth :
3687 maximum;
3688 .IR Min\ level ,
3689 .IR RMS\ Tr\ dB :
3690 minimum;
3691 .IR RMS\ lev\ dB ,
3692 .IR Flat\ factor ,
3693 .IR Pk\ count :
3694 average;
3695 .IR Crest\ factor :
3696 not applicable.
3698 .I Length\ s
3699 is the duration in seconds of the audio, and
3700 .I Num\ samples
3701 is equal to the sample-rate multiplied by
3702 .IR Length .
3703 .I Scale\ Max
3704 is the scaling applied to the first three measurements;
3705 specifically, it is the maximum value that could apply to
3706 .IR Max\ level .
3707 .I Window\ s
3708 is the length of the window used for the peak and trough RMS measurements.
3710 See also the
3711 .B stat
3712 effect.
3714 \fBswap\fR
3715 Swap stereo channels.  If the input is not stereo, pairs of channels are
3716 swapped, and a possible odd last channel passed through.  E.g., for seven
3717 channels, the output order will be 2, 1, 4, 3, 6, 5, 7.
3719 See also
3720 .B remix
3721 for an effect that allows arbitrary channel selection and ordering
3722 (and mixing).
3724 \fBstretch \fIfactor\fR [\fIwindow fade shift fading\fR]
3725 Change the audio duration (but not its pitch).
3726 This effect is broadly equivalent to the
3727 .B tempo
3728 effect with (\fIfactor\fR inverted and)
3729 .I search
3730 set to zero, so in general, its results are comparatively poor;
3731 it is retained as it can sometimes out-perform
3732 .B tempo
3733 for small
3734 .IR factor s.
3736 .I factor
3737 of stretching: >1 lengthen, <1 shorten duration.
3738 .I window
3739 size is in ms.  Default is 20ms.  The
3740 .I fade
3741 option, can be `lin'.
3742 .I shift
3743 ratio, in [0 1].  Default depends on stretch factor. 1
3744 to shorten, 0\*d8 to lengthen.  The
3745 .I fading
3746 ratio, in [0 0\*d5].  The amount of a fade's default depends on
3747 .I factor
3748 and \fIshift\fR.
3750 See also the
3751 .B tempo
3752 effect.
3755 \fBsynth\fR [\fB\-j \fIKEY\fR] [\fB\-n\fR] [\fIlen\fR [\fIoff\fR [\fIph\fR [\fIp1\fR [\fIp2\fR [\fIp3\fR]]]]]] {[\fItype\fR] [\fIcombine\fR] \:[[\fB%\fR]\fIfreq\fR[\fBk\fR][\fB:\fR\^|\^\fB+\fR\^|\^\fB/\fR\^|\^\fB\-\fR[\fB%\fR]\fIfreq2\fR[\fBk\fR]]] [\fIoff\fR [\fIph\fR [\fIp1\fR [\fIp2\fR [\fIp3\fR]]]]]}
3757 This effect can be used to generate fixed or swept frequency audio tones
3758 with various wave shapes, or to generate wide-band noise of various
3759 `colours'.
3760 Multiple synth effects can be cascaded to produce more complex
3761 waveforms; at each stage it is possible to choose whether the generated
3762 waveform will be mixed with, or modulated onto
3763 the output from the previous stage.
3764 Audio for each channel in a multi-channel audio file can be synthesised
3765 independently.
3767 Though this effect is used to generate audio, an input file must still
3768 be given, the characteristics of which will be used to set the
3769 synthesised audio length, the number of channels, and the sampling rate;
3770 however, since the input file's audio is not normally needed, a `null
3771 file' (with the special name \fB\-n\fR) is often given instead (and the
3772 length specified as a parameter to \fBsynth\fR or by another given
3773 effect that has an associated length).
3775 For example, the following produces a 3 second, 48kHz,
3776 audio file containing a sine-wave swept from 300 to 3300\ Hz:
3778    sox \-n output.wav synth 3 sine 300\-3300
3780 and this produces an 8\ kHz version:
3782    sox \-r 8000 \-n output.wav synth 3 sine 300\-3300
3784 Multiple channels can be synthesised by specifying the set of
3785 parameters shown between braces multiple times;
3786 the following puts the swept tone in the left channel and adds `brown'
3787 noise in the right:
3789    sox \-n output.wav synth 3 sine 300\-3300 brownnoise
3791 The following example shows how two synth effects can be cascaded
3792 to create a more complex waveform:
3794 .ne 2
3795    play \-n synth 0.5 sine 200\-500 synth 0.5 sine fmod 700\-100
3797 Frequencies can also be given in `scientific' note notation, or, by
3798 prefixing a `%' character, as a number of semitones relative to
3799 `middle A' (440\ Hz).  For example, the following could be used to
3800 help tune a guitar's low `E' string:
3802    play \-n synth 4 pluck %\-29
3804 or with a (Bourne shell) loop, the whole guitar:
3806 .ne 2
3807    for n in E2 A2 D3 G3 B3 E4; do
3808         play \-n synth 4 pluck $n repeat 2; done
3810 See the
3811 .B delay
3812 effect (above) and the reference to `SoX scripting examples' (below)
3813 for more
3814 .B synth
3815 examples.
3817 .B N.B.
3818 This effect generates audio at maximum volume (0dBFS), which means that there
3819 is a high chance of clipping when using the audio subsequently, so
3820 in many cases, you will want to follow this effect with the \fBgain\fR
3821 effect to prevent this from happening. (See also
3822 .B Clipping
3823 above.)
3824 Note that, by default, the
3825 .B synth
3826 effect incorporates the functionality of \fBgain \-h\fR (see the
3827 .B gain
3828 effect for details);
3829 .BR synth 's
3830 .B \-n
3831 option may be given to disable this behaviour.
3833 A detailed description of each
3834 .B synth
3835 parameter follows:
3837 \fIlen\fR is the length of audio to synthesise (any time specification);
3838 a value of 0 indicated to use the input length, which is also the default.
3840 \fItype\fR is one of sine, square, triangle, sawtooth, trapezium, exp,
3841 [white]noise, tpdfnoise, pinknoise, brownnoise, pluck; default=sine.
3843 \fIcombine\fR is one of create, mix, amod (amplitude modulation), fmod
3844 (frequency modulation); default=create.
3846 \fIfreq\fR/\fIfreq2\fR are the frequencies at the beginning/end of
3847 synthesis in Hz or, if preceded with `%', semitones relative to A
3848 (440\ Hz); alternatively, `scientific' note notation (e.g. E2) may
3849 be used.  The default frequency is 440Hz.  By default, the tuning used
3850 with the note notations is `equal temperament'; the
3851 .B \-j
3852 .I KEY
3853 option selects `just intonation', where
3854 .I KEY
3855 is an integer number of semitones relative to A (so for example, \-9
3856 or 3 selects the key of C), or a note in scientific notation.
3859 .I freq2
3860 is given, then
3861 .I len
3862 must also have been given and the generated tone will be swept between
3863 the given frequencies.  The two given frequencies must be separated by
3864 one of the characters `:', `+', `/', or `\-'.  This character is used to
3865 specify the sweep function as follows:
3867 .IP \fB:\fR
3868 Linear: the tone will change by a fixed number of hertz per second.
3869 .IP \fB+\fR
3870 Square: a second-order function is used to change the tone.
3871 .IP \fB/\fR
3872 Exponential: the tone will change by a fixed number of semitones per second.
3873 .IP \fB\-\fR
3874 Exponential: as `/', but initial phase always zero, and stepped (less
3875 smooth) frequency changes.
3879 Not used for noise.
3881 \fIoff\fR is the bias (DC-offset) of the signal in percent; default=0.
3883 \fIph\fR is the phase shift in percentage of 1 cycle; default=0.  Not
3884 used for noise.
3886 \fIp1\fR is the percentage of each cycle that is `on' (square), or
3887 `rising' (triangle, exp, trapezium); default=50 (square, triangle, exp),
3888 default=10 (trapezium), or sustain (pluck); default=40.
3890 \fIp2\fR (trapezium): the percentage through each cycle at which `falling'
3891 begins; default=50. exp: the amplitude in multiples of 2dB; default=50,
3892 or tone-1 (pluck); default=20.
3894 \fIp3\fR (trapezium): the percentage through each cycle at which `falling'
3895 ends; default=60, or tone-2 (pluck); default=90.
3897 \fBtempo \fR[\fB\-q\fR] [\fB\-m\fR\^|\^\fB\-s\fR\^|\^\fB\-l\fR] \fIfactor\fR [\fIsegment\fR [\fIsearch\fR [\fIoverlap\fR]]]
3898 Change the audio playback speed but not its pitch. This effect uses the
3899 WSOLA algorithm. The audio is chopped up into segments which are then
3900 shifted in the time domain and overlapped (cross-faded) at points where
3901 their waveforms are most similar as determined by measurement of `least
3902 squares'.
3904 By default, linear searches are used to find the best overlapping
3905 points. If the optional
3906 .B \-q
3907 parameter is given, tree searches are used instead. This makes the effect
3908 work more quickly, but the result may not sound as good. However, if you
3909 must improve the processing speed, this generally reduces the sound quality
3910 less than reducing the search or overlap values.
3913 .B \-m
3914 option is used to optimize default values of segment, search and
3915 overlap for music processing.
3918 .B \-s
3919 option is used to optimize default values of segment, search and
3920 overlap for speech processing.
3923 .B \-l
3924 option is used to optimize default values of segment, search and
3925 overlap for `linear' processing that tends to cause more
3926 noticeable distortion but may be useful when factor is close to 1.
3928 If \-m, \-s, or \-l is specified, the default value of segment will be
3929 calculated based on factor, while default search and overlap values are
3930 based on segment. Any values you provide still override these default
3931 values.
3933 .I factor
3934 gives the ratio of new tempo to the old tempo, so e.g. 1.1 speeds up the
3935 tempo by 10%, and 0.9 slows it down by 10%.
3937 The optional
3938 .I segment
3939 parameter selects the algorithm's segment size in milliseconds.  If no other
3940 flags are specified, the default value is 82 and is typically suited to
3941 making small changes to the tempo of music. For larger changes (e.g. a factor
3942 of 2), 41\ ms may give a better result.  The \-m, \-s, and \-l flags will cause
3943 the segment default to be automatically adjusted based on factor.
3944 For example using \-s (for speech) with a tempo of 1.25 will calculate a
3945 default segment value of 32.
3947 The optional
3948 .I search
3949 parameter gives the audio length in milliseconds over which
3950 the algorithm will search for overlapping points.  If no other
3951 flags are specified, the default value is 14.68.  Larger values use
3952 more processing time and may or may not produce better results.
3953 A practical maximum is half the value of segment. Search
3954 can be reduced to cut processing time at the risk of degrading output
3955 quality. The \-m, \-s, and \-l flags will cause
3956 the search default to be automatically adjusted based on segment.
3958 The optional
3959 .I overlap
3960 parameter gives the segment overlap length in milliseconds.
3961 Default value is 12, but \-m, \-s, or \-l flags automatically
3962 adjust overlap based on segment size. Increasing overlap increases
3963 processing time and may increase quality. A practical maximum for overlap
3964 is the value of search, with overlap typically being (at least) a little
3965 smaller then search.
3967 See also
3968 .B speed
3969 for an effect that changes tempo and pitch together,
3970 .B pitch
3971 and \fBbend\fR for effects that change pitch only, and
3972 .B stretch
3973 for an effect that changes tempo using a different algorithm.
3975 \fBtreble \fIgain\fR [\fIfrequency\fR[\fBk\fR]\fR [\fIwidth\fR[\fBs\fR\^|\^\fBh\fR\^|\^\fBk\fR\^|\^\fBo\fR\^|\^\fBq\fR]]]
3976 Apply a treble tone-control effect.
3977 See the description of the \fBbass\fR effect for details.
3979 \fBtremolo \fIspeed\fR [\fIdepth\fR]
3980 Apply a tremolo (low frequency amplitude modulation) effect to the audio.
3981 The tremolo frequency in Hz is given by
3982 .IR speed ,
3983 and the depth as a percentage by
3984 .I depth
3985 (default 40).
3987 \fBtrim\fR {\fIposition(+)\fR}
3988 Cuts portions out of the audio.  Any number of \fIposition\fRs may be
3989 given; audio is not sent to the output until the first \fIposition\fR
3990 is reached.  The effect then alternates between copying and discarding
3991 audio at each \fIposition\fR.  Using a value of 0 for the first \fIposition\fR
3992 parameter allows copying from the beginning of the audio.
3994 For example,
3996    sox infile outfile trim 0 10
3998 will copy the first ten seconds, while
4000    play infile trim 12:34 =15:00 -2:00
4004    play infile trim 12:34 2:26 -2:00
4006 will both play from 12 minutes 34 seconds into the audio up to 15 minutes into
4007 the audio (i.e. 2 minutes and 26 seconds long), then resume playing two
4008 minutes before the end of audio.
4010 \fBupsample\fR [\fIfactor\fR]
4011 Upsample the signal by an integer factor: \fIfactor\fR\-1 zero-value
4012 samples are inserted between each pair of input samples.  As a result, the
4013 original spectrum is replicated into the new frequency space (imaging) and
4014 attenuated.  This attenuation can be compensated for by adding
4015 \fBvol \fIfactor\fR after any further processing.  The upsample effect is
4016 typically used in combination with filtering effects.
4018 For a general resampling effect with anti-imaging, see \fBrate\fR.  See
4019 also \fBdownsample\fR.
4021 \fBvad \fR[\fIoptions\fR]
4022 Voice Activity Detector.  Attempts to trim silence and quiet
4023 background sounds from the ends of (fairly high resolution
4024 i.e. 16-bit, 44\-48kHz) recordings of speech.  The algorithm currently
4025 uses a simple cepstral power measurement to detect voice, so may be
4026 fooled by other things, especially music.  The effect can trim only
4027 from the front of the audio, so in order to trim from the back, the
4028 .B reverse
4029 effect must also be used.  E.g.
4031    play speech.wav norm vad
4033 to trim from the front,
4035    play speech.wav norm reverse vad reverse
4037 to trim from the back, and
4039    play speech.wav norm vad reverse vad reverse
4041 to trim from both ends.  The use of the
4042 .B norm
4043 effect is recommended, but remember that neither
4044 .B reverse
4046 .B norm
4047 is suitable for use with streamed audio.
4049 .I Options:
4051 Default values are shown in parenthesis.
4053 .IP \fB\-t\ \fInum\fR\ (7)
4054 The measurement level used to trigger activity detection.  This might
4055 need to be changed depending on the noise level, signal level and
4056 other charactistics of the input audio.
4057 .IP \fB\-T\ \fInum\fR\ (0.25)
4058 The time constant (in seconds) used to help ignore short bursts of
4059 sound.
4060 .IP \fB\-s\ \fInum\fR\ (1)
4061 The amount of audio (in seconds) to search for quieter/shorter bursts
4062 of audio to include prior to the detected trigger point.
4063 .IP \fB\-g\ \fInum\fR\ (0.25)
4064 Allowed gap (in seconds) between quieter/shorter bursts of audio to
4065 include prior to the detected trigger point.
4066 .IP \fB\-p\ \fInum\fR\ (0)
4067 The amount of audio (in seconds) to preserve before the trigger point
4068 and any found quieter/shorter bursts.
4072 .I Advanced Options:
4074 These allow fine tuning of the algorithm's internal parameters.
4076 .IP \fB\-b\ \fInum\fR
4077 The algorithm (internally) uses adaptive noise estimation/reduction in
4078 order to detect the start of the wanted audio.  This option sets the
4079 time for the initial noise estimate.
4080 .IP \fB\-N\ \fInum\fR
4081 Time constant used by the adaptive noise estimator for when the noise
4082 level is increasing.
4083 .IP \fB\-n\ \fInum\fR
4084 Time constant used by the adaptive noise estimator for when the noise
4085 level is decreasing.
4086 .IP \fB\-r\ \fInum\fR
4087 Amount of noise reduction to use in the detection algorithm (e.g. 0,
4088 0.5, ...).
4089 .IP \fB\-f\ \fInum\fR
4090 Frequency of the algorithm's processing/measurements.
4091 .IP \fB\-m\ \fInum\fR
4092 Measurement duration; by default, twice the measurement period; i.e.
4093 with overlap.
4094 .IP \fB\-M\ \fInum\fR
4095 Time constant used to smooth spectral measurements.
4096 .IP \fB\-h\ \fInum\fR
4097 `Brick-wall' frequency of high-pass filter applied at the input to the
4098 detector algorithm.
4099 .IP \fB\-l\ \fInum\fR
4100 `Brick-wall' frequency of low-pass filter applied at the input to the
4101 detector algorithm.
4102 .IP \fB\-H\ \fInum\fR
4103 `Brick-wall' frequency of high-pass lifter used in the detector
4104 algorithm.
4105 .IP \fB\-L\ \fInum\fR
4106 `Brick-wall' frequency of low-pass lifter used in the detector
4107 algorithm.
4111 See also the
4112 .B silence
4113 effect.
4115 \fBvol \fIgain\fR [\fItype\fR [\fIlimitergain\fR]]
4116 Apply an amplification or an attenuation to the audio signal.
4117 Unlike the
4118 .B \-v
4119 option (which is used for balancing multiple input files as they enter the
4120 SoX effects processing chain),
4121 .B vol
4122 is an effect like any other so can be applied anywhere, and several times
4123 if necessary, during the processing chain.
4125 The amount to change the volume is given by
4126 .I gain
4127 which is interpreted, according to the given \fItype\fR, as follows: if
4128 .I type
4129 is \fBamplitude\fR (or is omitted), then
4130 .I gain
4131 is an amplitude (i.e. voltage or linear) ratio,
4132 if \fBpower\fR, then a power (i.e. wattage or voltage-squared) ratio,
4133 and if \fBdB\fR, then a power change in dB.
4135 When
4136 .I type
4137 is \fBamplitude\fR or \fBpower\fR, a
4138 .I gain
4139 of 1 leaves the volume unchanged,
4140 less than 1 decreases it,
4141 and greater than 1 increases it;
4142 a negative
4143 .I gain
4144 inverts the audio signal in addition to adjusting its volume.
4146 When
4147 .I type
4148 is \fBdB\fR, a
4149 .I gain
4150 of 0 leaves the volume unchanged,
4151 less than 0 decreases it,
4152 and greater than 0 increases it.
4154 See [4]
4155 for a detailed discussion on electrical (and hence audio signal)
4156 voltage and power ratios.
4158 Beware of
4159 .B Clipping
4160 when the increasing the volume.
4163 .I gain
4164 and the
4165 .I type
4166 parameters can be concatenated if desired, e.g.
4167 .BR "vol 10dB" .
4169 An optional \fIlimitergain\fR value can be specified and should be a
4170 value much less
4171 than 1 (e.g. 0\*d05 or 0\*d02) and is used only on peaks to prevent clipping.
4172 Not specifying this parameter will cause no limiter to be used.  In verbose
4173 mode, this effect will display the percentage of the audio that needed to be
4174 limited.
4176 See also
4177 .B gain
4178 for a volume-changing effect with different capabilities, and
4179 .B compand
4180 for a dynamic-range compression/expansion/limiting effect.
4181 .SH DIAGNOSTICS
4182 Exit status is 0 for no error, 1 if there is a problem with the
4183 command-line parameters, or 2 if an error occurs during file processing.
4184 .SH BUGS
4185 Please report any bugs found in this version of SoX to the mailing list
4186 (sox-users@lists.sourceforge.net).
4187 .SH SEE ALSO
4188 .BR soxi (1),
4189 .BR soxformat (7),
4190 .BR libsox (3)
4192 .BR audacity (1),
4193 .BR gnuplot (1),
4194 .BR octave (1),
4195 .BR wget (1)
4197 The SoX web site at http://sox.sourceforge.net
4199 SoX scripting examples at http://sox.sourceforge.net/Docs/Scripts
4200 .SS References
4203 R. Bristow-Johnson,
4204 .IR "Cookbook formulae for audio EQ biquad filter coefficients" ,
4205 https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html
4208 Wikipedia,
4209 .IR "Q-factor" ,
4210 http://en.wikipedia.org/wiki/Q_factor
4213 Scott Lehman,
4214 .IR "Effects Explained" ,
4215 https://web.archive.org/web/20070320114719/http://www.harmony-central.com/Effects/effects-explained.html
4218 Wikipedia,
4219 .IR "Decibel" ,
4220 http://en.wikipedia.org/wiki/Decibel
4223 Richard Furse,
4224 .IR "Linux Audio Developer's Simple Plugin API" ,
4225 http://www.ladspa.org
4228 Richard Furse,
4229 .IR "Computer Music Toolkit" ,
4230 https://www.ladspa.org/cmt/overview.html
4233 Steve Harris,
4234 .IR "LADSPA plugins" ,
4235 http://plugin.org.uk
4236 .SH LICENSE
4237 Copyright 1998\-2013 Chris Bagwell and SoX Contributors.
4239 Copyright 1991 Lance Norskog and Sundry Contributors.
4241 This program is free software; you can redistribute it and/or modify
4242 it under the terms of the GNU General Public License as published by
4243 the Free Software Foundation; either version 2, or (at your option)
4244 any later version.
4246 This program is distributed in the hope that it will be useful,
4247 but WITHOUT ANY WARRANTY; without even the implied warranty of
4248 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4249 GNU General Public License for more details.
4250 .SH AUTHORS
4251 Chris Bagwell (cbagwell@users.sourceforge.net).
4252 Other authors and contributors are listed in the ChangeLog file that
4253 is distributed with the source code.