Sonic Illusions



FinalCD is a double precision downsampler designed to convert high sampling rate audio to 16/44.1 for writing to a CD.  There are two filter curves available - a gentle one for material with very little ultrasonic content, and a sharp one to handle other cases.

The sharp filters have a transition bandwidth of approximately 100Hz and finishes within the destination band in order to prevent aliasing intermodulation, at the expense of less overall bandwidth.  The test input for the SRCs shown below is a linear swept sine extending to 25kHz using a 96kHz input signal.

The two other high quality SRC (sampling rate conversion) programs are Shibatch 1.29 and CoolEdit Pro 2.1.  The total length of the linear phase filter employed for FinalCD /f0 is approximately 1.5 million taps, and is compressed by storing it in the frequency domain.

Single stage filtering in this manner uses a lot of memory and processing power, but provides good results.  Careful design has minimised the high frequency ringing of the filter... this is most evident when applying the most severe signal to the resamplers - a dirac pulse.

Such a signal exaggerates the differences between the resamplers, but the level of difference is still extremely low.  Further tests show that intermodulation distortion from all three is barely measurable with a single precision FFT - they all show suitability for good downsampling work.

FinalCD can be obtained from the Downloads page.

15/06/05 - FinalCD now supports 48kHz input.

30/03/13 - Fixed issue with 48kHz input. (v0.13)

06/04/13 - Fixed issue with WAV parser so metadata blocks are discarded correctly (v0.14)

19/06/13 - Support added for 32-bit floating point input (v0.15)

19/07/13 - Now built with static IPP (P4) library so runtime no longer needed (v0.16)

22/09/13 - New medium slope filter available, somewhere between gentle and sharp (v0.17)

03/04/16 - Now supports major sampling rates from 48-384K and DSD64, DSD128 (v0.20)

04/04/16 - Fixed bug in DSD128 downconversion (v0.21)

14/04/16 - Fixed handling of Pro Tools WAV files with abnormal fmt chunk (v0.22)

10/07/16 - Allow variable gain to be applied when processing (v0.23)

03/08/16 - Fixed bug in processing short input files (v0.24)

01/09/17 - Added support for DSD256 (v0.25)

19/04/20 - Added support for DSD64->88.2, fixed RIFF size and end of file garbage (v0.26)

27/05/20 - Added support for 24-bit output (v0.27)

04/04/21 - Added support for upsampling and fix missing last sample bug (v0.28)

07/08/21 - Support gain scaling and dither only (no upsampling) and allow gains from 0.1 to 10.0 (v0.29)