Foobar2000:Components 0.9/foo dsp multiresampler
From Hydrogenaudio Knowledgebase
- ZOH: Zero-Order Hold, or no interpolation whatsoever. No attempt is made to handle aliasing or jitter, and any sample ratios (in/out) of 1.0 or higher are guaranteed to start dropping input samples.
- Blep Synthesis: Like Zero-Order Hold, only converting input sample streams into a stream of deltas/offsets, applying those offsets to the output buffer using a FIR sinc pulse with a slight low-pass filter, then integrating those output samples for the caller. An optional decay is applied to the accumulator on output, which is recommended for sample data which changes regularly, but not where constant DC offset is required.
- Linear Interpolation: Self-explanatory, interpolates between two surrounding samples in a linear fashion. No attempt is made to handle sample rates over 1.0, so aliasing will occur in those cases.
- Blam Synthesis: Like Linear Interpolation, only interpolated samples are processed in the same way as Blep Synthesis, through a FIR impulse sinc resampler. For sample ratios over 1.0, input samples are not interpolated, but merely Blep Synthesized into the output buffer, using the same phase/fraction precision as the Blep Synthesis resampler. Thus, high sample rates are handled gracefully, and filtered in a pleasing manner.
- Cubic Interpolation: Uses a simple cubic spline coefficient table, to draw a cubic spline between four samples surrounding the desired input point. Makes no attempt to handle ratios over 1.0 in a special way, so depending on how high the ratio actually is, some aliasing may occur.
- Sinc Interpolation: Uses the same Nuttall 3-term windowed sinc to sample from the input data, producing individual output samples. Not exactly the best at low pass or high pass restriction, but produces a fairly decent conversion of decent to high quality samples.