dsp¶
sample_rate_conversion_quality enum¶
enum class sample_rate_conversion_quality : int
sample_rate_conversion_qualityDefines the quality levels for sample rate conversion.
Higher values indicate better quality but increased computational cost.
draft enumerator (sample_rate_conversion_quality::draft)¶
*/
low enumerator (sample_rate_conversion_quality::low)¶
*/
normal enumerator (sample_rate_conversion_quality::normal)¶
*/
high enumerator (sample_rate_conversion_quality::high)¶
*/
perfect enumerator (sample_rate_conversion_quality::perfect)¶
*/
samplerate_converter class¶
template <typename T> samplerate_converter
samplerate_converterA template class for performing sample rate conversion on audio signals.
This class supports both push and pull methods for resampling audio data. It maintains an internal
state to handle contiguous signals split into buffers of varying sizes.
Template param T The data type of the audio samples (e.g., float, double).
window function (samplerate_converter::window)¶
ftype window(ftype n) const
Computes the Kaiser window function for a given sample position.
Param n Normalized sample position.
Returns The window value.
sidelobe_att function (samplerate_converter::sidelobe_att)¶
ftype sidelobe_att() const
Calculates the sidelobe attenuation based on the Kaiser beta parameter.
Returns Sidelobe attenuation in dB.
transition_width function (samplerate_converter::transition_width)¶
ftype transition_width() const
Calculates the transition width based on sidelobe attenuation and depth.
Returns Transition width in radians.
filter_order function (samplerate_converter::filter_order)¶
static size_t
filter_order(sample_rate_conversion_quality quality)
Computes the filter order for a given quality level.
Param quality The sample rate conversion quality.
Returns The filter order as a size_t.
sidelobe_attenuation function (samplerate_converter::sidelobe_attenuation)¶
static ftype
sidelobe_attenuation(sample_rate_conversion_quality quality)
Returns the sidelobe attenuation for a given quality level.
Param quality The sample rate conversion quality.
Returns Sidelobe attenuation in dB.
transition_width function (samplerate_converter::transition_width)¶
static ftype
transition_width(sample_rate_conversion_quality quality)
Returns the transition width for a given quality level.
Param quality The sample rate conversion quality.
Returns Transition width in radians.
window_param function (samplerate_converter::window_param)¶
static ftype
window_param(sample_rate_conversion_quality quality)
Computes the Kaiser window parameter for a given quality level.
Param quality The sample rate conversion quality.
Returns The Kaiser beta parameter.
samplerate_converter<T> function (samplerate_converter::samplerate_converter<T>)¶
samplerate_converter(sample_rate_conversion_quality quality,
                     itype interpolation_factor,
                     itype decimation_factor,
                     ftype scale = ftype(1),
                     ftype cutoff = 0.5f)
Constructs a sample rate converter.
Param quality The desired conversion quality.
Param interpolation_factor Factor by which to interpolate the input signal.
Param decimation_factor Factor by which to decimate the output signal.
Param scale Scaling factor for the output (default: 1).
Param cutoff Cutoff frequency as a fraction of the Nyquist frequency (default: 0.5).
input_position_to_intermediate function (samplerate_converter::input_position_to_intermediate)¶
itype input_position_to_intermediate(itype in_pos) const
Converts an input position to an intermediate position.
Param in_pos Input position.
Returns Intermediate position.
output_position_to_intermediate function (samplerate_converter::output_position_to_intermediate)¶
itype output_position_to_intermediate(itype out_pos) const
Converts an output position to an intermediate position.
Param out_pos Output position.
Returns Intermediate position.
input_position_to_output function (samplerate_converter::input_position_to_output)¶
itype input_position_to_output(itype in_pos) const
Converts an input position to an output position.
Param in_pos Input position.
Returns Corresponding output position.
output_position_to_input function (samplerate_converter::output_position_to_input)¶
itype output_position_to_input(itype out_pos) const
Converts an output position to an input position.
Param out_pos Output position.
Returns Corresponding input position.
output_size_for_input function (samplerate_converter::output_size_for_input)¶
itype output_size_for_input(itype input_size) const
Calculates the output size for a given input size (push method).
Param input_size Size of the input buffer.
Returns Required output buffer size.
input_size_for_output function (samplerate_converter::input_size_for_output)¶
itype input_size_for_output(itype output_size) const
Calculates the input size for a given output size (pull method).
Param output_size Size of the output buffer.
Returns Required input buffer size.
skip function (samplerate_converter::skip)¶
size_t skip(size_t output_size,
            univector_ref<const T> input)
Skips a specified number of output samples, updating internal state.
Param output_size Number of output samples to skip.
Param input Input buffer to consume.
Returns Number of input samples consumed.
process function (samplerate_converter::process)¶
template <univector_tag Tag>
size_t process(univector<T, Tag> &output,
               univector_ref<const T> input)
Processes input data to produce resampled output (pull or push method).
Param output Output buffer to write resampled data.
Param input Input buffer to read samples from.
Returns Number of input samples processed.
Template param Tag Type tag for the univector output.
get_fractional_delay function (samplerate_converter::get_fractional_delay)¶
double get_fractional_delay() const
Gets the fractional delay introduced by the resampler.
Returns Fractional delay in samples.
get_delay function (samplerate_converter::get_delay)¶
size_t get_delay() const
Gets the integer delay introduced by the resampler.
Returns Delay in samples.
kaiser_beta variable (samplerate_converter::kaiser_beta)¶
ftype kaiser_beta
*/
depth variable (samplerate_converter::depth)¶
itype depth
*/
taps variable (samplerate_converter::taps)¶
itype taps
*/
order variable (samplerate_converter::order)¶
size_t order
*/
interpolation_factor variable (samplerate_converter::interpolation_factor)¶
itype interpolation_factor
*/
decimation_factor variable (samplerate_converter::decimation_factor)¶
itype decimation_factor
*/
filter variable (samplerate_converter::filter)¶
univector<T> filter
*/
delay variable (samplerate_converter::delay)¶
univector<T> delay
*/
input_position variable (samplerate_converter::input_position)¶
itype input_position
*/
output_position variable (samplerate_converter::output_position)¶
itype output_position
*/
process_impl function (samplerate_converter::process_impl)¶
size_t process_impl(univector_ref<T> output,
                    univector_ref<const T> input)
Internal implementation of the process function.
Param output Output buffer slice.
Param input Input buffer slice.
Returns Number of input samples processed.
expression_upsample class (generic::internal::expression_upsample)¶
template <size_t factor, typename E> expression_upsample
expression_downsample class (generic::internal::expression_downsample)¶
template <size_t factor, size_t offset, typename E>
expression_downsample
expression_upsample class (generic::internal::expression_upsample)¶
template <typename E> expression_upsample
template <typename E> expression_upsample
expression_downsample class (generic::internal::expression_downsample)¶
template <typename E, size_t offset> expression_downsample
template <typename E, size_t offset> expression_downsample
sample_rate_converter function (generic::sample_rate_converter)¶
template <typename T = fbase>
samplerate_converter<T> sample_rate_converter(
    sample_rate_conversion_quality quality,
    size_t interpolation_factor, size_t decimation_factor,
    subtype<T> scale = subtype<T>(1),
    subtype<T> cutoff = 0.5f)
Helper function to create a sample rate converter instance.
Template param T Data type of the audio samples (default: fbase).
Param quality The desired conversion quality.
Param interpolation_factor Factor by which to interpolate the input signal.
Param decimation_factor Factor by which to decimate the output signal.
Param scale Scaling factor for the output (default: 1).
Param cutoff Cutoff frequency as a fraction of the Nyquist frequency (default: 0.5).
Returns A configured samplerate_converter instance.
Auto-generated from sources, Revision , https://github.com/kfrlib/kfr/blob//include/kfr/