dnoise - Reduces noise in a file. .

1 000 000

DNOISE(1) The Canonical Csound Reference DNOISE(1)

dnoise - Reduces noise in a file. .

This is a noise reduction scheme using frequency-domain noise-gating.

dnoise [flags] -i noise_ref_file -o output_soundfile input_soundfile

Dnoise specific flags:

· (no flag) input soundfile to be denoised

· -i fname input reference noise soundfile

· -o fname output soundfile

· -N fnum # of bandpass filters (default: 1024)

· -w fovlp filter overlap factor: {0,1,(2),3} DON'T USE -w AND -M

· -M awlen analysis window length (default: N-1 unless -w is

· -L swlen synthesis window length (default: M)

· -D dfac decimation factor (default: M/8)

· -b btim begin time in noise reference soundfile (default: 0)

· -B smpst starting sample in noise reference soundfile (default: 0)

· -e etim end time in noise reference soundfile (default: end of

· -E smpend final sample in noise reference soundfile (default: end
of file)

· -t thr threshold above noise reference in dB (default: 30)

· -S gfact sharpness of noise-gate turnoff, range: 1 to 5 (default:

· -n numfrm number of FFT frames to average over (default: 5)

· -m mingain minimum gain of noise-gate when off in dB (default: -40)

Soundfile format options:

· -A AIFF format output

· -W WAV format output

· -J IRCAM format output

· -h skip soundfile header (not valid for AIFF/WAV output)

· -8 8-bit unsigned char sound samples

· -c 8-bit signed_char sound samples

· -a alaw sound samples

· -u ulaw sound samples

· -s short_int sound samples

· -l long_int sound samples

· -f float sound samples. Floats also supported for WAV files. (New
in Csound 3.47.)

Additional options:

· -R verbose - print status info

· -H [N] print a heartbeat character at each soundfile write.

· -- fname output to log file fname

· -V verbose - print status info

DNOISE also looks at the environment variable SFOUTYP to determine
soundfile output format.

The -i flag is used for a reference noise file (normally created
from a short section of the denoised file, where only noise is
audible). The input soundfile to be denoised can be given anywhere
on the command line, without a flag.

This is a noise reduction scheme using frequency-domain noise-gating.
This should work best in the case of high signal-to-noise with
hiss-type noise.

The algorithm is that suggested by Moorer & Berger in “Linear-Phase
Bandsplitting: Theory and Applications” presented at the 76th
Convention 1984 October 8-11 New York of the Audio Engineering Society
(preprint #2132) except that it uses the Weighted Overlap-Add
formulation for short-time Fourier analysis-synthesis in place of the
recursive formulation suggested by Moorer & Berger. The gain in each
frequency bin is computed independently according to

gain = g0 + (1-g0) * [avg / (avg + th*th*nref)] ^ sh

where avg and nref are the mean squared signal and noise respectively
for the bin in question. (This is slightly different than in Moorer &

The critical parameters th and g0 are specified in dB and internally
converted to decimal values. The nref values are computed at the start
of the program on the basis of a noise_soundfile (specified in the
command line) which contains noise without signal.

The avg values are computed over a rectangular window of m FFT frames
looking both ahead and behind the current time. This corresponds to a
temporal extent of m*D/R (which is typically (m*N/8)/R). The default
settings of N, M, and D should be appropriate for most uses. A higher
sample rate than 16 Khz might indicate a higher N.

Author: Mark Dolson

August 26, 1989

Author: John ffitch

December 30, 2000

Updated by Rasmus Ekman on March 11, 2002.

Barry Vercoe
MIT Media Lab


Dan Ellis
MIT Media Lab,


5.10 10/17/2011 DNOISE(1)