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 // イコライザ用フィルタのパラメータを設定し,その周波数特性を描画するためのクラス
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 #include "GrEqDesignerDrawer.hpp"
MikamiUitOpen 0:224dccbc4edd 8
MikamiUitOpen 0:224dccbc4edd 9 namespace Mikami
MikamiUitOpen 0:224dccbc4edd 10 {
MikamiUitOpen 0:224dccbc4edd 11 // Constructor
MikamiUitOpen 0:224dccbc4edd 12 GrEqDesignerDrawer::GrEqDesignerDrawer(uint16_t x0, uint16_t y0,
MikamiUitOpen 0:224dccbc4edd 13 int bands, float f0, int fs, float db1)
MikamiUitOpen 11:5eb943ee9b91 14 : X0_(x0), Y0_(y0), BANDS_(bands), Q_VAL_(1.0f/sqrtf(2.0f)),
MikamiUitOpen 0:224dccbc4edd 15 f0_(bands), ck_(bands),
MikamiUitOpen 0:224dccbc4edd 16 calculator_(bands, fs), frqResp_(bands),
MikamiUitOpen 0:224dccbc4edd 17 drawerObj_(x0, 50.0f, 20000.0f, 128, y0, -18, 18, db1, 6, fs)
MikamiUitOpen 0:224dccbc4edd 18 {
MikamiUitOpen 0:224dccbc4edd 19 for (int n=0; n<bands; n++) f0_[n] = f0*powf(2, n);
MikamiUitOpen 0:224dccbc4edd 20
MikamiUitOpen 0:224dccbc4edd 21 for (int n=0; n<bands; n++)
MikamiUitOpen 0:224dccbc4edd 22 ck_[n] = calculator_.Execute(n, f0_[n], 0, Q_VAL_);
MikamiUitOpen 0:224dccbc4edd 23 frqResp_.SetParams(ck_);
MikamiUitOpen 0:224dccbc4edd 24 }
MikamiUitOpen 0:224dccbc4edd 25
MikamiUitOpen 0:224dccbc4edd 26 // 周波数特性の描画
MikamiUitOpen 0:224dccbc4edd 27 void GrEqDesignerDrawer::DrawResponse()
MikamiUitOpen 0:224dccbc4edd 28 {
MikamiUitOpen 0:224dccbc4edd 29 drawerObj_.DrawAxis(); // 目盛線の描画
MikamiUitOpen 0:224dccbc4edd 30 FrqRespDrawer::AxisX_Char numX[] = // 横軸の目盛値を描画する際に使う構造体の配列
MikamiUitOpen 0:224dccbc4edd 31 {{ 50, "50"}, { 100, "100"}, { 200, "200"}, { 500, "500"}, { 1000, "1k"},
MikamiUitOpen 0:224dccbc4edd 32 { 2000, "2k"}, { 5000, "5k"}, {10000, "10k"}, {20000, "20k"}};
MikamiUitOpen 0:224dccbc4edd 33
MikamiUitOpen 0:224dccbc4edd 34 drawerObj_.DrawNumericX(numX, 9, 6, "Frequency [Hz]"); // 横軸の目盛
MikamiUitOpen 0:224dccbc4edd 35 drawerObj_.DrawNumericY(-24, -6, 6, "%3d"); // 縦軸の目盛値は 6 dB 間隔
MikamiUitOpen 0:224dccbc4edd 36 drawerObj_.DrawGraph(frqResp_); // 周波数特性のカーブの描画
MikamiUitOpen 0:224dccbc4edd 37 }
MikamiUitOpen 0:224dccbc4edd 38
MikamiUitOpen 0:224dccbc4edd 39 // 周波数特性の平坦化と描画
MikamiUitOpen 0:224dccbc4edd 40 void GrEqDesignerDrawer::DrawFlat()
MikamiUitOpen 0:224dccbc4edd 41 {
MikamiUitOpen 0:224dccbc4edd 42 for (int n=0; n<BANDS_; n++)
MikamiUitOpen 0:224dccbc4edd 43 ck_[n] = calculator_.Execute(n, f0_[n], 0, Q_VAL_);
MikamiUitOpen 0:224dccbc4edd 44 frqResp_.SetParams(ck_);
MikamiUitOpen 0:224dccbc4edd 45
MikamiUitOpen 0:224dccbc4edd 46 drawerObj_.Erase();
MikamiUitOpen 0:224dccbc4edd 47 drawerObj_.DrawAxis(); // 目盛線の描画
MikamiUitOpen 0:224dccbc4edd 48 drawerObj_.DrawGraph(frqResp_); // 周波数特性のグラフのカーブを描画する
MikamiUitOpen 0:224dccbc4edd 49 }
MikamiUitOpen 0:224dccbc4edd 50
MikamiUitOpen 0:224dccbc4edd 51 // 特定のバンドのイコライザ用フィルタのパラメータの設定と周波数特性の再描画
MikamiUitOpen 0:224dccbc4edd 52 void GrEqDesignerDrawer::DesignAndRedraw(float gainDb, int n)
MikamiUitOpen 0:224dccbc4edd 53 {
MikamiUitOpen 0:224dccbc4edd 54 ck_[n] = calculator_.Execute(n, f0_[n], gainDb, Q_VAL_);
MikamiUitOpen 0:224dccbc4edd 55 frqResp_.SetParam(ck_[n], n);
MikamiUitOpen 0:224dccbc4edd 56
MikamiUitOpen 0:224dccbc4edd 57 drawerObj_.Erase();
MikamiUitOpen 0:224dccbc4edd 58 drawerObj_.DrawAxis(); // 目盛線の描画
MikamiUitOpen 0:224dccbc4edd 59 drawerObj_.DrawGraph(frqResp_); // 周波数特性のグラフのカーブを描画する
MikamiUitOpen 0:224dccbc4edd 60 }
MikamiUitOpen 0:224dccbc4edd 61 }