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
MyGraphicEqualizer/GrEqDesignerDrawer.hpp@0:224dccbc4edd, 2016-08-15 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Mon Aug 15 07:18:07 2016 +0000
- Revision:
- 0:224dccbc4edd
- Child:
- 11:5eb943ee9b91
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:224dccbc4edd | 1 | //------------------------------------------------------------------------------ |
MikamiUitOpen | 0:224dccbc4edd | 2 | // イコライザ用フィルタのパラメータを設定し,その周波数特性を描画するためのクラス -- Header |
MikamiUitOpen | 0:224dccbc4edd | 3 | // |
MikamiUitOpen | 0:224dccbc4edd | 4 | // 2016/08/11, Copyright (c) 2016 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 | LCD_DISCO_F746NG *lcd_; |
MikamiUitOpen | 0:224dccbc4edd | 48 | TS_DISCO_F746NG *ts_; |
MikamiUitOpen | 0:224dccbc4edd | 49 | |
MikamiUitOpen | 0:224dccbc4edd | 50 | const uint16_t X0_, Y0_; |
MikamiUitOpen | 0:224dccbc4edd | 51 | const int BANDS_; |
MikamiUitOpen | 0:224dccbc4edd | 52 | const float Q_VAL_; |
MikamiUitOpen | 0:224dccbc4edd | 53 | |
MikamiUitOpen | 0:224dccbc4edd | 54 | Array<float> f0_; // 中心周波数を格納する配列のポインタ |
MikamiUitOpen | 0:224dccbc4edd | 55 | Array<BiquadGrEq::Coefs> ck_; // フィルタの係数 |
MikamiUitOpen | 0:224dccbc4edd | 56 | GrEqParams calculator_; |
MikamiUitOpen | 0:224dccbc4edd | 57 | GrEqualizerFrqResp frqResp_; // フィルタの周波数応答に対応するオブジェクト |
MikamiUitOpen | 0:224dccbc4edd | 58 | FrqRespDrawer drawerObj_; |
MikamiUitOpen | 0:224dccbc4edd | 59 | }; |
MikamiUitOpen | 0:224dccbc4edd | 60 | } |
MikamiUitOpen | 0:224dccbc4edd | 61 | #endif // F746_GREQ_DISIGNER_AND_DRAWER_HPP |