Output the audio signal with filtering by graphic equalizer in the *.wav file on the SD card using onboard CODEC. SD カードの *.wav ファイルのオーディオ信号をグラフィック・イコライザを通して,ボードに搭載されているCODEC で出力する.

Dependencies:   F746_GUI F746_SAI_IO SD_PlayerSkeleton FrequencyResponseDrawer

MyGraphicEqualizer/GrEqDesignerDrawer.hpp

Committer:
MikamiUitOpen
Date:
2016-08-15
Revision:
15:ef0acc9fe111
Child:
20:5c69e664e17c

File content as of revision 15:ef0acc9fe111:

//------------------------------------------------------------------------------
//  イコライザ用フィルタのパラメータを設定し,その周波数特性を描画するためのクラス -- Header
//  
//  2016/08/11, Copyright (c) 2016 MIKAMI, Naoki
//------------------------------------------------------------------------------

#ifndef F746_GREQ_DISIGNER_AND_DRAWER_HPP
#define F746_GREQ_DISIGNER_AND_DRAWER_HPP

#include "NumericLabel.hpp"
#include "FrquencyResponseDrawer.hpp"
#include "GrEqParamsCalculator.hpp"
#include "GrEqualizerFrqResp.hpp"

namespace Mikami
{
    class GrEqDesignerDrawer
    {
    public:
        // Constructor
        GrEqDesignerDrawer(uint16_t x0, uint16_t y0,
                           int bands, float f0, int fs, float db1);

        virtual ~GrEqDesignerDrawer() {};

        // 周波数特性の描画
        void DrawResponse();

        // 周波数特性の平坦化と描画
        void DrawFlat();

        // 特定のバンドのイコライザ用フィルタのパラメータの設定と周波数特性の再描画
        void DesignAndRedraw(float gainDb, int n);

        BiquadGrEq::Coefs GetCoefficient(int n) { return ck_[n]; }

        uint16_t GetX0()
        {   return drawerObj_.X(f0_[0]); }
        
        uint16_t GetSpaceX()
        {   return (uint16_t)(drawerObj_.X(f0_[1])
                            - drawerObj_.X(f0_[0])); }

        int GetBands() { return BANDS_; }

    private:
        LCD_DISCO_F746NG *lcd_;
        TS_DISCO_F746NG *ts_;

        const uint16_t X0_, Y0_;
        const int BANDS_;
        const float Q_VAL_;

        Array<float> f0_;   // 中心周波数を格納する配列のポインタ
        Array<BiquadGrEq::Coefs> ck_;   // フィルタの係数
        GrEqParams calculator_;
        GrEqualizerFrqResp frqResp_;    // フィルタの周波数応答に対応するオブジェクト
        FrqRespDrawer drawerObj_;
    };
}
#endif  // F746_GREQ_DISIGNER_AND_DRAWER_HPP