aboutsummaryrefslogtreecommitdiffstats
path: root/src/dsd2pcm/info.txt
diff options
context:
space:
mode:
authorSebastian Gesemann <unknown>2011-10-03 12:03:37 +0200
committerMax Kellermann <max@duempel.org>2011-10-04 21:34:30 +0200
commit3fcf463f9ef42aa0da0da4f9d0aed2e7aeda28bb (patch)
tree3d25b85fae36a8174ada6cc40cca4bae4b87e9d9 /src/dsd2pcm/info.txt
parentf77cd63286bedbd995bed0e232498543e28d3957 (diff)
downloadmpd-3fcf463f9ef42aa0da0da4f9d0aed2e7aeda28bb.tar.gz
mpd-3fcf463f9ef42aa0da0da4f9d0aed2e7aeda28bb.tar.xz
mpd-3fcf463f9ef42aa0da0da4f9d0aed2e7aeda28bb.zip
import dsd2pcm_src.zip
[this is the code from dsd2pcm_src.zip, published on a forum by Sebastian Gesemann. Upon request, he has given permission to redistribute and modify his code, without referring to a specific license. - mk]
Diffstat (limited to 'src/dsd2pcm/info.txt')
-rw-r--r--src/dsd2pcm/info.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/dsd2pcm/info.txt b/src/dsd2pcm/info.txt
new file mode 100644
index 000000000..15ff29245
--- /dev/null
+++ b/src/dsd2pcm/info.txt
@@ -0,0 +1,38 @@
+You downloaded the source code for "dsd2pcm" which is a simple little
+"filter" program, that takes a DSD data stream on stdin and converts
+it to a PCM stream (352.8 kHz, either 16 or 24 bits) and writes it to
+stdout. The code is split into three modules:
+
+ (1) dsd2pcm
+
+ This is where the 8:1 decimation magic happens. It's an
+ implementation of a symmetric 96-taps FIR lowpass filter
+ optimized for DSD inputs. If you feed this converter with
+ DSD64 you get a PCM stream at 352.8 kHz and floating point
+ samples. This module is independent and can be reused.
+
+ (2) noiseshape
+
+ A module for applying generic noise shaping filters. It's
+ used for the 16-bit output mode in "main" to preserve the
+ dynamic range. This module is independent and can be reused.
+
+ (3) main.cpp (file contains the main function and handles I/O)
+
+The first two modules are pure C for maximum portability. In addition,
+there are C++ wrapper headers for convenient use of these modules in
+C++. The main application is a C++ application and makes use of the
+C++ headers to access the functionality of the first two modules.
+
+
+Under Linux this program is easily compiled by typing
+
+ g++ *.c *.cpp -O3 -o dsd2pcm
+
+provided you have GCC installed. That's why I didn't bother writing
+any makefiles. :-p
+
+
+Cheers!
+SG
+