Integrated program of 4 different kinds of application programs for processing sound signal. 4種類のサウンド信号処理を統合したプログラム.

Dependencies:   F746_GUI F746_SAI_IO FrequencyResponseDrawer SD_PlayerSkeleton UIT_FFT_Real

Committer:
MikamiUitOpen
Date:
Thu Apr 27 23:55:53 2017 +0000
Revision:
16:d60e5187fd31
Parent:
15:fac50dd1de44
17

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 15:fac50dd1de44 1 //------------------------------------------------------------------------------
MikamiUitOpen 15:fac50dd1de44 2 // イコライザ用フィルタのパラメータを設定し,その周波数特性を描画するためのクラス -- Header
MikamiUitOpen 15:fac50dd1de44 3 //
MikamiUitOpen 15:fac50dd1de44 4 // 2016/04/10, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 15:fac50dd1de44 5 //------------------------------------------------------------------------------
MikamiUitOpen 15:fac50dd1de44 6
MikamiUitOpen 15:fac50dd1de44 7 #ifndef F746_GREQ_DISIGNER_AND_DRAWER_HPP
MikamiUitOpen 15:fac50dd1de44 8 #define F746_GREQ_DISIGNER_AND_DRAWER_HPP
MikamiUitOpen 15:fac50dd1de44 9
MikamiUitOpen 15:fac50dd1de44 10 #include "NumericLabel.hpp"
MikamiUitOpen 15:fac50dd1de44 11 #include "FrquencyResponseDrawer.hpp"
MikamiUitOpen 15:fac50dd1de44 12 #include "GrEqParamsCalculator.hpp"
MikamiUitOpen 15:fac50dd1de44 13 #include "GrEqualizerFrqResp.hpp"
MikamiUitOpen 15:fac50dd1de44 14
MikamiUitOpen 15:fac50dd1de44 15 namespace Mikami
MikamiUitOpen 15:fac50dd1de44 16 {
MikamiUitOpen 15:fac50dd1de44 17 class GrEqDesignerDrawer
MikamiUitOpen 15:fac50dd1de44 18 {
MikamiUitOpen 15:fac50dd1de44 19 public:
MikamiUitOpen 15:fac50dd1de44 20 // Constructor
MikamiUitOpen 15:fac50dd1de44 21 GrEqDesignerDrawer(uint16_t x0, uint16_t y0, float db1,
MikamiUitOpen 15:fac50dd1de44 22 int bands, float f0, int fs);
MikamiUitOpen 15:fac50dd1de44 23
MikamiUitOpen 15:fac50dd1de44 24 virtual ~GrEqDesignerDrawer() {};
MikamiUitOpen 15:fac50dd1de44 25
MikamiUitOpen 15:fac50dd1de44 26 // 周波数特性の描画
MikamiUitOpen 15:fac50dd1de44 27 void DrawResponse();
MikamiUitOpen 15:fac50dd1de44 28
MikamiUitOpen 15:fac50dd1de44 29 // 周波数特性の平坦化と描画
MikamiUitOpen 15:fac50dd1de44 30 void DrawFlat();
MikamiUitOpen 15:fac50dd1de44 31
MikamiUitOpen 15:fac50dd1de44 32 // 特定のバンドのイコライザ用フィルタのパラメータの設定と周波数特性の再描画
MikamiUitOpen 15:fac50dd1de44 33 void DesignAndRedraw(float gainDb, int n);
MikamiUitOpen 15:fac50dd1de44 34
MikamiUitOpen 15:fac50dd1de44 35 BiquadGrEq::Coefs GetCoefficient(int n) { return ck_[n]; }
MikamiUitOpen 15:fac50dd1de44 36
MikamiUitOpen 15:fac50dd1de44 37 uint16_t GetX0()
MikamiUitOpen 15:fac50dd1de44 38 { return drawerObj_.X(f0_[0]); }
MikamiUitOpen 15:fac50dd1de44 39
MikamiUitOpen 15:fac50dd1de44 40 uint16_t GetSpaceX()
MikamiUitOpen 15:fac50dd1de44 41 { return (uint16_t)(drawerObj_.X(f0_[1])
MikamiUitOpen 15:fac50dd1de44 42 - drawerObj_.X(f0_[0])); }
MikamiUitOpen 15:fac50dd1de44 43
MikamiUitOpen 15:fac50dd1de44 44 int GetBands() { return BANDS_; }
MikamiUitOpen 15:fac50dd1de44 45
MikamiUitOpen 15:fac50dd1de44 46 private:
MikamiUitOpen 15:fac50dd1de44 47 const uint16_t X0_, Y0_;
MikamiUitOpen 15:fac50dd1de44 48 const int BANDS_;
MikamiUitOpen 15:fac50dd1de44 49 const float Q_VAL_;
MikamiUitOpen 15:fac50dd1de44 50
MikamiUitOpen 15:fac50dd1de44 51 Array<float> f0_; // 中心周波数を格納する配列のポインタ
MikamiUitOpen 15:fac50dd1de44 52 Array<BiquadGrEq::Coefs> ck_; // フィルタの係数
MikamiUitOpen 15:fac50dd1de44 53 GrEqParams calculator_;
MikamiUitOpen 15:fac50dd1de44 54 GrEqualizerFrqResp frqResp_; // フィルタの周波数応答に対応するオブジェクト
MikamiUitOpen 15:fac50dd1de44 55 FrqRespDrawer drawerObj_;
MikamiUitOpen 15:fac50dd1de44 56 };
MikamiUitOpen 15:fac50dd1de44 57 }
MikamiUitOpen 15:fac50dd1de44 58 #endif // F746_GREQ_DISIGNER_AND_DRAWER_HPP