Ulf@564: #ifndef CAR_H_ Ulf@564: #define CAR_H_ Ulf@564: Ulf@564: #include "CARFAC_common.h" Ulf@564: #include Ulf@564: Ulf@564: const double kDefaultErbBreakFreq = 165.3; Ulf@564: const double kDefaultErbQ = 1000/(24.7*4.37); Ulf@564: Ulf@564: class CAR_parameters{ Ulf@564: public: Ulf@564: CAR_parameters(): Ulf@564: velocity_scale_(0.2), Ulf@564: v_offset_(0.01), Ulf@564: v2_corner_(0.2), Ulf@564: v_damp_max_(0.01), Ulf@564: min_zeta_(0.10), Ulf@564: first_pole_theta_(0.085*kPi), Ulf@564: zero_ratio_(sqrt(2)), Ulf@564: high_f_damping_compression_(0.5), Ulf@564: erb_per_step_(0.5), Ulf@564: min_pole_hz_(30), Ulf@564: erb_break_freq_(kDefaultErbBreakFreq), Ulf@564: erb_q_(kDefaultErbQ) Ulf@564: { Ulf@564: // do nothing more Ulf@564: } Ulf@564: Ulf@564: virtual ~CAR_parameters(){ Ulf@564: // do nothing Ulf@564: } Ulf@564: Ulf@564: float velocity_scale_; Ulf@564: float v_offset_; Ulf@564: float v2_corner_; Ulf@564: float v_damp_max_; Ulf@564: float min_zeta_; Ulf@564: float first_pole_theta_; Ulf@564: float zero_ratio_; Ulf@564: float high_f_damping_compression_; Ulf@564: float erb_per_step_; Ulf@564: float min_pole_hz_; Ulf@564: float erb_break_freq_; Ulf@564: float erb_q_; Ulf@564: }; Ulf@564: Ulf@564: class CAR_coefficients{ Ulf@564: public: Ulf@564: CAR_coefficients(CAR_parameters*, float, FloatArray); Ulf@564: virtual ~CAR_coefficients(); Ulf@564: Ulf@564: FloatArray r1_coeffs_; Ulf@564: FloatArray a0_coeffs_; Ulf@564: FloatArray c0_coeffs_; Ulf@564: FloatArray h_coeffs_; Ulf@564: FloatArray g0_coeffs_; Ulf@564: FloatArray zr_coeffs_; Ulf@564: Ulf@564: private: Ulf@564: CAR_coefficients(); Ulf@564: }; Ulf@564: Ulf@564: #endif /* CAR_H_ */