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