-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathssrc.txt
91 lines (73 loc) · 3.49 KB
/
ssrc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
A fast and high quality sampling rate converter SSRC
written by Naoki Shibata
Homepage : http://shibatch.sourceforge.net/
e-mail : [email protected]
<Features>
This program converts sampling rate of PCM wav file. Also, this program has
a function to apply dither to its output and extend perceived dynamic range.
Sampling rates of 44.1kHz and 48kHz are populary used, but ratio of these
two frequency is 147:160, and it's not a small numbers. Therefore, sampling
rate conversion without degradation of sound quality requires filter with very
large order, and it's difficult to achive both quality and speed. This program
achived relatively fast and high quality with two different kinds of filters
combined skillfully.
<Usage>
ssrc [<options>] <input wav file> <output wav file>
Usage of options are as follows :
--rate <sampling rate>
Specify sampling rate of output file.
--att <value(dB)>
Attenuate volume of output by specified value.
--twopass
Perform two pass processing so that clipping is avoided.
At the first pass, the program converts sampling rate of input file and
write to a temporary file in float numbers while scanning clippings. At
the second pass, the program attenuate the volume so that clipping is
prevented, and write to the output file.
--normalize
Normalize the wave file.
--dither [<type>]
Apply dithers to the output file.
type 0 : no dither
type 1 : no noise shaping
type 2 : triangular dither
type 3 : ATH based noise shaping
--bits
Specify quantization bit length. 8, 16 and 24bits are supported.
--quiet
Nothing is displayed except error.
--pdf <type> [<amp>]
Select probability distribution function and amplitude of noise.
type 0 : rectangular
type 1 : triangular
type 2 : Gaussian
--profile
Specify profile
"standard" profile : the default setting
"fast" profile : about x2 speed, not so bad quality
Only PCM coded wav files are used as input and output files.
Input and output sampling frequency must satisfy a certain condition, but
(probably) conversions between all populary used sampling frequencies are
supported.
If sampling frequencies of input and output are same, sampling rate
conversion is not performed and only conversion of quantization bit length
with optional dithering are done.
<Compiling method>
Specify endianness in the Makefile and just type make.
<Caveats>
Cumulatively applying dithers degrades sound quality. If you are editing
sound files, save master file as non-dithered 24bit file, and apply dither
only to the final 16bit output file.
Dithered 8bit files contains strong supersonic, and listening to these
files for long hours may damage your hearing. Dithered 16bit files are no
problem since the power of the supersonic of dither is 1/65536 of those of
dithered 8bit files.
<Conditions of distribution>
This program(except FFT and Bessel function part) is distributed under
LGPL. See LGPL.txt for details. But, if you make a new program with derived
code from this program,I strongly wish that my name and derived code are
indicated explicitly.
FFT and Bessel function part is a routine made by Mr.Ooura. This routine
is a freeware. Contact Mr.Ooura for details of distributing licenses.
http://momonga.t.u-tokyo.ac.jp/~ooura/fft.html
http://momonga.t.u-tokyo.ac.jp/~ooura/bessel.html