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