MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Coefficients.cpp File Reference
#include "Coefficients.hpp"
#include "Taper.hpp"
#include <Eigen/Dense>
+ Include dependency graph for Coefficients.cpp:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 
namespace  MayaFlux::Kinesis::Discrete
 

Functions

std::vector< double > MayaFlux::Kinesis::Discrete::backward_difference_weights (size_t order)
 Weights of the backward difference of a given order.
 
void MayaFlux::Kinesis::Discrete::biquad_allpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order allpass coefficients.
 
Biquad MayaFlux::Kinesis::Discrete::biquad_bandpass (double frequency, double q, double sample_rate) noexcept
 Constant peak gain bandpass section, returned by value.
 
void MayaFlux::Kinesis::Discrete::biquad_bandpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order bandpass coefficients, constant 0 dB peak gain.
 
void MayaFlux::Kinesis::Discrete::biquad_high_shelf (double frequency, double slope, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order high shelf coefficients.
 
void MayaFlux::Kinesis::Discrete::biquad_highpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order highpass coefficients.
 
void MayaFlux::Kinesis::Discrete::biquad_low_shelf (double frequency, double slope, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order low shelf coefficients.
 
void MayaFlux::Kinesis::Discrete::biquad_lowpass (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order lowpass coefficients.
 
void MayaFlux::Kinesis::Discrete::biquad_notch (double frequency, double q, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order notch coefficients.
 
void MayaFlux::Kinesis::Discrete::biquad_peaking (double frequency, double q, double gain_db, double sample_rate, std::vector< double > &a, std::vector< double > &b)
 Second-order peaking coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::cascade (std::span< const double > lhs, std::span< const double > rhs)
 Polynomial product of two coefficient vectors.
 
void MayaFlux::Kinesis::Discrete::dc_block (double pole, std::vector< double > &a, std::vector< double > &b)
 DC blocking filter.
 
double MayaFlux::Kinesis::Discrete::decay_from_pole_radius (double radius, double sample_rate) noexcept
 Time for an impulse response of a given pole radius to fall by 1/e.
 
double MayaFlux::Kinesis::Discrete::decay_from_q (double frequency, double q, double sample_rate) noexcept
 Ring time of a bandpass section of a given Q.
 
double MayaFlux::Kinesis::Discrete::decay_per_sample (double seconds, double sample_rate) noexcept
 Per-sample factor that falls by 1/e in a given time.
 
std::vector< double > MayaFlux::Kinesis::Discrete::geometric_weights (size_t count, double ratio, bool unit_sum=false)
 Weights that fall by a constant ratio with age.
 
std::vector< double > MayaFlux::Kinesis::Discrete::lagrange_delay (double delay, size_t order)
 Lagrange fractional-delay FIR coefficients.
 
void MayaFlux::Kinesis::Discrete::lagrange_weights (double delay, std::span< double > weights) noexcept
 Lagrange interpolation weights written to an array, without allocating.
 
double MayaFlux::Kinesis::Discrete::max_pole_magnitude (std::span< const double > a)
 Largest pole magnitude of a denominator polynomial.
 
std::vector< double > MayaFlux::Kinesis::Discrete::moving_average_weights (size_t count)
 Equal weights summing to 1: Taper::rectangular scaled by 1 / count.
 
void MayaFlux::Kinesis::Discrete::one_pole (double pole, std::vector< double > &a, std::vector< double > &b)
 One-pole filter specified by pole position.
 
double MayaFlux::Kinesis::Discrete::pole_radius_from_decay (double seconds, double sample_rate) noexcept
 Pole radius whose impulse response falls by 1/e in a given time.
 
double MayaFlux::Kinesis::Discrete::q_from_decay (double frequency, double seconds, double sample_rate) noexcept
 Q that gives the bandpass section a stated ring time.
 
void MayaFlux::Kinesis::Discrete::resonator (double pole_radius, double pole_angle, std::vector< double > &a, std::vector< double > &b)
 Two-pole resonator specified by z-plane pole position.
 
std::vector< double > MayaFlux::Kinesis::Discrete::savitzky_golay (size_t window, size_t poly_order, size_t derivative=0)
 Savitzky-Golay FIR coefficients for smoothing or differentiation.
 
std::vector< double > MayaFlux::Kinesis::Discrete::sinc_bandpass (double low_hz, double high_hz, double sample_rate, size_t taps)
 Windowed-sinc bandpass FIR coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::sinc_highpass (double frequency, double sample_rate, size_t taps)
 Windowed-sinc highpass FIR coefficients.
 
std::vector< double > MayaFlux::Kinesis::Discrete::sinc_lowpass (double frequency, double sample_rate, size_t taps)
 Windowed-sinc lowpass FIR coefficients.