revised version of F746_SD_GraphicEqualizer
Dependencies: BSP_DISCO_F746NG F746_GUI F746_SAI_IO FrequencyResponseDrawer LCD_DISCO_F746NG SDFileSystem_Warning_Fixed TS_DISCO_F746NG mbed
Fork of F746_SD_GraphicEqualizer by
Diff: MyClasses_Functions/MyFunctions.cpp
- Revision:
- 5:a5a4f9d7b26c
- Parent:
- 2:2a5c93bf729a
--- a/MyClasses_Functions/MyFunctions.cpp Wed May 04 12:41:02 2016 +0000 +++ b/MyClasses_Functions/MyFunctions.cpp Sat May 07 07:33:52 2016 +0000 @@ -1,13 +1,13 @@ //-------------------------------------------------------------- // グラフィックイコライザ付き SD オーディオプレーヤーで使う大域関数 // -// 2016/05/01, Copyright (c) 2016 MIKAMI, Naoki +// 2016/05/07, Copyright (c) 2016 MIKAMI, Naoki //-------------------------------------------------------------- #include "MyFunctions.hpp" // 1フレーム分の信号処理 (イコライザ) の実行 -void ProcessSignal(SD_WavReader &sdReader, SaiIO_O &mySai, +void ProcessSignal(SD_WavReader &sdReader, SaiIO &mySai, int16_t sn[], BiquadGrEq hn[], int stages, bool on) { @@ -20,7 +20,8 @@ for (int n=0; n<mySai.GetLength(); n++) { // 縦続形の IIR フィルタ実行 - float xn = 0.125f*sn[n]; // 0.125 の乗算はブースとしてもクリップされないようにするため + float xn = 0.125f*sn[n]; // 0.125 の乗算はブースとしてもクリップ + // されないようにするため float yn = xn; for (int k=0; k<stages; k++) yn = hn[k].Execute(yn); int16_t value = on ? (int16_t)yn : xn; @@ -62,20 +63,9 @@ int sw = 0; if (onOff.GetTouchedNumber(sw)) on = (sw == 0) ? true : false; -/* - { - drawerObj.DesignAndRedraw(); - for (int n=0; n<drawerObj.GetStages(); n++) - hn[n] = BiquadGrEq(drawerObj.GetCoefficient(n)); - myBars.DrawAll(0); // ツマミの位置を 0 dB に設定する - reset.Draw(); - return; - } -*/ + static int num = 0; if (!myBars.GetSlidedNumber(num)) return; drawerObj.DesignAndRedraw(myBars.GetValue(num), num); hn[num] = BiquadGrEq(drawerObj.GetCoefficient(num)); } - -