NAME
soundstretch - audio processing utility
SYNOPSIS
soundstretch infile.wav outfile.wav [options]
DESCRIPTION
SoundStretch is a simple command-line application that can change
tempo, pitch and playback rates of WAV sound files. This program is
intended primarily to demonstrate how the "SoundTouch" library can be
used to process sound in your own program, but it can as well be used
for processing sound files.
USAGE
SoundStretch Usage syntax:
"infile.wav"is the name of the input sound data file (in .WAV audio
file format).
"outfile.wav" is the name of the output sound file where the
resulting sound is saved (in .WAV audio file format). This parameter
may be omitted if you don’t want to save the output (e.g. when only
calculating BPM rate with ’-bpm’ option).
[options] Are one or more control options.
OPTIONS
Available control options are:
-tempo=n Change the sound tempo by n percents (n = -95.0 .. +5000.0 %)
-pitch=n Change the sound pitch by n semitones (n = -60.0 .. + 60.0
semitones)
-rate=n Change the sound playback rate by n percents (n = -95.0 ..
+5000.0 %)
-bpm=n Detect the Beats-Per-Minute (BPM) rate of the sound and adjust
the tempo to meet ’n’ BPMs. If this switch is defined, the "-tempo=n"
switch value is ignored. If "=n" is omitted, i.e. switch "-bpm" is used
alone, the program just calculates and displays the BPM rate but
doesn’t adjust tempo according to the BPMvalue.
-quick Use quicker tempo change algorithm. Gains speed but loses sound
quality.
-naa Don’t use anti-alias filtering in sample rate transposing. Gains
speed but loses sound quality.
-license Displays the program license text (LGPL)
NOTES
* The numerical switch values can be entered using either integer (e.g.
"-tempo=123") or decimal (e.g."-tempo=123.45") numbers.
* The "-naa" and/or "-quick" switches can be used to reduce CPU usage
while compromising some sound quality
* The BPM detection algorithm works by detecting repeating low-
frequency (<250Hz) sound patterns and thus works mostly with most
rock/pop music with bass or drum beat. The BPM detection doesn’t work
on pieces such as classical music without distinct, repeating bass
frequency patterns. Also pieces with varying tempo, varying bass
patterns or very complex bass patterns (jazz, hiphop) may produce odd
BPM readings.
In cases when the bass pattern drifts a bit around a nominal beat rate
(e.g. drummer is again drunken :), the BPM algorithm may report
incorrect harmonic one-halft to one-thirdth of the correct BPM value;
in such case the system could for example report BPM value of 50 or 100
instead of correct BPM value of 150.
EXAMPLES
Example 1 The following command increases tempo of the sound file
"originalfile.wav" by 12.5% and saves result to file
"destinationfile.wav":
soundstretch originalfile.wav destinationfile.wav -tempo=12.5
Example 2
The following command decreases the sound pitch (key) of the sound file
"orig.wav" by two semitones and saves the result to file "dest.wav":
soundstretch orig.wav dest.wav -pitch=-2
Example 3
The following command processes the file "orig.wav" by decreasing the
sound tempo by 25.3% and increasing the sound pitch (key) by 1.5
semitones. Result is saved to file "dest.wav":
soundstretch orig.wav dest.wav -tempo=-25.3 -pitch=1.5
Example 4
The following command detects the BPM rate of the file "orig.wav" and
adjusts the tempo to match 100 beats per minute. Result is saved to
file "dest.wav":</p>
soundstretch orig.wav dest.wav -bpm=100
NOTES
Converted from the README.html that comes with SoundTouch
soundstretch(1)