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