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:
Fri Mar 17 01:45:36 2017 +0000
Revision:
11:5eb943ee9b91
Parent:
0:224dccbc4edd
12

Who changed what in which revision?

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